36 #ifndef BOXLIB_LAYOUT_H 
   37 #define BOXLIB_LAYOUT_H 
   44 #include <AMReX_ParGDB.H> 
   46 template<
class T, 
unsigned Dim>
 
   78     typedef amrex::FabArray<basefab_t>  
mask_t;
 
  187                 int lev_min = 0, 
int lev_max = -1, 
bool isRegrid = 
false);
 
  202                         const unsigned int ip, 
int level) 
const;
 
  227     const std::unique_ptr<mask_t>& 
getLevelMask(
int lev) 
const;
 
  243         this->m_geom.resize(length);
 
  244         this->m_dmap.resize(length);
 
  245         this->m_ba.resize(length);
 
  246         this->m_nlevels = length;
 
  259     void define(
const AmrGeomContainer_t& geom) {
 
  260         for (
unsigned int i = 0; i < geom.size(); ++i)
 
  261             this->m_geom[i] = geom[i];
 
  272         for (
unsigned int i = 0; i < 
refRatio.size(); ++i) {
 
  322     void initBaseBox_m(
int nGridPoints, 
int maxGridSize, 
double dh = 0.04);
 
  341                 const unsigned int ip, 
 
  342                 int lev_min = 0, 
int lev_max = -1, 
int nGrow = 0) 
const;
 
  356                                const unsigned int ip,
 
  357                                int lev_min = 0, 
int lev_max = -1) 
const;
 
  379                         const unsigned int ip,
 
  380                         int lev_min, 
int lev_max, 
int nGrow) 
const;
 
  390     std::vector<std::unique_ptr<mask_t> > 
masks_m;
 
amrex::Vector< AmrVectorField_t > AmrVectorFieldContainer_t
 
amrex::DistributionMapping AmrProcMap_t
 
amrex::Vector< AmrIntVect_t > AmrIntVectContainer_t
 
amrex::Geometry AmrGeometry_t
 
amrex::RealBox AmrDomain_t
 
amrex::Vector< AmrGeometry_t > AmrGeomContainer_t
 
amrex::IntVect AmrIntVect_t
 
std::array< std::unique_ptr< AmrField_t >, AMREX_SPACEDIM > AmrVectorField_t
 
amrex::MultiFab AmrField_t
 
amrex::Vector< std::unique_ptr< AmrField_t > > AmrScalarFieldContainer_t
 
amrex::Vector< int > AmrIntArray_t
 
amrex::BoxArray AmrGrid_t
 
amrex::Vector< AmrGrid_t > AmrGridContainer_t
 
amrex::Vector< AmrProcMap_t > AmrProcMapContainer_t
 
ParticleAttrib< Index_t > ParticleIndex_t
 
void setBoundingBox(double dh)
 
void define(const AmrIntVectContainer_t &refRatio)
 
amr::AmrProcMapContainer_t AmrProcMapContainer_t
 
amr::AmrDomain_t AmrDomain_t
 
const std::unique_ptr< mask_t > & getLevelMask(int lev) const
 
void setDomainRatio(const std::vector< double > &ratio)
 
void locateParticle(AmrParticleBase< BoxLibLayout< T, Dim > > &p, const unsigned int ip, int lev_min, int lev_max, int nGrow) const
 
AmrIntVectContainer_t refRatio_m
 
static Vector_t lowerBound
 
void buildLevelMask(int lev, const int ncells=1)
 
void initBaseBox_m(int nGridPoints, int maxGridSize, double dh=0.04)
 
bool LevelDefined(int level) const
 
void clearLevelMask(int lev)
 
ParticleAmrLayout< T, Dim >::ParticlePos_t ParticlePos_t
 
amr::AmrIntVect_t AmrIntVect_t
 
ParticleAmrLayout< T, Dim >::pair_t pair_t
 
amr::AmrIntArray_t AmrIntArray_t
 
amr::AmrGeometry_t AmrGeometry_t
 
amr::AmrVectorField_t AmrVectorField_t
 
ParticleAmrLayout< T, Dim >::pair_iterator pair_iterator
 
amr::AmrVectorFieldContainer_t AmrVectorFieldContainer_t
 
amrex::BaseFab< int > basefab_t
 
amrex::FabArray< basefab_t > mask_t
 
amr::AmrGeomContainer_t AmrGeomContainer_t
 
bool PeriodicShift(SingleParticlePos_t R) const
 
static Vector_t upperBound
 
void update(IpplParticleBase< BoxLibLayout< T, Dim > > &PData, const ParticleAttrib< char > *canSwap=0)
 
amr::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
 
ParticleAmrLayout< T, Dim >::SingleParticlePos_t SingleParticlePos_t
 
amr::AmrGridContainer_t AmrGridContainer_t
 
bool EnforcePeriodicWhere(AmrParticleBase< BoxLibLayout< T, Dim > > &prt, const unsigned int ip, int lev_min=0, int lev_max=-1) const
 
AmrIntVect_t Index(AmrParticleBase< BoxLibLayout< T, Dim > > &p, const unsigned int ip, int level) const
 
void resize(int maxLevel)
 
void define(const AmrGeomContainer_t &geom)
 
std::vector< std::unique_ptr< mask_t > > masks_m
Refinement ratios [0:finest_level-1].
 
ParticleAmrLayout< T, Dim >::Index_t Index_t
 
amr::AmrProcMap_t AmrProcMap_t
 
amr::AmrIntVectContainer_t AmrIntVectContainer_t
 
int MaxRefRatio(int level) const
 
amr::AmrField_t AmrField_t
 
AmrIntVect_t refRatio(int level) const
 
bool Where(AmrParticleBase< BoxLibLayout< T, Dim > > &p, const unsigned int ip, int lev_min=0, int lev_max=-1, int nGrow=0) const
 
ParticleLayout< T, Dim >::Index_t Index_t
 
int maxLevel_m
Maximum level allowed.