29 , fieldlayout_m(nullptr)
38 , fieldlayout_m(nullptr)
72 if ( !isForbidTransform ) {
84 if ( !isForbidTransform ) {
95 return hr_m * scalefactor;
151 if ( !isForbidTransform ) {
160 if ( !isForbidTransform ) {
169 "AmrObject pointer is not set.");
228 std::unique_ptr<size_t[]> partPerLevel(
new size_t[nLevel] );
231 for (
int i = 0; i < nLevel; ++i)
237 for (
size_t i = 0; i < LocalNumPerLevel.size(); ++i)
238 partPerLevel[i] = LocalNumPerLevel[i];
240 reduce(*partPerLevel.get(),
242 nLevel, std::plus<size_t>());
263 if ( gamma >= 1.0 ) {
277 Vector_t lorentzFactor(1.0, 1.0, 1.0);
280 lorentzFactor[1] = gamma;
282 lorentzFactor[2] = gamma;
const double & getScalingFactor() const
static OpalData * getInstance()
virtual void computeSelfFields_cycl(double gamma)=0
const double & domainMapping(bool inverse=false)
std::unique_ptr< size_t[]> globalPartPerLevel_m
void updateFields(const Vector_t &hr, const Vector_t &origin)
virtual Vektor< int, 3 > getBaseLevelGridPoints() const =0
virtual void computeSelfFields()=0
bool isForbidTransform() const
Vector_t hr_m
meshspacing of cartesian mesh
double getRho(int x, int y, int z)
void updateDomainLength(Vektor< int, 3 > &grid)
pbase_t * getAmrParticleBase()
UnitState_t stateOfLastBoundP_
void setLorentzFactor(const Vector_t &lorentzFactor)
AmrPartBunch(const PartData *ref)
virtual const int & maxLevel() const =0
void setBoundingBox(double dh)
FieldLayout_t & getFieldLayout()
FieldLayout_t * fieldlayout_m
static void startTimer(TimerRef t)
virtual void initFineLevels()=0
const size_t & getLevelStatistics(int l) const
IpplTimings::TimerRef selfFieldTimer_m
timer for selfField calculation
virtual void set_meshEnlargement(double dh)
VectorPair_t getEExtrema()
FieldSolver * fs_m
stores the used field solver
const ParticleLevelCounter_t & getLocalNumPerLevel() const
IpplTimings::TimerRef boundpTimer_m
const bool & isRefined() const
double getBinGamma(int bin)
Get gamma of one bin.
void computeSelfFields_cycl(double gamma)
void updateLorentzFactor(int bin=0)
void initialize(FieldLayout_t *fLayout)
virtual double getRho(int x, int y, int z)=0
void setAmrDomainRatio(const std::vector< double > &ratio)
virtual VectorPair_t getEExtrema()=0
std::pair< Vector_t, Vector_t > VectorPair_t
static void stopTimer(TimerRef t)
void setForbidTransform(bool forbidTransform)
void set_meshEnlargement(double dh)
void updateFieldContainers_m()
void setDomainRatio(const std::vector< double > &ratio)
void gatherLevelStatistics()
bool reduce(Communicate &, InputIterator, InputIterator, OutputIterator, const ReduceOp &, bool *IncludeVal=0)