OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Member Functions | Protected Types | List of all members
PoissonSolver Class Referenceabstract

#include <PoissonSolver.h>

Inheritance diagram for PoissonSolver:
Inheritance graph
[legend]

Public Member Functions

virtual void computePotential (Field_t &rho, Vector_t hr)=0
 
virtual void solve (AmrScalarFieldContainer_t &, AmrScalarFieldContainer_t &, AmrVectorFieldContainer_t &, unsigned short, unsigned short, bool=true)
 
virtual void hasToRegrid ()
 
virtual void computePotential (Field_t &rho, Vector_t hr, double zshift)=0
 
virtual double getXRangeMin (unsigned short level=0)=0
 
virtual double getXRangeMax (unsigned short level=0)=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
 
virtual double getZRangeMax (unsigned short level=0)=0
 
virtual void test (PartBunchBase< double, 3 > *bunch)=0
 
virtual ~PoissonSolver ()
 
virtual void resizeMesh (Vector_t &, Vector_t &, const Vector_t &, const Vector_t &, double)
 
virtual double getinteractionRadius () const
 
virtual void calculatePairForces (PartBunchBase< double, 3 > *, double)
 

Protected Types

typedef Field< int, 3, Mesh_t, Center_tIField_t
 
typedef Field< std::complex< double >, 3, Mesh_t, Center_tCxField_t
 

Detailed Description

Definition at line 16 of file PoissonSolver.h.

Member Typedef Documentation

◆ CxField_t

typedef Field<std::complex<double>, 3, Mesh_t, Center_t> PoissonSolver::CxField_t
protected

Definition at line 20 of file PoissonSolver.h.

◆ IField_t

typedef Field<int, 3, Mesh_t, Center_t> PoissonSolver::IField_t
protected

Definition at line 19 of file PoissonSolver.h.

Constructor & Destructor Documentation

◆ ~PoissonSolver()

virtual PoissonSolver::~PoissonSolver ( )
inlinevirtual

Definition at line 66 of file PoissonSolver.h.

Member Function Documentation

◆ calculatePairForces()

virtual void PoissonSolver::calculatePairForces ( PartBunchBase< double, 3 > *  ,
double   
)
inlinevirtual

Reimplemented in P3MPoissonSolver.

Definition at line 74 of file PoissonSolver.h.

Referenced by PartBunch::computeSelfFields().

◆ computePotential() [1/2]

virtual void PoissonSolver::computePotential ( Field_t rho,
Vector_t  hr 
)
pure virtual

◆ computePotential() [2/2]

virtual void PoissonSolver::computePotential ( Field_t rho,
Vector_t  hr,
double  zshift 
)
pure virtual

◆ getinteractionRadius()

virtual double PoissonSolver::getinteractionRadius ( ) const
inlinevirtual

Reimplemented in P3MPoissonSolver.

Definition at line 72 of file PoissonSolver.h.

◆ getXRangeMax()

virtual double PoissonSolver::getXRangeMax ( unsigned short  level = 0)
pure virtual

◆ getXRangeMin()

virtual double PoissonSolver::getXRangeMin ( unsigned short  level = 0)
pure virtual

◆ getYRangeMax()

virtual double PoissonSolver::getYRangeMax ( unsigned short  level = 0)
pure virtual

◆ getYRangeMin()

virtual double PoissonSolver::getYRangeMin ( unsigned short  level = 0)
pure virtual

◆ getZRangeMax()

virtual double PoissonSolver::getZRangeMax ( unsigned short  level = 0)
pure virtual

◆ getZRangeMin()

virtual double PoissonSolver::getZRangeMin ( unsigned short  level = 0)
pure virtual

◆ hasToRegrid()

virtual void PoissonSolver::hasToRegrid ( )
inlinevirtual

Tell solver to regrid

Reimplemented in AmrPoissonSolver< AmrObject >, and AmrPoissonSolver< AmrBoxLib >.

Definition at line 52 of file PoissonSolver.h.

Referenced by AmrBoxLib::postRegrid_m().

◆ resizeMesh()

virtual void PoissonSolver::resizeMesh ( Vector_t ,
Vector_t ,
const Vector_t ,
const Vector_t ,
double   
)
inlinevirtual

Reimplemented in MGPoissonSolver.

Definition at line 68 of file PoissonSolver.h.

Referenced by PartBunch::resizeMesh().

◆ solve()

virtual void PoissonSolver::solve ( AmrScalarFieldContainer_t ,
AmrScalarFieldContainer_t ,
AmrVectorFieldContainer_t ,
unsigned short  ,
unsigned short  ,
bool  = true 
)
inlinevirtual

AMR solver calls

Parameters
rhoright-hand side charge density on grid [C / m]
phielectrostatic potential (unknown) [V]
efieldelectric field [V / m]
baseLevelfor solve
finestLevelfor solve
prevAsGuessuse of previous solution as initial guess

Reimplemented in AmrMultiGrid, MLPoissonSolver, and FMGPoissonSolver.

Definition at line 39 of file PoissonSolver.h.

Referenced by AmrBoxLib::computeSelfFields_cycl(), and AmrBoxLib::solvePoisson_m().

◆ test()

virtual void PoissonSolver::test ( PartBunchBase< double, 3 > *  bunch)
pure virtual

The documentation for this class was generated from the following file: