OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
AmrPCInterpolater.hpp
Go to the documentation of this file.
1 template <class Level>
3  : AmrInterpolater<Level>(1)
4 { }
5 
6 
7 template <class Level>
9  const AmrIntVect_t& iv,
10  const basefab_t& fab,
11  umap_t& map,
12  const scalar_t& scale,
13  Level* mglevel)
14 {
15  AmrIntVect_t civ = iv;
16  civ.coarsen(mglevel->refinement());
17 
18  if ( !mglevel->applyBoundary(civ, fab, map, scale) )
19  map[mglevel->serialize(civ)] += scale;
20 }
21 
22 
23 template <class Level>
25  const AmrIntVect_t& iv,
26  umap_t& map,
27  const scalar_t& scale,
28  lo_t dir, lo_t shift, const basefab_t& rfab,
29  const AmrIntVect_t& riv,
30  Level* mglevel)
31 {
32  // do nothing
33 }
34 
35 
36 template <class Level>
38  const AmrIntVect_t& iv,
39  umap_t& map,
40  const scalar_t& scale,
41  lo_t dir, lo_t shift, const basefab_t& fab,
42  Level* mglevel)
43 {
44  /*
45  * The AmrPCInterpolater interpolates directly to the
46  * fine ghost cell.
47  */
48  this->stencil(iv, fab, map, scale, mglevel);
49 }
Level::basefab_t basefab_t
&lt; Abstract base class for all coarse to fine cell interpolaters
void stencil(const AmrIntVect_t &iv, const basefab_t &fab, umap_t &map, const scalar_t &scale, Level *mglevel)
Level::scalar_t scalar_t
amr::AmrIntVect_t AmrIntVect_t
Level::umap_t umap_t
void coarse(const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, const basefab_t &rfab, const AmrIntVect_t &riv, Level *mglevel)
Level::lo_t lo_t
void fine(const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, const basefab_t &fab, Level *mglevel)