Ignore:
Timestamp:
Apr 5, 2013, 12:39:30 PM (13 years ago)
Author:
Julian Iseringhausen <julian.iseringhausen@…>
Children:
4a709e
Parents:
f57182
Message:

Merge stashed open boundary stuff.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/grid/tempgrid.cpp

    rf57182 r8180d8  
    6565  global.LocalEnd() = size;
    6666  global.LocalSize() = size;
    67   global.GlobalFinerBegin() = 0;
    68   global.GlobalFinerEnd() = 0;
    69   global.GlobalFinerSize() = 0;
    70   global.LocalFinerBegin() = 0;
    71   global.LocalFinerEnd() = 0;
    72   global.LocalFinerSize() = 0;
    73   global.GlobalSize() = size;
     67  global.GlobalBegin() = 0;
     68  global.GlobalEnd() = size;
     69  global.GlobalSizeNew() = size;
     70  global.GlobalBeginFinest() = 0;
     71  global.GlobalEndFinest() = size;
     72  global.GlobalSizeFinest() = size;
    7473  global.BoundaryType() = BTUndefined;
    7574
     
    9089  local.BoundaryEnd2() = 0;
    9190  local.BoundarySize2() = 0;
    92   local.FinerBegin() = 0;
    93   local.FinerEnd() = 0;
    94   local.FinerSize() = 0;
    9591
    9692  extent.Begin() = spatial_begin;
     
    116112  level = grid.Level() + 1;
    117113
     114  global.GlobalBegin() = grid_finer.Global().GlobalBegin();
     115  global.GlobalEnd() = grid_finer.Global().GlobalEnd();
     116  global.GlobalSizeNew() = grid_finer.Global().GlobalSizeNew();
     117
     118  global.GlobalBeginFinest() = grid_finer.Global().GlobalBeginFinest();
     119  global.GlobalEndFinest() = grid_finer.Global().GlobalEndFinest();
     120  global.GlobalSizeFinest() = grid_finer.Global().GlobalSizeFinest();
     121
    118122  global.BoundaryType() = grid_finer.Global().BoundaryType();
    119123
    120   global.GlobalFinerBegin() = 0;
    121   global.GlobalFinerEnd() = 0;
    122   global.GlobalFinerSize() = 0;
    123 
    124   global.LocalFinerBegin() = 0;
    125   global.LocalFinerEnd() = 0;
    126   global.LocalFinerSize() = 0;
    127 
    128   global.LocalBegin() = 2 * (grid.Global().LocalFinerBegin() - grid.Global().GlobalFinerBegin());
    129   global.LocalEnd() = 2 * (grid.Global().LocalFinerEnd() - grid.Global().GlobalFinerBegin() - off) + off;
     124  global.LocalBegin() = (2*grid.Global().LocalBegin()).Clamp(global.GlobalBegin(), global.GlobalEnd());
     125  global.LocalEnd() = (2*(grid.Global().LocalEnd()-off)+off).Clamp(global.GlobalBegin(), global.GlobalEnd());
    130126  global.LocalSize() = global.LocalEnd() - global.LocalBegin();
    131127
    132   global.GlobalSize() = 2 * (grid.Global().GlobalFinerSize() - off) + off;
    133 
    134   for (int j=0; j<3; ++j) {
    135 
    136     if (boundary[j] == Dirichlet ||
    137         boundary[j] == Open) {
    138 
    139       if (grid.Global().BoundaryType() == LocallyRefined) {
    140 
    141         global.GlobalSize()[j] += 2;
    142         global.LocalBegin()[j] += 1;
    143         global.LocalEnd()[j] +=1;
    144 
    145       } else if (grid.Global().BoundaryType() == GlobalMax) {
    146 
    147         global.GlobalSize()[j] += 2;
    148         global.LocalBegin()[j] += 1;
    149         global.LocalEnd()[j] +=1;
    150 
    151       }
    152 
    153     } else {
    154 
    155     }
    156 
    157   }
    158 
    159   global.LocalSize() = global.LocalEnd() - global.LocalBegin();
    160128  if (global.LocalSize().Product() == 0) {
    161129    global.LocalBegin() = 0;
     
    164132    global.BoundaryType() = EmptyGrid;
    165133  }
    166 
    167   local.FinerBegin() = 0;
    168   local.FinerEnd() = 0;
    169   local.FinerSize() = 0;
    170134
    171135  local.Begin() = 0;
     
    234198
    235199  const Grid& grid_coarser = (*grid.Father())(grid.Level()-1);
    236   const Index off = GridIndexTranslations::EndOffset(boundary);
    237200
    238201  level = grid.Level() - 1;
    239202
    240   global.GlobalFinerBegin() = grid_coarser.Global().GlobalFinerBegin();
    241   global.GlobalFinerEnd() = grid_coarser.Global().GlobalFinerEnd();
    242   global.GlobalFinerSize() = grid_coarser.Global().GlobalFinerSize();
    243 
    244   global.GlobalSize() = (grid.Global().GlobalSize() - off)/2 + off;
     203  global.GlobalBegin() = grid.Global().GlobalBegin();
     204  global.GlobalEnd() = grid.Global().GlobalEnd();
     205  global.GlobalSizeNew() = grid.Global().GlobalSizeNew();
     206
     207  global.GlobalBeginFinest() = grid.Global().GlobalBeginFinest();
     208  global.GlobalEndFinest() = grid.Global().GlobalEndFinest();
     209  global.GlobalSizeFinest() = grid.Global().GlobalSizeFinest();
     210
    245211  global.BoundaryType() = grid_coarser.Global().BoundaryType();
    246212
    247213  global.LocalBegin() = grid.Global().LocalBegin();
    248214  global.LocalEnd() = grid.Global().LocalEnd();
    249   GridIndexTranslations::FineToCoarse(global.LocalBegin(), global.LocalEnd());
    250 
    251   global.LocalBegin() += grid_coarser.Global().GlobalFinerBegin();
    252   global.LocalEnd() += grid_coarser.Global().GlobalFinerBegin();
    253 
     215  GridIndexTranslations::GlobalFineToCoarse(global.LocalBegin(), global.LocalEnd());
    254216  global.LocalSize() = global.LocalEnd() - global.LocalBegin();
    255217
     
    260222    global.BoundaryType() = EmptyGrid;
    261223  }
    262 
    263   global.LocalFinerBegin() = global.LocalBegin();
    264   global.LocalFinerEnd() = global.LocalEnd();
    265   global.LocalFinerSize() = global.LocalSize();
    266224
    267225  local.SizeTotal() = global.LocalSize();
     
    319277  local.BoundarySize2() = local.BoundaryEnd2() - local.BoundaryBegin2();
    320278
    321   local.FinerBegin() = local.Begin();
    322   local.FinerEnd() = local.End();
    323   local.FinerSize() = local.Size();
    324 
    325279  Extent().Size() = grid.Extent().Size();
    326280  Extent().Begin() = grid.Extent().Begin();
Note: See TracChangeset for help on using the changeset viewer.