OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
PoissonSolver Class Referenceabstract

#include <PoissonSolver.h>

Inheritance diagram for PoissonSolver:
Collaboration diagram for PoissonSolver:

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.

◆ 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

Definition at line 68 of file PoissonSolver.h.

◆ 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.

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: