9 , fieldlayout_m(nullptr)
18 , fieldlayout_m(nullptr)
54 if ( !isForbidTransform ) {
66 if ( !isForbidTransform ) {
77 return hr_m * scalefactor;
114 throw OpalException(
"AmrPartBunch::getFieldLayout() ",
"Not yet Implemented.");
133 if ( !isForbidTransform ) {
142 if ( !isForbidTransform ) {
151 "AmrObject pointer is not set.");
210 std::unique_ptr<size_t[]> partPerLevel(
new size_t[nLevel] );
213 for (
int i = 0; i < nLevel; ++i)
219 for (
size_t i = 0; i < LocalNumPerLevel.size(); ++i)
220 partPerLevel[i] = LocalNumPerLevel[i];
222 reduce(*partPerLevel.get(),
224 nLevel, std::plus<size_t>());
246 if ( gamma >= 1.0 ) {
260 Vector_t lorentzFactor(1.0, 1.0, 1.0);
263 lorentzFactor[1] = gamma;
265 lorentzFactor[2] = gamma;
IpplTimings::TimerRef selfFieldTimer_m
timer for selfField calculation
void gatherLevelStatistics()
double getRho(int x, int y, int z)
const double & getScalingFactor() const
void updateFields(const Vector_t &hr, const Vector_t &origin)
const size_t & getLevelStatistics(int l) const
virtual void set_meshEnlargement(double dh)
The base class for all OPAL exceptions.
void updateFieldContainers_m()
AmrPartBunch(const PartData *ref)
virtual void computeSelfFields()=0
const ParticleLevelCounter_t & getLocalNumPerLevel() const
virtual double getRho(int x, int y, int z)=0
bool isForbidTransform() const
void updateDomainLength(Vektor< int, 3 > &grid)
const bool & isRefined() const
FieldLayout_t & getFieldLayout()
pbase_t * getAmrParticleBase()
bool reduce(Communicate &, InputIterator, InputIterator, OutputIterator, const ReduceOp &, bool *IncludeVal=0)
static OpalData * getInstance()
std::pair< Vector_t, Vector_t > VectorPair_t
UnitState_t stateOfLastBoundP_
IpplTimings::TimerRef boundpTimer_m
void setDomainRatio(const std::vector< double > &ratio)
void setAmrDomainRatio(const std::vector< double > &ratio)
void computeSelfFields_cycl(double gamma)
void updateLorentzFactor(int bin=0)
virtual void computeSelfFields_cycl(double gamma)=0
static void startTimer(TimerRef t)
void setForbidTransform(bool forbidTransform)
void setLorentzFactor(const Vector_t &lorentzFactor)
FieldSolver * fs_m
stores the used field solver
FieldLayout_t * fieldlayout_m
const double & domainMapping(bool inverse=false)
Vector_t hr_m
meshspacing of cartesian mesh
virtual Vektor< int, 3 > getBaseLevelGridPoints() const =0
double getBinGamma(int bin)
Get gamma of one bin.
VectorPair_t getEExtrema()
calculates back the max/min of the efield on the grid
void set_meshEnlargement(double dh)
void setBoundingBox(double dh)
virtual const int & maxLevel() const =0
static void stopTimer(TimerRef t)
virtual VectorPair_t getEExtrema()=0
virtual void initFineLevels()=0
std::unique_ptr< size_t[]> globalPartPerLevel_m
void initialize(FieldLayout_t *fLayout)