23 #ifndef P3M_POISSON_SOLVER_H_
24 #define P3M_POISSON_SOLVER_H_
25 const unsigned Dim = 3;
27 #ifdef dontOPTIMIZE_FIELD_ASSIGNMENT
28 #define FIELDASSIGNOPTIMIZATION __attribute__((optimize(0)))
30 #define FIELDASSIGNOPTIMIZATION
41 template <
class T,
unsigned Dim>
Inform & operator<<(Inform &os, const P3MPoissonSolver &fs)
constexpr double alpha
The fine structure constant, no dimension.
Vektor< double, 3 > extend_l
BConds< Vector_t, Dim, Mesh_t, Center_t > vbc_m
double getYRangeMax(unsigned short)
double getXRangeMax(unsigned short)
void compute_temperature(PartBunchBase< double, 3 > *bunch)
void test(PartBunchBase< double, 3 > *bunch)
BConds< double, Dim, Mesh_t, Center_t > bc_m
double interaction_radius_m
BConds< double, Dim, Mesh_t, Center_t > bcp_m
void calculatePairForces(PartBunchBase< double, 3 > *bunch, double interaction_radius, double alpha, double eps)
void applyConstantFocusing(PartBunchBase< double, 3 > *bunch, double f, double r)
double getYRangeMin(unsigned short)
Vektor< double, 3 > extend_r
NDIndex< 3 > domainP3MConstruct_m
void calculateGridForces(PartBunchBase< double, 3 > *bunch, double interaction_radius, double alpha, double eps)
double getZRangeMax(unsigned short)
Vektor< double, Dim > avgEF_m
std::unique_ptr< FFTC_t > fft_m
Inform & print(Inform &os) const
double getXRangeMin(unsigned short)
double getZRangeMin(unsigned short)
void computePotential(Field_t &rho, Vector_t hr, double zshift)
FFT< CCTransform, 3, double > FFTC_t
void computeAvgSpaceChargeForces(PartBunchBase< double, 3 > *bunch)
P3MPoissonSolver(Mesh_t *mesh, FieldLayout_t *fl, double interaction_radius, double alpha, double eps)