68 double chargedensity);
78 std::vector<int>& gridsPerLevel)
const = 0;
89 virtual void regrid(
double time) = 0;
137 virtual double getRho(
int x,
int y,
int z) = 0;
157 virtual double getT()
const = 0;
virtual void initFineLevels()=0
void setMinNumParticles(size_t minNumPart)
virtual void getGridStatistics(std::map< int, long > &gridPtsPerCore, std::vector< int > &gridsPerLevel) const =0
virtual double getRho(int x, int y, int z)=0
const bool & isRefined() const
void setScalingFactor(double scaling)
double scaling_m
Scaling factor for tagging [0, 1].
IpplTimings::TimerRef amrRegridTimer_m
TaggingCriteria
Methods for tagging cells for refinement.
@ MIN_NUM_PARTICLES
min. #particles per cell
@ MAX_NUM_PARTICLES
max. #particles per cell
std::pair< Vector_t, Vector_t > VectorPair_t
void setMaxNumParticles(size_t maxNumPart)
virtual void computeSelfFields(int b)=0
virtual void computeSelfFields_cycl(double gamma)=0
virtual VectorPair_t getEExtrema()=0
virtual Vektor< int, 3 > getBaseLevelGridPoints() const =0
double chargedensity_m
Tagging value for CHARGE_DENSITY.
bool refined_m
Only set to true in AmrObject::initFineLevels()
TaggingCriteria tagging_m
Tagging strategy.
void setChargeDensity(double chargedensity)
static std::string enum2string(int number)
virtual void updateMesh()=0
virtual double getT() const =0
IpplTimings::TimerRef amrSolveTimer_m
timer for selfField calculation (used in concrete AmrObject classes)
size_t minNumPart_m
Tagging value for MIN_NUM_PARTICLES.
virtual void computeSelfFields_cycl(int b)=0
void setTagging(TaggingCriteria tagging)
virtual void computeSelfFields()=0
virtual const int & maxLevel() const =0
virtual const int & finestLevel() const =0
size_t maxNumPart_m
Tagging value for MAX_NUM_PARTICLES.
virtual void regrid(double time)=0
virtual void redistributeGrids(int)
int refratio[3]
Mesh refinement ratio in x-, y- and z-direction.
int grid[3]
Number of grid points in x-, y- and z-direction.
int maxgrid[3]
Maximum grid size in x-, y- and z-direction.
int bf[3]
Grid blocking factor in x-, y- and z-direction.
int maxlevel
Maximum level for AMR (0: single-level)
Timing::TimerRef TimerRef