Changeset ac6d04 for src/comm/comm.cpp


Ignore:
Timestamp:
Apr 10, 2012, 1:55:49 PM (14 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
a40eea
Parents:
d24c2f
Message:

Merge recent changes of the vmg library into ScaFaCos.

Includes a fix for the communication problems on Jugene.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1666 5161e1c8-67bf-11de-9fd5-51895aff932f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/comm/comm.cpp

    rd24c2f rac6d04  
    5757  }
    5858
    59   norm = sqrt( Helper::pow_3(sol().MeshWidth()) * GlobalSum(norm) );
     59  norm = sqrt(sol().Extent().MeshWidth().Product() * GlobalSum(norm));
    6060
    6161  return norm;
     
    6868
    6969  const Multigrid& multigrid = *MG::GetRhs();
    70   const Grid& grid = multigrid(multigrid.GlobalMaxLevel());
     70  const Grid& grid = multigrid(multigrid.MaxLevel());
    7171  LocalIndices local = grid.Local();
    7272
    7373  const int& near_field_cells = MG::GetFactory().GetObjectStorageVal<int>("PARTICLE_NEAR_FIELD_CELLS");
    7474
    75   // We don't need a boundary on this grid
     75  local.BoundaryBegin1() = 0;
     76  local.BoundaryEnd1() = 0;
     77  local.BoundarySize1() = 0;
     78
     79  local.BoundaryBegin2() = 0;
     80  local.BoundaryEnd2() = 0;
     81  local.BoundarySize2() = 0;
     82
     83  local.FinerBeginFoo() = 0;
     84  local.FinerEndFoo() = 0;
     85  local.FinerSizeFoo() = 0;
     86
    7687  local.End() -= local.Begin();
    7788  local.Begin() = 0;
    78   local.BoundaryBegin1() = local.BoundaryEnd1() = 0;
    79   local.BoundaryBegin2() = local.BoundaryEnd2() = 0;
    8089
    8190  // Set grid size of intermediate temporary grid
    8291  for (int i=0; i<3; ++i) {
    8392
    84     if (local.HasHalo1()[i]) {
     93    if (local.HaloSize1()[i] > 0) {
    8594      local.HaloBegin1()[i] = 0;
    86       local.HaloEnd1()[i] = local.Begin()[i] = near_field_cells+1;
     95      local.HaloEnd1()[i] = near_field_cells;
     96      local.HaloSize1()[i] = near_field_cells;
     97      local.Begin()[i] = near_field_cells;
    8798      local.End()[i] = local.Begin()[i] + local.Size()[i];
    8899    }
    89100
    90     if (local.HasHalo2()[i]) {
     101    if (local.HaloSize2()[i] > 0) {
    91102      local.HaloBegin2()[i] = local.End()[i];
    92       local.HaloEnd2()[i] = local.HaloBegin2()[i] + near_field_cells+1;
     103      local.HaloEnd2()[i] = local.HaloBegin2()[i] + near_field_cells;
     104      local.HaloSize2()[i] = near_field_cells;
    93105    }
    94106
    95107  }
    96108
    97   local.SizeTotal() = local.Size() +
    98                       local.HaloEnd1() - local.HaloBegin1() +
    99                       local.HaloEnd2() - local.HaloBegin2();
     109  local.SizeTotal() = local.Size() + local.HaloSize1() + local.HaloSize2();
    100110
    101111  particle_grid = new Grid(grid.Global(), local, grid.Extent());
Note: See TracChangeset for help on using the changeset viewer.