24 #ifndef P3M_POISSON_SOLVER_H_
25 #define P3M_POISSON_SOLVER_H_
26 const unsigned Dim = 3;
28 #ifdef dontOPTIMIZE_FIELD_ASSIGNMENT
29 #define FIELDASSIGNOPTIMIZATION __attribute__((optimize(0)))
31 #define FIELDASSIGNOPTIMIZATION
43 template <
class T,
unsigned Dim>
55 double interaction_radius,
P3MPoissonSolver(Mesh_t *mesh, FieldLayout_t *fl, double interaction_radius, double alpha, std::string greensFunction)
std::unique_ptr< FFT_t > fft_mp
IpplTimings::TimerRef GreensFunctionTimer_m
double getZRangeMax(unsigned short) override
void calculatePairForces(PartBunchBase< double, 3 > *bunch, double gammaz) override
Field< int, 3, Mesh_t, Center_t > IField_t
std::ostream & operator<<(std::ostream &os, const Attribute &attr)
Inform & print(Inform &os) const
NDIndex< 3 > domainFFTConstruct_m
FieldLayout_t * layout_mp
FFT< RCTransform, 3, double > FFT_t
double getXRangeMax(unsigned short) override
std::unique_ptr< FieldLayout_t > layout2_mp
Timing::TimerRef TimerRef
void integratedGreensFunction()
void test(PartBunchBase< double, 3 > *) override
std::unique_ptr< FieldLayout_t > layout4_mp
double getYRangeMax(unsigned short) override
double getXRangeMin(unsigned short) override
std::unique_ptr< FieldLayout_t > layout3_mp
double getZRangeMin(unsigned short) override
constexpr double alpha
The fine structure constant, no dimension.
IpplTimings::TimerRef ComputePotential_m
std::unique_ptr< Mesh_t > mesh3_mp
double getYRangeMin(unsigned short) override
std::unique_ptr< Mesh_t > mesh4_mp
void computePotential(Field_t &rho, Vector_t hr) override
IpplTimings::TimerRef CalculatePairForces_m
double interaction_radius_m
double getinteractionRadius() const override
std::unique_ptr< Mesh_t > mesh2_mp