1 #ifndef POISSON_SOLVER_H_
2 #define POISSON_SOLVER_H_
12 template <
class T,
unsigned Dim>
46 throw OpalException(
"PoissonSolver::solve()",
"Not supported for non-AMR code.");
53 throw OpalException(
"PoissonSolver::hasToRegrid()",
"Not supported for non-AMR code.");
59 virtual double getXRangeMin(
unsigned short level = 0) = 0;
60 virtual double getXRangeMax(
unsigned short level = 0) = 0;
61 virtual double getYRangeMin(
unsigned short level = 0) = 0;
62 virtual double getYRangeMax(
unsigned short level = 0) = 0;
63 virtual double getZRangeMin(
unsigned short level = 0) = 0;
64 virtual double getZRangeMax(
unsigned short level = 0) = 0;
virtual double getZRangeMax(unsigned short level=0)=0
virtual double getYRangeMin(unsigned short level=0)=0
virtual double getXRangeMax(unsigned short level=0)=0
Field< int, 3, Mesh_t, Center_t > IField_t
std::ostream & operator<<(std::ostream &os, const Attribute &attr)
Field< std::complex< double >, 3, Mesh_t, Center_t > CxField_t
amr::AmrVectorFieldContainer_t AmrVectorFieldContainer_t
virtual double getinteractionRadius() const
virtual void computePotential(Field_t &rho, Vector_t hr)=0
virtual void calculatePairForces(PartBunchBase< double, 3 > *, double)
virtual void solve(AmrScalarFieldContainer_t &, AmrScalarFieldContainer_t &, AmrVectorFieldContainer_t &, unsigned short, unsigned short, bool=true)
The base class for all OPAL exceptions.
UniformCartesian< 3, double > Mesh_t
virtual void test(PartBunchBase< double, 3 > *bunch)=0
amr::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
virtual void hasToRegrid()
virtual double getXRangeMin(unsigned short level=0)=0
virtual double getZRangeMin(unsigned short level=0)=0
virtual void resizeMesh(Vector_t &, Vector_t &, const Vector_t &, const Vector_t &, double)
virtual double getYRangeMax(unsigned short level=0)=0