OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
AmrPoissonSolver< AmrObject > Class Template Referenceabstract

#include <AmrPoissonSolver.h>

Inheritance diagram for AmrPoissonSolver< AmrObject >:
Collaboration diagram for AmrPoissonSolver< AmrObject >:

Public Member Functions

 AmrPoissonSolver (AmrObject *itsAmrObject_p)
virtual ~AmrPoissonSolver ()
void computePotential (Field_t &, Vector_t)
void computePotential (Field_t &, Vector_t, double)
void test (PartBunchBase< double, 3 > *)
void hasToRegrid ()
virtual void solve (AmrScalarFieldContainer_t &, AmrScalarFieldContainer_t &, AmrVectorFieldContainer_t &, unsigned short, unsigned short, bool=true)
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 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

Protected Attributes

AmrObjectitsAmrObject_mp
bool regrid_m
 is set to true by itsAmrObject_mp and reset to false by solver

Detailed Description

template<class AmrObject>
class AmrPoissonSolver< AmrObject >

Definition at line 30 of file AmrPoissonSolver.h.

Member Typedef Documentation

◆ CxField_t

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

Definition at line 20 of file PoissonSolver.h.

◆ IField_t

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

Definition at line 19 of file PoissonSolver.h.

Constructor & Destructor Documentation

◆ AmrPoissonSolver()

template<class AmrObject>
AmrPoissonSolver< AmrObject >::AmrPoissonSolver ( AmrObject * itsAmrObject_p)
inline
Parameters
itsAmrObject_pholds information about grids and domain

Definition at line 36 of file AmrPoissonSolver.h.

References itsAmrObject_mp, and regrid_m.

◆ ~AmrPoissonSolver()

template<class AmrObject>
virtual AmrPoissonSolver< AmrObject >::~AmrPoissonSolver ( )
inlinevirtual

Definition at line 39 of file AmrPoissonSolver.h.

Member Function Documentation

◆ calculatePairForces()

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

Reimplemented in P3MPoissonSolver.

Definition at line 74 of file PoissonSolver.h.

◆ computePotential() [1/2]

template<class AmrObject>
void AmrPoissonSolver< AmrObject >::computePotential ( Field_t & ,
Vector_t  )
inlinevirtual

Implements PoissonSolver.

Definition at line 42 of file AmrPoissonSolver.h.

◆ computePotential() [2/2]

template<class AmrObject>
void AmrPoissonSolver< AmrObject >::computePotential ( Field_t & ,
Vector_t ,
double  )
inlinevirtual

Implements PoissonSolver.

Definition at line 47 of file AmrPoissonSolver.h.

◆ getinteractionRadius()

virtual double PoissonSolver::getinteractionRadius ( ) const
inlinevirtualinherited

Reimplemented in P3MPoissonSolver.

Definition at line 72 of file PoissonSolver.h.

◆ getXRangeMax()

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

◆ getXRangeMin()

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

◆ getYRangeMax()

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

◆ getYRangeMin()

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

◆ getZRangeMax()

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

◆ getZRangeMin()

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

◆ hasToRegrid()

template<class AmrObject>
void AmrPoissonSolver< AmrObject >::hasToRegrid ( )
inlinevirtual

Tell solver to regrid

Reimplemented from PoissonSolver.

Definition at line 56 of file AmrPoissonSolver.h.

References regrid_m.

◆ resizeMesh()

virtual void PoissonSolver::resizeMesh ( Vector_t & ,
Vector_t & ,
const Vector_t & ,
const Vector_t & ,
double  )
inlinevirtualinherited

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 )
inlinevirtualinherited

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()

template<class AmrObject>
void AmrPoissonSolver< AmrObject >::test ( PartBunchBase< double, 3 > * )
inlinevirtual

Implements PoissonSolver.

Definition at line 52 of file AmrPoissonSolver.h.

Member Data Documentation

◆ itsAmrObject_mp

template<class AmrObject>
AmrObject* AmrPoissonSolver< AmrObject >::itsAmrObject_mp
protected

Definition at line 61 of file AmrPoissonSolver.h.

Referenced by AmrPoissonSolver().

◆ regrid_m

template<class AmrObject>
bool AmrPoissonSolver< AmrObject >::regrid_m
protected

is set to true by itsAmrObject_mp and reset to false by solver

Definition at line 64 of file AmrPoissonSolver.h.

Referenced by AmrPoissonSolver(), and hasToRegrid().


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