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