Changeset e85cfd


Ignore:
Timestamp:
Apr 9, 2013, 9:45:13 AM (13 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
0bd47e
Parents:
4a709e
Message:

Work.

Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/base/interface.cpp

    r4a709e re85cfd  
    3838using namespace VMG;
    3939
    40 static Index GetGlobalIndex(const Vector& pos, const SpatialExtent& extent, const BT& bt)
     40void Interface::InitInterface(const Vector& box_offset, const vmg_float& box_size,
     41    const int& max_boundary_nodes, const vmg_float& alpha)
    4142{
    42   const Index index = (pos - extent.Begin()) / extent.MeshWidth() + 0.5;
    43   return index + (bt == LocallyRefined ? 1 : 0);
    44 }
    45 
    46 void Interface::InitInterface(const Vector& box_offset, const vmg_float& box_size,
    47                               const int& coarseningSteps, const vmg_float& alpha)
    48 {
    49   int i;
    5043  Index num_cells, size_factor;
    51   Index add_node = Index(bc[0]==Periodic?0:1,
    52                                          bc[1]==Periodic?0:1,
    53                                          bc[2]==Periodic?0:1);
     44  Index add_node = Index(bc[0]==Periodic ? 0 : 1,
     45      bc[1]==Periodic ? 0 : 1,
     46          bc[2]==Periodic ? 0 : 1);
    5447
    5548  const Vector box_center = box_offset + 0.5 * box_size;
     
    5851   * Get Extents
    5952   */
    60   for (i=0; i<coarseningSteps; ++i) {
     53   if (bc[0] == Open || bc[1] == Open || bc[2] == Open) {
    6154
    62     for (int j=0; j<3; ++j)
    63       size_factor[j] = (bc[j] == Open ? Helper::intpow(2, static_cast<int>(log(pow(alpha, i+1)) / log(2.0) + 1.0)) : 1);
     55     while (global.size() == 0 ||
     56         (bc[0] == Open && global.back().GlobalSizeNew()[0] > max_boundary_nodes) ||
     57         (bc[1] == Open && global.back().GlobalSizeNew()[1] > max_boundary_nodes) ||
     58         (bc[2] == Open && global.back().GlobalSizeNew()[2] > max_boundary_nodes)) {
    6459
    65     num_cells = Helper::intpow(2,levelMax-i) * size_factor;
     60       global.push_back(GlobalIndices());
     61       extent.push_back(SpatialExtent());
    6662
    67     global.push_back(GlobalIndices());
    68     extent.push_back(SpatialExtent());
     63       for (int j=0; j<3; ++j)
     64         size_factor[j] = (bc[j] == Open ? Helper::intpow(2, static_cast<int>(log(pow(alpha, global.size())) / log(2.0) + 1.0)) : 1);
    6965
    70     extent.back().Size() = box_size * static_cast<Vector>(size_factor);
    71     extent.back().Begin() = box_center - 0.5 * extent.back().Size();
    72     extent.back().End() = extent.back().Begin() + extent.back().Size();
    73     extent.back().MeshWidth() = extent.back().Size() / num_cells;
     66       num_cells = Helper::intpow(2,levelMax-global.size()+1) * size_factor;
    7467
    75     global.back().LocalSize() = num_cells + add_node;
    76     global.back().LocalBegin() = -1 * num_cells / 2;
    77     global.back().LocalEnd() = num_cells/2 + add_node;
     68       extent.back().Size() = box_size * static_cast<Vector>(size_factor);
     69       extent.back().Begin() = box_center - 0.5 * extent.back().Size();
     70       extent.back().End() = extent.back().Begin() + extent.back().Size();
     71       extent.back().MeshWidth() = extent.back().Size() / num_cells;
    7872
    79     global.back().GlobalSizeNew() = global.back().LocalSize();
    80     global.back().GlobalBegin() = global.back().LocalBegin();
    81     global.back().GlobalEnd() = global.back().LocalEnd();
     73       global.back().LocalSize() = num_cells + add_node;
     74       global.back().LocalBegin() = -1 * num_cells / 2;
     75       global.back().LocalEnd() = num_cells/2 + add_node;
    8276
    83     global.back().GlobalSizeFinest() = Helper::intpow(2, coarseningSteps)*num_cells + add_node;
    84     global.back().GlobalBeginFinest() = -1 * ((Helper::intpow(2, coarseningSteps)*num_cells) / 2);
    85     global.back().GlobalEndFinest() = (Helper::intpow(2, coarseningSteps)*num_cells) / 2 + add_node;
     77       global.back().GlobalSizeNew() = global.back().LocalSize();
     78       global.back().GlobalBegin() = global.back().LocalBegin();
     79       global.back().GlobalEnd() = global.back().LocalEnd();
    8680
    87   }
     81       global.back().GlobalSizeFinest() = Helper::intpow(2, global.size()-1)*num_cells + add_node;
     82       global.back().GlobalBeginFinest() = -1 * ((Helper::intpow(2, global.size()-1)*num_cells) / 2);
     83       global.back().GlobalEndFinest() = (Helper::intpow(2, global.size()-1)*num_cells) / 2 + add_node;
    8884
    89   if (coarseningSteps == 0) {
     85       global.back().BoundaryType() = LocallyRefined;
    9086
    91           num_cells = Helper::intpow(2, levelMax);
     87     }
    9288
    93           global.push_back(GlobalIndices());
    94           extent.push_back(SpatialExtent());
     89     for (int i=global.size()-1; i>0; --i) {
     90       if (global[i].GlobalSizeFinest().Max() > global[i-1].GlobalSizeFinest().Max()) {
     91         global[i].BoundaryType() = GlobalMax;
     92         break;
     93       }else {
     94         global[i].BoundaryType() = GlobalCoarsened;
     95       }
     96     }
     97   } else {
    9598
    96           extent.back().Size() = box_size;
    97           extent.back().Begin() = box_center - 0.5 * extent.back().Size();
    98           extent.back().End() = extent.back().Begin() + extent.back().Size();
    99           extent.back().MeshWidth() = extent.back().Size() / num_cells;
     99     num_cells = Helper::intpow(2, levelMax);
    100100
    101           global.back().LocalSize() = num_cells + add_node;
    102           global.back().LocalBegin() = -1 * num_cells/2;
    103           global.back().LocalEnd() = num_cells/2 + add_node;
     101     global.push_back(GlobalIndices());
     102     extent.push_back(SpatialExtent());
    104103
    105           global.back().GlobalSizeNew() = global.back().LocalSize();
    106           global.back().GlobalBegin() = global.back().LocalBegin();
    107           global.back().GlobalEnd() = global.back().LocalEnd();
     104     extent.back().Size() = box_size;
     105     extent.back().Begin() = box_center - 0.5 * extent.back().Size();
     106     extent.back().End() = extent.back().Begin() + extent.back().Size();
     107     extent.back().MeshWidth() = extent.back().Size() / num_cells;
    108108
    109           global.back().GlobalSizeFinest() = global.back().LocalSize();
    110           global.back().GlobalBeginFinest() = global.back().LocalBegin();
    111           global.back().GlobalEndFinest() = global.back().LocalEnd();
     109     global.back().LocalSize() = num_cells + add_node;
     110     global.back().LocalBegin() = -1 * num_cells/2;
     111     global.back().LocalEnd() = num_cells/2 + add_node;
    112112
    113   }
     113     global.back().GlobalSizeNew() = global.back().LocalSize();
     114     global.back().GlobalBegin() = global.back().LocalBegin();
     115     global.back().GlobalEnd() = global.back().LocalEnd();
    114116
    115   while (global.back().LocalSize().Min() > Helper::intpow(2, levelMin)+1) {
     117     global.back().GlobalSizeFinest() = global.back().LocalSize();
     118     global.back().GlobalBeginFinest() = global.back().LocalBegin();
     119     global.back().GlobalEndFinest() = global.back().LocalEnd();
    116120
    117     num_cells /= 2;
     121     global.back().BoundaryType() = GlobalMax;
    118122
    119     extent.back().Size() = (++extent.rbegin())->Size();
    120     extent.back().Begin() = (++extent.rbegin())->Begin();
    121     extent.back().End() = (++extent.rbegin())->End();
    122     extent.back().MeshWidth() = 2.0 * (++extent.rbegin())->MeshWidth();
     123   }
    123124
    124     global.back().LocalSize() = num_cells + add_node;
    125     global.back().LocalBegin() = -1 * num_cells/2;
    126     global.back().LocalEnd() = num_cells/2 + add_node;
    127125
    128     global.back().GlobalSizeNew() = global.back().LocalSize();
    129     global.back().GlobalBegin() = global.back().LocalBegin();
    130     global.back().GlobalEnd() = global.back().LocalEnd();
     126   while (global.back().GlobalSizeNew().Min() > Helper::intpow(2, levelMin)+1) {
    131127
    132     global.back().GlobalSizeFinest() = (++global.rbegin())->GlobalSizeFinest();
    133     global.back().GlobalBeginFinest() = (++global.rbegin())->GlobalBeginFinest();
    134     global.back().GlobalEndFinest() = (++global.rbegin())->GlobalEndFinest();
    135   }     
     128     num_cells /= 2;
    136129
    137   for (i=global.size()-2; i>=0; --i) {
    138     if (global[i].GlobalSizeFinest().Product() >= global[i+1].GlobalSizeFinest().Product()) {
    139       global[i].BoundaryType() = GlobalCoarsened;
    140     }else {
    141       global[i].BoundaryType() = LocallyRefined;
    142       global[i+1].BoundaryType() = GlobalMax;
    143       break;
    144     }
    145   }
     130     global.push_back(GlobalIndices());
     131     extent.push_back(SpatialExtent());
    146132
    147   levelMin = levelMax - global.size() + 1;
     133     extent.back().Size() = (++extent.rbegin())->Size();
     134     extent.back().Begin() = (++extent.rbegin())->Begin();
     135     extent.back().End() = (++extent.rbegin())->End();
     136     extent.back().MeshWidth() = 2.0 * (++extent.rbegin())->MeshWidth();
     137
     138     global.back().LocalSize() = num_cells + add_node;
     139     global.back().LocalBegin() = -1 * num_cells/2;
     140     global.back().LocalEnd() = num_cells/2 + add_node;
     141
     142     global.back().GlobalSizeNew() = global.back().LocalSize();
     143     global.back().GlobalBegin() = global.back().LocalBegin();
     144     global.back().GlobalEnd() = global.back().LocalEnd();
     145
     146     global.back().GlobalSizeFinest() = (++global.rbegin())->GlobalSizeFinest();
     147     global.back().GlobalBeginFinest() = (++global.rbegin())->GlobalBeginFinest();
     148     global.back().GlobalEndFinest() = (++global.rbegin())->GlobalEndFinest();
     149
     150     global.back().BoundaryType() = GlobalCoarsened;
     151
     152   }
     153
     154   levelMin = levelMax - global.size() + 1;
    148155}
  • src/base/interface.hpp

    r4a709e re85cfd  
    4545  Interface(const Boundary& boundary, const int& levelMin, const int& levelMax,
    4646            const Vector& box_offset, const vmg_float box_size,
    47             int coarseningSteps=0, vmg_float alpha=1.6,
     47            int max_boundary_nodes=9, vmg_float alpha=1.6,
    4848            bool register_ = true) :
    4949    Object("INTERFACE", register_),
     
    5252    levelMax(levelMax)
    5353  {
    54     InitInterface(box_offset, box_size, coarseningSteps, alpha);
     54    InitInterface(box_offset, box_size, max_boundary_nodes, alpha);
    5555  }
    5656
     
    8080private:
    8181  void InitInterface(const Vector& box_offset, const vmg_float& box_end,
    82                      const int& coarseningSteps, const vmg_float& alpha);
     82                     const int& max_boundary_nodes, const vmg_float& alpha);
    8383
    8484  std::vector<GlobalIndices> global;
  • src/comm/mpi/settings.cpp

    r4a709e re85cfd  
    9696
    9797    if (temp_grid->Global().LocalBegin().IsComponentwiseGreaterOrEqual(sol(i-1).Global().LocalBegin()) &&
    98         temp_grid->Global().LocalBegin().IsComponentwiseLessOrEqual(sol(i-1).Global().LocalEnd()) &&
    99         temp_grid->Global().LocalEnd().IsComponentwiseGreaterOrEqual(sol(i-1).Global().LocalBegin()) &&
    10098        temp_grid->Global().LocalEnd().IsComponentwiseLessOrEqual(sol(i-1).Global().LocalEnd())) {
    10199      delete temp_grid;
     
    107105  }
    108106
     107  //FIXME
    109108  for (int i=rhs.MaxLevel(); i>rhs.MinLevel(); --i) {
    110109
     
    112111    temp_grid->SetPropertiesToCoarser(rhs(i), comm.BoundaryConditions());
    113112
    114     if (temp_grid->Global().LocalBegin().IsComponentwiseGreaterOrEqual(sol(i-1).Global().LocalBegin()) &&
    115         temp_grid->Global().LocalBegin().IsComponentwiseLessOrEqual(sol(i-1).Global().LocalEnd()) &&
    116         temp_grid->Global().LocalEnd().IsComponentwiseGreaterOrEqual(sol(i-1).Global().LocalBegin()) &&
    117         temp_grid->Global().LocalEnd().IsComponentwiseLessOrEqual(sol(i-1).Global().LocalEnd())) {
     113    if (temp_grid->Global().LocalBegin().IsComponentwiseGreaterOrEqual(rhs(i-1).Global().LocalBegin()) &&
     114        temp_grid->Global().LocalEnd().IsComponentwiseLessOrEqual(rhs(i-1).Global().LocalEnd())) {
    118115      delete temp_grid;
    119116      coarser_grids.insert(std::make_pair(&rhs(i), &rhs(i-1)));
     
    132129    temp_grid->SetPropertiesToFiner(sol(i), comm.BoundaryConditions());
    133130
    134     if (temp_grid->Global().LocalBegin() == sol(i+1).Global().LocalBegin() &&
    135         temp_grid->Global().LocalEnd() == sol(i+1).Global().LocalEnd()) {
     131    if (temp_grid->Global().LocalBegin().IsComponentwiseGreaterOrEqual(sol(i+1).Global().LocalBegin()) &&
     132        temp_grid->Global().LocalEnd().IsComponentwiseLessOrEqual(sol(i+1).Global().LocalEnd())) {
    136133      delete temp_grid;
    137134      finer_grids.insert(std::make_pair(&sol(i), &sol(i+1)));
     
    147144    temp_grid->SetPropertiesToFiner(rhs(i), comm.BoundaryConditions());
    148145
    149     if (temp_grid->Global().LocalBegin() == rhs(i+1).Global().LocalBegin() &&
    150         temp_grid->Global().LocalEnd() == rhs(i+1).Global().LocalEnd()) {
     146    if (temp_grid->Global().LocalBegin().IsComponentwiseGreaterOrEqual(rhs(i+1).Global().LocalBegin()) &&
     147        temp_grid->Global().LocalEnd().IsComponentwiseLessOrEqual(rhs(i+1).Global().LocalEnd())) {
    151148      delete temp_grid;
    152149      finer_grids.insert(std::make_pair(&rhs(i), &rhs(i+1)));
     
    281278{
    282279  MPI_Comm comm = CommunicatorGlobal(grid_old);
    283   bool dt_is_new = true;
    284280
    285281  // Insert into map
     
    287283      datatypes_global.insert(std::make_pair(VMG::MPI::KeyUnsorted(grid_old, grid_new, direction), VMG::MPI::DatatypesGlobal()));
    288284  VMG::MPI::DatatypesGlobal& dt_global = insert_result.first->second;
    289   dt_is_new = insert_result.second;
     285  bool dt_is_new = insert_result.second;
    290286
    291287
     
    336332          dt_global.Receive().push_back(VMG::MPI::Datatype(grid_new.Local().SizeTotal(),
    337333              end - begin,
    338               begin - grid_new.Global().LocalBegin() + grid_new.Global().GlobalBegin() + offset_new,
     334              begin - grid_new.Global().LocalBegin() + offset_new,
    339335              i, 0, 0, true));
    340336        }
     
    370366          dt_global.Send().push_back(VMG::MPI::Datatype(grid_old.Local().SizeTotal(),
    371367              end - begin,
    372               begin - grid_old.Global().LocalBegin() + grid_old.Global().GlobalBegin() + offset_old,
     368              begin - grid_old.Global().LocalBegin() + offset_old,
    373369              i, 0, 0, true));
    374370        }
  • src/grid/grid_index_translations.cpp

    r4a709e re85cfd  
    3636#include "grid/grid.hpp"
    3737#include "grid/multigrid.hpp"
     38#include "mg.hpp"
    3839
    3940using namespace VMG;
     
    4142bool GridIndexTranslations::IsGridPointOf(const Grid& grid, const Index& index_finest)
    4243{
    43   assert(grid.Father() != NULL);
    44   return index_finest[0] % Helper::intpow(2, grid.Father()->MaxLevel() - grid.Level()) == 0 &&
    45          index_finest[1] % Helper::intpow(2, grid.Father()->MaxLevel() - grid.Level()) == 0 &&
    46          index_finest[2] % Helper::intpow(2, grid.Father()->MaxLevel() - grid.Level()) == 0;
     44  const int max_level = MG::GetSol()->MaxLevel();
     45  return index_finest[0] % Helper::intpow(2, max_level - grid.Level()) == 0 &&
     46         index_finest[1] % Helper::intpow(2, max_level - grid.Level()) == 0 &&
     47         index_finest[2] % Helper::intpow(2, max_level - grid.Level()) == 0;
    4748}
    4849
     
    6465Index GridIndexTranslations::GlobalToGlobalFinest(const Grid& grid, const Index& index_global)
    6566{
    66   assert(grid.Father() != NULL);
    67   return Helper::intpow(2, grid.Father()->MaxLevel() - grid.Level()) * index_global;
     67  return Helper::intpow(2, MG::GetSol()->MaxLevel() - grid.Level()) * index_global;
    6868}
    6969
     
    7575Index GridIndexTranslations::GlobalFinestToGlobal(const Grid& grid, const Index& index_finest)
    7676{
    77   assert(grid.Father() != NULL);
    7877  assert(IsGridPointOf(grid, index_finest));
    79   return index_finest / Helper::intpow(2, grid.Father()->MaxLevel() - grid.Level());
     78  return index_finest / Helper::intpow(2, MG::GetSol()->MaxLevel() - grid.Level());
    8079}
    8180
     
    9796
    9897void GridIndexTranslations::GetGridAlignment(const Grid& grid_1, GridIteratorSet& bounds_1,
    99                       const Grid& grid_2, GridIteratorSet& bounds_2)
     98                                             const Grid& grid_2, GridIteratorSet& bounds_2)
    10099{
    101   assert(grid_1.Father() != NULL);
    102   assert(grid_2.Father() != NULL);
    103 
    104100  if (grid_1.Level() == grid_2.Level()) {
    105101    const Index begin_global = grid_1.Global()
     
    117113
    118114    const Grid& grid_c = (grid_1.Level() < grid_2.Level() ? grid_1 : grid_2);
    119     const int global_mult = Helper::intpow(2, grid_c.Father()->MaxLevel() - grid_c.Level());
     115    const int global_mult = Helper::intpow(2, MG::GetSol()->MaxLevel() - grid_c.Level());
    120116
    121117    Index begin_finest = GlobalToGlobalFinest(grid_1, grid_1.Global().LocalBegin())
  • src/grid/tempgrid.cpp

    r4a709e re85cfd  
    104104
    105105  const Grid& grid_finer = (*grid.Father())(grid.Level()+1);
    106   const Index off = GridIndexTranslations::EndOffset(boundary);
    107106
    108107  /*
     
    123122
    124123  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());
     124  global.LocalEnd() = (2*grid.Global().LocalEnd()).Clamp(global.GlobalBegin(), global.GlobalEnd());
    126125  global.LocalSize() = global.LocalEnd() - global.LocalBegin();
    127126
  • src/solver/givens.hpp

    r4a709e re85cfd  
    4242public:
    4343  Givens(bool register_ = true) :
    44     T(register_)
    45   {}
     44  T(register_)
     45{}
    4646
    4747  Givens(int size, bool register_ = true) :
    48     T(size, register_)
     48  T(size, register_)
    4949  {}
    5050
     
    6363      if (fabs(this->Mat(j,i)) > DBL_EPSILON) {
    6464
    65         t = 1.0 / sqrt(this->Mat(i,i)*this->Mat(i,i) + this->Mat(j,i)*this->Mat(j,i));
    66         s = t * this->Mat(j,i);
    67         c = t * this->Mat(i,i);
     65        t = 1.0 / sqrt(this->Mat(i,i)*this->Mat(i,i) + this->Mat(j,i)*this->Mat(j,i));
     66        s = t * this->Mat(j,i);
     67        c = t * this->Mat(i,i);
    6868
    69         for (int k=i; k<n; k++) {
     69        for (int k=i; k<n; k++) {
    7070
    71           t = c * this->Mat(i,k) + s * this->Mat(j,k);
     71          t = c * this->Mat(i,k) + s * this->Mat(j,k);
    7272
    73           if (k != i)
    74             this->Mat(j,k) = c * this->Mat(j,k) - s * this->Mat(i,k);
     73          if (k != i)
     74            this->Mat(j,k) = c * this->Mat(j,k) - s * this->Mat(i,k);
    7575
    76           this->Mat(i,k) = t;
     76          this->Mat(i,k) = t;
    7777
    78         }
     78        }
    7979
    80         t = c * this->Rhs(i) + s * this->Rhs(j);
     80        t = c * this->Rhs(i) + s * this->Rhs(j);
    8181
    82         this->Rhs(j) = c * this->Rhs(j) - s * this->Rhs(i);
     82        this->Rhs(j) = c * this->Rhs(j) - s * this->Rhs(i);
    8383
    84         this->Rhs(i) = t;
     84        this->Rhs(i) = t;
    8585
    86         this->Mat(j,i) = 0.0;
     86        this->Mat(j,i) = 0.0;
    8787
    8888      }
  • src/units/particle/interface_fcs.cpp

    r4a709e re85cfd  
    6363
    6464#include "cycles/cycle_cs_periodic_debug.hpp"
    65 
     65//TODO: Remove Debug
    6666
    6767using namespace VMG;
     
    112112                          periodic[2] ? Periodic : Open);
    113113
    114   const bool singular = periodic[0] * periodic[1] * periodic[2];
     114  const bool singular = boundary[0] == Periodic &&
     115                        boundary[1] == Periodic &&
     116                        boundary[2] == Periodic;
    115117
    116118  /*
     
    121123    new Particle::CommMPI(boundary, new DomainDecompositionMPI(), mpi_comm);
    122124    new DiscretizationPoissonFD(discretization_order);
    123     new InterfaceParticles(boundary, 2, level, Vector(box_offset), box_size, near_field_cells, 0, 1.0);
     125    new InterfaceParticles(boundary, 2, level, Vector(box_offset), box_size, near_field_cells);
    124126    new LevelOperatorCS(Stencils::RestrictionFullWeight, Stencils::InterpolationTrilinear);
    125127    new Givens<SolverSingular>();
    126     new CycleCSPeriodicDebug(cycle_type);
     128    new CycleCSPeriodic(cycle_type);
    127129
    128130  }else {
     
    130132    new Particle::CommMPI(boundary, new DomainDecompositionMPI(), mpi_comm);
    131133    new DiscretizationPoissonFV(discretization_order);
    132     new InterfaceParticles(boundary, 2, level, Vector(box_offset), box_size, near_field_cells, 2, 1.6);
     134    new InterfaceParticles(boundary, 2, level, Vector(box_offset), box_size, near_field_cells, 9, 1.6);
    133135    new LevelOperatorFAS(Stencils::RestrictionFullWeight, Stencils::Injection, Stencils::InterpolationTrilinear);
    134136    new Givens<SolverRegular>();
  • src/units/particle/interface_particles.cpp

    r4a709e re85cfd  
    233233  const vmg_int& num_particles_local = factory.GetObjectStorageVal<vmg_int>("PARTICLE_NUM_LOCAL");
    234234  const vmg_float* p = factory.GetObjectStorageArray<vmg_float>("PARTICLE_POTENTIAL_ARRAY");
    235   const vmg_float* f = factory.GetObjectStorageArray<vmg_float>("PARTICLE_FIELD_ARRAY");
    236235
    237236
  • src/units/particle/interface_particles.hpp

    r4a709e re85cfd  
    4949                     const Vector& box_offset, const vmg_float& box_size,
    5050                     const int& near_field_cells,
    51                      const int& coarsening_steps, const vmg_float& alpha) :
    52     Interface(boundary, levelMin, levelMax, box_offset, box_size, coarsening_steps, alpha),
     51                     const int& max_boundary_nodes = 9, const vmg_float& alpha = 1.6) :
     52    Interface(boundary, levelMin, levelMax, box_offset, box_size, max_boundary_nodes, alpha),
    5353    spl(near_field_cells, Extent(MaxLevel()).MeshWidth().Max())
    5454  {}
  • test/interfaces/interface_sinus.hpp

    r4a709e re85cfd  
    4444                 VMG::Boundary boundary, int levelMin, int levelMax,
    4545                 vmg_float box_begin, vmg_float box_end,
    46                  int coarseningSteps=0, double alpha=1.6) :
     46                 int max_boundary_nodes=9, double alpha=1.6) :
    4747    VMG::Interface(boundary, levelMin, levelMax,
    48                    box_begin, box_end, coarseningSteps, alpha),
     48                   box_begin, box_end, max_boundary_nodes, alpha),
    4949    sine_factor(sine_factor)
    5050  {}
  • test/unit_test/library/periodic_cs_mpi.cpp

    r4a709e re85cfd  
    4444#include "comm/domain_decomposition_mpi.hpp"
    4545#include "cycles/cycle_cs_periodic.hpp"
     46#include "cycles/cycle_cs_periodic_debug.hpp"
    4647#include "level/level_operator_cs.hpp"
    4748#include "samples/discretization_poisson_fd.hpp"
Note: See TracChangeset for help on using the changeset viewer.