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/grid_index_translations.cpp

    rd24c2f rac6d04  
    2424Index GridIndexTranslations::GlobalToLocal(const Index& index_global) const
    2525{
    26   return index_global - Father()->Global().BeginLocal() + Father()->Local().Begin();
     26  const Index index_local = index_global - Father()->Global().LocalBegin() + Father()->Local().Begin();
     27  return index_local;
    2728}
    2829
    2930Index GridIndexTranslations::GlobalToFiner(const Index& index_global)
    3031{
    31   return 2 * index_global;
     32  const Index index_finer = 2 * index_global;
     33  return index_finer;
    3234}
    3335
    3436Index GridIndexTranslations::GlobalToCoarser(const Index& index_global)
    3537{
    36   for (int i=0; i<3; ++i)
    37     assert(index_global[i] % 2 == 0);
    38 
    39   return index_global / 2;
     38  assert(index_global % 2 == 0);
     39  const Index index_coarser = index_global / 2;
     40  return index_coarser;
    4041}
    4142
    4243Index GridIndexTranslations::GlobalToFiner(const Index& index_global, const int& num_levels)
    4344{
    44   return Helper::intpow(2, num_levels) * index_global;
     45  const Index index_finer = Helper::intpow(2, num_levels) * index_global;
     46  return index_finer;
    4547}
    4648
     
    4850{
    4951  int quotient = Helper::intpow(2, num_levels);
    50 
    51   for (int i=0; i<3; ++i)
    52     assert(index_global[i] % quotient == 0);
    53 
    54   return index_global / quotient;
     52  assert(index_global % quotient == 0);
     53  const Index index_coarser = index_global / quotient;
     54  return index_coarser;
    5555}
    5656
    5757Index GridIndexTranslations::LocalToGlobal(const Index& index_local) const
    5858{
    59   return index_local - Father()->Local().Begin() + Father()->Global().BeginLocal();
     59  const Index index_global = index_local - Father()->Local().Begin() + Father()->Global().LocalBegin();
     60  return index_global;
    6061}
    6162
     
    6970  assert(Father()->Level() < multigrid.MaxLevel());
    7071
    71   Index index_global_fine = GlobalToFiner(LocalToGlobal(index_local));
     72  const Index index_global_fine = GlobalToFiner(LocalToGlobal(index_local));
     73  const Index index_local_fine = multigrid(Father()->Level()+1).Indexing().GlobalToLocal(index_global_fine);
    7274
    73   return multigrid(Father()->Level()+1).Indexing().GlobalToLocal(index_global_fine);
     75  return index_local_fine;
    7476}
    7577
     
    8385  assert(Father()->Level() > multigrid.MinLevel());
    8486
    85   Index index_global_coarse = GlobalToCoarser(LocalToGlobal(index_local));
     87  const Index index_global_coarse = GlobalToCoarser(LocalToGlobal(index_local));
     88  const Index index_local_coarse = multigrid(Father()->Level()-1).Indexing().GlobalToLocal(index_global_coarse);
    8689
    87   return multigrid(Father()->Level()-1).Indexing().GlobalToLocal(index_global_coarse);
     90  return index_local_coarse;
    8891}
    8992
    9093Index GridIndexTranslations::FinestGlobalToLocal(const Index& index_finest) const
    9194{
    92   return GlobalToLocal(FinestGlobalToGlobal(index_finest));
     95  const Index index_local = GlobalToLocal(FinestGlobalToGlobal(index_finest));
     96  return index_local;
    9397}
    9498
    9599Index GridIndexTranslations::FinestGlobalToGlobal(const Index& index_finest) const
    96100{
    97   int quotient = Helper::intpow(2, Father()->Father()->MaxLevel() - Father()->Level());
    98 
    99   for (int i=0; i<3; ++i)
    100     assert(index_finest[i] % quotient == 0);
    101 
    102   return index_finest / quotient;
     101  const int quotient = Helper::intpow(2, Father()->Father()->MaxLevel() - Father()->Level());
     102  assert(index_finest % quotient == 0);
     103  const Index index_global = index_finest / quotient;
     104  return index_global;
    103105}
    104106
Note: See TracChangeset for help on using the changeset viewer.