21 #ifndef FFT_POISSON_SOLVER_H_
22 #define FFT_POISSON_SOLVER_H_
25 #ifdef dontOPTIMIZE_FIELD_ASSIGNMENT
26 #define FIELDASSIGNOPTIMIZATION __attribute__((optimize(0)))
28 #define FIELDASSIGNOPTIMIZATION
114 void *rho2real_m_ptr;
std::ostream & operator<<(std::ostream &os, const Attribute &attr)
std::unique_ptr< Mesh_t > mesh2_m
double getXRangeMin(unsigned short level)
void shiftedIntGreensFunction(double zshift)
compute the shifted integrated Green function as described in Three-dimensional quasistatic model for...
std::unique_ptr< FieldLayout_t > layout4_m
std::unique_ptr< Mesh_t > mesh3_m
double getZRangeMax(unsigned short level)
Inform & print(Inform &os) const
BConds< Vector_t, 3, Mesh_t, Center_t > vbc_m
IpplTimings::TimerRef GreensFunctionTimer_m
double getXRangeMax(unsigned short level)
IpplTimings::TimerRef ComputePotential_m
NDIndex< 3 > domainFFTConstruct_m
void integratedGreensFunction()
compute the integrated Green function as described in Three-dimensional quasistatic model for high br...
double getZRangeMin(unsigned short level)
std::unique_ptr< Mesh_t > mesh4_m
void integratedGreensFunctionDKS()
Uses DKS to offload the computation of Greens function on the GPU.
FFTPoissonSolver(PartBunch &bunch, std::string greensFuntion)
double getYRangeMax(unsigned short level)
#define FIELDASSIGNOPTIMIZATION
BConds< double, 3, Mesh_t, Center_t > bc_m
for defining the boundary conditions
double getYRangeMin(unsigned short level)
std::unique_ptr< FFT_t > fft_m
Timing::TimerRef TimerRef
void computePotentialDKS(Field_t &rho)
void computePotential(Field_t &rho, Vector_t hr, double zshift)
std::unique_ptr< FieldLayout_t > layout3_m
std::unique_ptr< FieldLayout_t > layout2_m
void test(PartBunchBase< double, 3 > *bunch)