27 :
AmrObject(CHARGE_DENSITY, 0.75, 1.0e-15)
36 , chargedensity_m(chargedensity)
40 , amrSolveTimer_m(
IpplTimings::getTimer(
"AMR solve"))
41 , amrRegridTimer_m(
IpplTimings::getTimer(
"AMR regrid"))
55 if ( tagging ==
"POTENTIAL" )
57 else if (tagging ==
"EFIELD" )
59 else if ( tagging ==
"MOMENTA" )
61 else if ( tagging ==
"MAX_NUM_PARTICLES" )
62 tagging_m = TaggingCriteria::MAX_NUM_PARTICLES;
63 else if ( tagging ==
"MIN_NUM_PARTICLES" )
64 tagging_m = TaggingCriteria::MIN_NUM_PARTICLES;
65 else if ( tagging ==
"CHARGE_DENSITY" )
66 tagging_m = TaggingCriteria::CHARGE_DENSITY;
69 "Not supported refinement criteria "
70 "[CHARGE_DENSITY | POTENTIAL | EFIELD | "
71 "MOMENTA | MAX_NUM_PARTICLES | MIN_NUM_PARTICLES].");
103 case TaggingCriteria::CHARGE_DENSITY:
104 tagging =
"CHARGE_DENSITY";
106 case TaggingCriteria::POTENTIAL:
107 tagging =
"POTENTIAL";
109 case TaggingCriteria::EFIELD:
112 case TaggingCriteria::MOMENTA:
115 case TaggingCriteria::MIN_NUM_PARTICLES:
116 tagging =
"MIN_NUM_PARTICLES";
118 case TaggingCriteria::MAX_NUM_PARTICLES:
119 tagging =
"MAX_NUM_PARTICLES";
123 "Only numbers between 0 and 5 allowed.");
void setMinNumParticles(size_t minNumPart)
const bool & isRefined() const
void setScalingFactor(double scaling)
double scaling_m
Scaling factor for tagging [0, 1].
TaggingCriteria
Methods for tagging cells for refinement.
void setMaxNumParticles(size_t maxNumPart)
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)
size_t minNumPart_m
Tagging value for MIN_NUM_PARTICLES.
void setTagging(TaggingCriteria tagging)
size_t maxNumPart_m
Tagging value for MAX_NUM_PARTICLES.
The base class for all OPAL exceptions.