36 #ifndef AMR_PARTICLE_BASE_H
37 #define AMR_PARTICLE_BASE_H
45 template<
class PLayout>
98 void destroy(
size_t M,
size_t I,
bool doNow =
false);
113 void update(
int lev_min,
int lev_max,
bool isRegrid =
false);
const double & getScalingFactor() const
PLayout::AmrField_t AmrField_t
const double & domainMapping(bool inverse=false)
std::vector< ParticleAttribBase * > attrib_container_t
amr::AmrField_t AmrField_t
IpplTimings::TimerRef sortParticlesTimer_m
std::vector< SortListIndex_t > SortList_t
PLayout::SingleParticlePos_t SingleParticlePos_t
bool isForbidTransform() const
bool forbidTransform_m
To avoid multiple transformations during regrid.
void getGlobalBounds_m(Vector_t &rmin, Vector_t &rmax)
void addAttribute(ParticleAttribBase &pa)
void getLocalBounds_m(Vector_t &rmin, Vector_t &rmax)
amr::AmrVectorFieldContainer_t AmrVectorFieldContainer_t
void setLorentzFactor(const Vector_t &lorentzFactor)
Timing::TimerRef TimerRef
PLayout::ParticlePos_t ParticlePos_t
void performDestroy(bool updateLocalNum=false)
const ParticleLevelCounter_t & getLocalNumPerLevel() const
PLayout::ParticleIndex_t ParticleIndex_t
IpplTimings::TimerRef domainMappingTimer_m
void createWithID(unsigned id)
std::array< std::unique_ptr< AmrField_t >, AMREX_SPACEDIM > AmrVectorField_t
IpplTimings::TimerRef updateParticlesTimer_m
amr::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
void destroy(size_t M, size_t I, bool doNow=false)
PLayout::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
void setLocalNumPerLevel(const ParticleLevelCounter_t &LocalNumPerLevel)
PLayout::AmrVectorFieldContainer_t AmrVectorFieldContainer_t
ParticleLevelCounter_t LocalNumPerLevel_m
const PLayout & getAmrLayout() const
void setForbidTransform(bool forbidTransform)
AmrParticleLevelCounter< size_t, size_t > ParticleLevelCounter_t
PLayout::AmrVectorField_t AmrVectorField_t