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/grid/multigrid.cpp

    rd24c2f rac6d04  
    4545
    4646
    47     if (global_separated[i].SizeLocal().Product() > 0) {
     47    if (global_separated[i].LocalSize().Product() > 0) {
    4848
    4949      /*
    5050       * Initialize some properties with zero
    5151       */
    52       local_l.HaloBegin1() = local_l.HaloEnd1() = 0;
    53       local_l.HaloBegin2() = local_l.HaloEnd2() = 0;
    54       local_l.BoundaryBegin1() = local_l.BoundaryEnd1() = 0;
    55       local_l.BoundaryBegin2() = local_l.BoundaryEnd2() = 0;
     52      local_l.HaloBegin1() = 0;
     53      local_l.HaloEnd1() = 0;
     54      local_l.HaloBegin2() = 0;
     55      local_l.HaloEnd2() = 0;
     56      local_l.BoundaryBegin1() = 0;
     57      local_l.BoundaryEnd1() = 0;
     58      local_l.BoundaryBegin2() = 0;
     59      local_l.BoundaryEnd2() = 0;
    5660
    5761      /*
     
    6367            comm->BoundaryConditions()[j] == Open) {
    6468
    65           local_l.SizeTotal()[j] = global_separated[i].SizeLocal()[j] +
     69          local_l.SizeTotal()[j] = global_separated[i].LocalSize()[j] +
    6670            (global_separated[i].BoundaryType() == LocallyRefined ? 2 : 0);
    6771
     
    7074           * and halo grid points otherwise
    7175           */
    72           if (global_separated[i].BeginLocal()[j] == 0) {
     76          if (global_separated[i].LocalBegin()[j] == 0) {
    7377            local_l.BoundaryBegin1()[j] = 0;
    7478            local_l.BoundaryEnd1()[j] = 1;
     
    7983          }
    8084
    81           if (global_separated[i].EndLocal()[j] == global_separated[i].SizeGlobal()[j]) {
     85          if (global_separated[i].LocalEnd()[j] == global_separated[i].GlobalSize()[j]) {
    8286            local_l.BoundaryBegin2()[j] = local_l.SizeTotal()[j] - 1;
    8387            local_l.BoundaryEnd2()[j] = local_l.SizeTotal()[j];
     
    9094        }else if (comm->BoundaryConditions()[j] == Periodic) {
    9195
    92           local_l.SizeTotal()[j] = global_separated[i].SizeLocal()[j] + 2;
     96          local_l.SizeTotal()[j] = global_separated[i].LocalSize()[j] + 2;
    9397
    9498          /*
     
    114118
    115119      local_l.Size() = local_l.End() - local_l.Begin();
    116 
    117       if (i==0)
    118         local_l.AlignmentBegin() = (global_separated[i].SizeGlobal() - static_cast<int>( pow(2.0, interface->MaxLevel() ) + 0.5 ) - 1) / 2;
    119       else if (global_separated[i].BoundaryType() == LocallyRefined)
    120         local_l.AlignmentBegin() = (extent[i].Size() - extent[i-1].Size()) * pow(2.0, interface->MaxLevel()-i-1) + 0.5;
    121       else if (global_separated[i].BoundaryType() == GlobalMax)
    122         local_l.AlignmentBegin() = (extent[i].Size() - extent[i-1].Size()) * pow(2.0, interface->MaxLevel()-i-1) - 0.5;
    123       else
    124         local_l.AlignmentBegin() = 0;
    125 
    126       local_l.AlignmentBegin() += local_l.Begin();
    127       local_l.AlignmentEnd() = local_l.AlignmentBegin() + global_separated[i].SizeLocal();
    128 
    129       local_l.AlignmentBegin().Clamp(local_l.Begin(), local_l.End());
    130       local_l.AlignmentEnd().Clamp(local_l.Begin(), local_l.End());
    131 
    132 
    133       grids.push_back(new Grid(global_separated[i], local_l, extent[i], interface->MaxLevel()-i, this));
     120      local_l.HaloSize1() = local_l.HaloEnd1() - local_l.HaloBegin1();
     121      local_l.HaloSize2() = local_l.HaloEnd2() - local_l.HaloBegin2();
     122      local_l.BoundarySize1() = local_l.BoundaryEnd1() - local_l.BoundaryBegin1();
     123      local_l.BoundarySize2() = local_l.BoundaryEnd2() - local_l.BoundaryBegin2();
     124
     125      local_l.FinerSizeFoo() = global_separated[i].LocalFinerSize() - local_l.BoundarySize1() - local_l.BoundarySize2();
     126      local_l.FinerBeginFoo() = global_separated[i].LocalFinerBegin() - global_separated[i].LocalBegin() + local_l.Begin();
     127      local_l.FinerEndFoo() = local_l.FinerBeginFoo() + local_l.FinerSizeFoo();
     128
    134129
    135130    }else {
    136131
    137       global_separated[i].SizeGlobal() = global[i].SizeGlobal();
    138       global_separated[i].BeginFinest() = global[i].BeginFinest();
    139       global_separated[i].EndFinest() = global[i].EndFinest();
    140       global_separated[i].SizeFinest() = global[i].SizeFinest();
    141       global_separated[i].SizeLocal() = 0;
    142       global_separated[i].BeginLocal() = 0;
    143       global_separated[i].EndLocal() = 0;
    144       global_separated[i].BoundaryType() = global[i].BoundaryType();
    145 
     132      local_l.Begin() = 0;
     133      local_l.End() = 0;
    146134      local_l.Size() = 0;
    147135      local_l.SizeTotal() = 0;
    148       local_l.Begin() = 0;
    149       local_l.End() = 0;
    150136      local_l.HaloBegin1() = 0;
     137      local_l.HaloEnd1() = 0;
     138      local_l.HaloSize1() = 0;
    151139      local_l.HaloBegin2() = 0;
    152       local_l.HaloEnd1() = 0;
    153140      local_l.HaloEnd2() = 0;
     141      local_l.HaloSize2() = 0;
    154142      local_l.BoundaryBegin1() = 0;
     143      local_l.BoundaryEnd1() = 0;
     144      local_l.BoundarySize1() = 0;
    155145      local_l.BoundaryBegin2() = 0;
    156       local_l.BoundaryEnd1() = 0;
    157146      local_l.BoundaryEnd2() = 0;
    158       local_l.AlignmentBegin() = 0;
    159       local_l.AlignmentEnd() = 0;
    160 
    161       grids.push_back(new Grid(global_separated[i], local_l, extent[i], interface->MaxLevel()-i, this));
     147      local_l.BoundarySize2() = 0;
     148      local_l.FinerBeginFoo() = 0;
     149      local_l.FinerEndFoo() = 0;
     150      local_l.FinerSizeFoo() = 0;
    162151
    163152    }
     153
     154    grids.push_back(new Grid(global_separated[i], local_l, extent[i], interface->MaxLevel()-i, this));
     155
    164156  }
    165157
Note: See TracChangeset for help on using the changeset viewer.