1#ifndef POISSON_SOLVER_H_
2#define POISSON_SOLVER_H_
13template <
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.");
amr::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
UniformCartesian< 3, double > Mesh_t
amr::AmrVectorFieldContainer_t AmrVectorFieldContainer_t
Inform & operator<<(Inform &os, const PoissonSolver &)
virtual void solve(AmrScalarFieldContainer_t &, AmrScalarFieldContainer_t &, AmrVectorFieldContainer_t &, unsigned short, unsigned short, bool=true)
virtual void computePotential(Field_t &rho, Vector_t hr, double zshift)=0
virtual void computePotential(Field_t &rho, Vector_t hr)=0
Field< std::complex< double >, 3, Mesh_t, Center_t > CxField_t
virtual double getZRangeMin(unsigned short level=0)=0
virtual double getYRangeMin(unsigned short level=0)=0
Field< int, 3, Mesh_t, Center_t > IField_t
virtual double getXRangeMin(unsigned short level=0)=0
virtual void calculatePairForces(PartBunchBase< double, 3 > *, double)
virtual void resizeMesh(Vector_t &, Vector_t &, const Vector_t &, const Vector_t &, double)
virtual double getinteractionRadius() const
virtual double getYRangeMax(unsigned short level=0)=0
virtual void hasToRegrid()
virtual double getZRangeMax(unsigned short level=0)=0
virtual void test(PartBunchBase< double, 3 > *bunch)=0
virtual double getXRangeMax(unsigned short level=0)=0
The base class for all OPAL exceptions.