1 #ifndef POISSON_SOLVER_H_
2 #define POISSON_SOLVER_H_
10 template <
class T,
unsigned Dim>
35 unsigned short baseLevel,
36 unsigned short finestLevel,
37 bool prevAsGuess =
true)
39 throw OpalException(
"PoissonSolver::solve()",
"Not supported for non-AMR code.");
46 throw OpalException(
"PoissonSolver::hasToRegrid()",
"Not supported for non-AMR code.");
52 virtual double getXRangeMin(
unsigned short level = 0) = 0;
53 virtual double getXRangeMax(
unsigned short level = 0) = 0;
54 virtual double getYRangeMin(
unsigned short level = 0) = 0;
55 virtual double getYRangeMax(
unsigned short level = 0) = 0;
56 virtual double getZRangeMin(
unsigned short level = 0) = 0;
57 virtual double getZRangeMax(
unsigned short level = 0) = 0;
std::ostream & operator<<(std::ostream &os, const Attribute &attr)
virtual double getXRangeMin(unsigned short level=0)=0
virtual double getXRangeMax(unsigned short level=0)=0
The base class for all OPAL exceptions.
virtual double getZRangeMax(unsigned short level=0)=0
virtual void solve(AmrScalarFieldContainer_t &rho, AmrScalarFieldContainer_t &phi, AmrVectorFieldContainer_t &efield, unsigned short baseLevel, unsigned short finestLevel, bool prevAsGuess=true)
virtual void computePotential(Field_t &rho, Vector_t hr)=0
virtual double getYRangeMin(unsigned short level=0)=0
virtual double getYRangeMax(unsigned short level=0)=0
virtual double getZRangeMin(unsigned short level=0)=0
amr::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
virtual void hasToRegrid()
virtual void test(PartBunchBase< double, 3 > *bunch)=0
amr::AmrVectorFieldContainer_t AmrVectorFieldContainer_t