Ignore:
Timestamp:
Mar 30, 2013, 2:44:52 PM (13 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
8180d8
Parents:
d13e27
git-author:
Julian Iseringhausen <isering@…> (06/11/12 14:02:16)
git-committer:
Julian Iseringhausen <isering@…> (03/30/13 14:44:52)
Message:

Open boundary conditions.

Conflicts:

lib/vmg/src/Makefile.am
lib/vmg/src/base/factory.cpp
lib/vmg/test/unit_test/library/dirichlet_fas_lr_mpi.cpp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/comm/comm_mpi.cpp

    rd13e27 rf57182  
    487487          << "    GLOBAL_FINER_END:   " << grid.Global().GlobalFinerEnd() << std::endl
    488488          << "    GLOBAL_FINER_SIZE:  " << grid.Global().GlobalFinerSize() << std::endl
    489           << "    FINEST_ABS_BEGIN:   " << grid.Global().FinestAbsBegin() << std::endl
    490           << "    FINEST_ABS_END:     " << grid.Global().FinestAbsEnd() << std::endl
    491           << "    FINEST_ABS_SIZE:    " << grid.Global().FinestAbsSize() << std::endl
    492489          << "    GLOBAL_SIZE:        " << grid.Global().GlobalSize() << std::endl
    493490          << "  EXTENT:" << std::endl
     
    577574  if (settings.CommunicatorLocal(grid) != MPI_COMM_NULL) {
    578575
    579     Index end, end_global;
    580 
    581     for (int i=0; i<3; ++i) {
    582       end[i] = grid.Local().End()[i];
    583       end_global[i] = grid.Global().LocalEnd()[i];
    584     }
    585 
    586576    vtkSmartPointer<vtkImageData> image = vtkSmartPointer<vtkImageData>::New();
    587     image->SetExtent(grid.Global().LocalBegin().X(), end_global.X()-1,
    588                      grid.Global().LocalBegin().Y(), end_global.Y()-1,
    589                      grid.Global().LocalBegin().Z(), end_global.Z()-1);
     577    image->SetExtent(grid.Global().LocalBegin().X(), grid.Global().LocalEnd().X()-1,
     578                     grid.Global().LocalBegin().Y(), grid.Global().LocalEnd().Y()-1,
     579                     grid.Global().LocalBegin().Z(), grid.Global().LocalEnd().Z()-1);
    590580    image->SetSpacing(grid.Extent().MeshWidth().vec());
    591581    image->SetOrigin(grid.Extent().Begin().vec());
     
    595585    image->GetPointData()->GetScalars()->SetName(information);
    596586
    597     Index i;
    598     for (i.X()=grid.Local().Begin().X(); i.X()<end.X(); ++i.X())
    599       for (i.Y()=grid.Local().Begin().Y(); i.Y()<end.Y(); ++i.Y())
    600         for (i.Z()=grid.Local().Begin().Z(); i.Z()<end.Z(); ++i.Z())
    601           image->SetScalarComponentFromDouble(i.X() - grid.Local().Begin().X() + grid.Global().LocalBegin().X(),
    602                                               i.Y() - grid.Local().Begin().Y() + grid.Global().LocalBegin().Y(),
    603                                               i.Z() - grid.Local().Begin().Z() + grid.Global().LocalBegin().Z(),
     587    Index begin, end, i;
     588    for (int j=0; j<3; ++j) {
     589      begin[j] = (grid.Local().BoundarySize1()[j] > 0 ? grid.Local().BoundaryBegin1()[j] : grid.Local().Begin()[j]);
     590      end[j] = (grid.Local().BoundarySize2()[j] > 0 ? grid.Local().BoundaryEnd2()[j] : grid.Local().End()[j]);
     591    }
     592
     593    for (i.X() = begin.X(); i.X() < end.X(); ++i.X())
     594      for (i.Y() = begin.Y(); i.Y() < end.Y(); ++i.Y())
     595        for (i.Z() = begin.Z(); i.Z() < end.Z(); ++i.Z())
     596          image->SetScalarComponentFromDouble(i.X() - begin.X() + grid.Global().LocalBegin().X(),
     597                                              i.Y() - begin.Y() + grid.Global().LocalBegin().Y(),
     598                                              i.Z() - begin.Z() + grid.Global().LocalBegin().Z(),
    604599                                              0, grid.GetVal(i));
    605600
Note: See TracChangeset for help on using the changeset viewer.