#include <MFPoissonOpFactory.H>
|
virtual | ~MFPoissonOpFactory () |
|
| MFPoissonOpFactory (const RefCountedPtr< MFIndexSpace > &a_mfis, const Vector< DisjointBoxLayout > &a_dilbos, const Vector< int > &a_refRatio, const ProblemDomain &a_domainCoar, const RealVect &a_dxCoarse, const RealVect &a_origin, const Vector< RefCountedPtr< BaseDomainBC > > &a_bc, const Vector< Real > &a_alpha, const Vector< Real > &a_beta, const int &a_ncomp, const IntVect &a_ghostCellsPhi, const IntVect &a_ghostCellsRHS, int a_numLevels=-1) |
|
void | setJump (const Real &a_gD, const Real &a_gN) |
|
void | setJump (const RealVect &a_gD, const RealVect &a_gN) |
|
void | setJump (const Vector< RefCountedPtr< BaseBCValue > > &a_phiValVect, const Vector< RefCountedPtr< BaseBCValue > > &a_flxValVect) |
|
virtual MGLevelOp< LevelData< MFCellFAB > > * | MGnewOp (const ProblemDomain &a_FineindexSpace, int a_depth, bool a_homoOnly=true) |
|
MFPoissonOp * | createOperator (const DisjointBoxLayout &a_dilboMGLevel, const DisjointBoxLayout &a_dilboCoarMG, const ProblemDomain &a_domainMGLevel, const bool &a_hasMGObjects, const bool &a_layoutChanged, const RealVect &a_dxMGLevel, const RealVect &a_dxCoar, const int &a_whichLevel, const int &a_mgLevel) |
|
virtual void | reclaim (MGLevelOp< LevelData< EBCellFAB > > *a_reclaim) |
|
virtual AMRLevelOp< LevelData< MFCellFAB > > * | AMRnewOp (const ProblemDomain &a_FineindexSpace) |
|
virtual void | AMRreclaim (MFPoissonOp *a_reclaim) |
|
virtual int | refToFiner (const ProblemDomain &a_domain) const |
|
virtual | ~AMRLevelOpFactory () |
|
| MGLevelOpFactory () |
| Base class constructor. More...
|
|
virtual | ~MGLevelOpFactory () |
| Destructor. More...
|
|
Factory class to generate MFPoissonOps. This follows the AMRLevelOpFactory interface.
◆ ~MFPoissonOpFactory()
virtual MFPoissonOpFactory::~MFPoissonOpFactory |
( |
| ) |
|
|
virtual |
◆ MFPoissonOpFactory() [1/3]
MFPoissonOpFactory::MFPoissonOpFactory |
( |
const RefCountedPtr< MFIndexSpace > & |
a_mfis, |
|
|
const Vector< DisjointBoxLayout > & |
a_dilbos, |
|
|
const Vector< int > & |
a_refRatio, |
|
|
const ProblemDomain & |
a_domainCoar, |
|
|
const RealVect & |
a_dxCoarse, |
|
|
const RealVect & |
a_origin, |
|
|
const Vector< RefCountedPtr< BaseDomainBC > > & |
a_bc, |
|
|
const Vector< Real > & |
a_alpha, |
|
|
const Vector< Real > & |
a_beta, |
|
|
const int & |
a_ncomp, |
|
|
const IntVect & |
a_ghostCellsPhi, |
|
|
const IntVect & |
a_ghostCellsRHS, |
|
|
int |
a_numLevels = -1 |
|
) |
| |
a_dilbos : layouts at each AMR level \ a_domainFactory : domain boundary conditions \ a_ebBCFactory: eb boundary conditions \ a_dxCoarse: grid spacing at coarsest level \ a_origin: offset to lowest corner of the domain \ a_refRatio: refinement ratios. refRatio[i] is between levels i and i+1 \ a_preCondIters: number of iterations to do for pre-conditioning \ a_alpha: coefficent of identity \ a_beta: coefficient of laplacian.\ a_time: time for boundary conditions \ a_ghostCellsPhi: Number of ghost cells in phi, correction (typically one)\ a_ghostCellsRhs: Number of ghost cells in RHS, residual, lphi (typically zero)\ Ghost cell arguments are there for caching reasons. Once you set them, an error is thrown if you send in data that does not match. Use numlevels = -1 if you want to use the size of the vectors for numlevels.
◆ MFPoissonOpFactory() [2/3]
MFPoissonOpFactory::MFPoissonOpFactory |
( |
| ) |
|
|
inlineprivate |
◆ MFPoissonOpFactory() [3/3]
◆ setJump() [1/3]
void MFPoissonOpFactory::setJump |
( |
const Real & |
a_gD, |
|
|
const Real & |
a_gN |
|
) |
| |
◆ setJump() [2/3]
void MFPoissonOpFactory::setJump |
( |
const RealVect & |
a_gD, |
|
|
const RealVect & |
a_gN |
|
) |
| |
◆ setJump() [3/3]
◆ MGnewOp()
Create an operator at an index space = coarsen(a_fineIndexSpace, 2^a_depth) Return NULL if no such Multigrid level can be created at this a_depth. If a_homoOnly = true, then only homogeneous boundary conditions will be needed.
Implements MGLevelOpFactory< LevelData< MFCellFAB > >.
◆ createOperator()
◆ reclaim()
◆ AMRnewOp()
◆ AMRreclaim()
virtual void MFPoissonOpFactory::AMRreclaim |
( |
MFPoissonOp * |
a_reclaim | ) |
|
|
virtual |
◆ refToFiner()
virtual int MFPoissonOpFactory::refToFiner |
( |
const ProblemDomain & |
a_domain | ) |
const |
|
virtual |
◆ setTestRef()
static void MFPoissonOpFactory::setTestRef |
( |
int |
a_testRef | ) |
|
|
inlinestatic |
testRef is the size of the coarsest domain allowed in multigrid. If testRef=2, then the coarsest domain in multigrid will be 2x2(x2)
References s_testRef.
◆ setRelaxType()
static void MFPoissonOpFactory::setRelaxType |
( |
int |
a_relaxType | ) |
|
|
inlinestatic |
◆ operator=()
◆ s_testRef
int MFPoissonOpFactory::s_testRef |
|
staticprotected |
◆ s_relaxType
int MFPoissonOpFactory::s_relaxType |
|
staticprotected |
◆ m_isDefined
bool MFPoissonOpFactory::m_isDefined |
|
protected |
◆ m_isScalarJump
bool MFPoissonOpFactory::m_isScalarJump |
|
protected |
◆ m_analyticJump
bool MFPoissonOpFactory::m_analyticJump |
|
protected |
◆ m_numLevels
int MFPoissonOpFactory::m_numLevels |
|
protected |
◆ m_ncomp
int MFPoissonOpFactory::m_ncomp |
|
protected |
◆ m_mfis
◆ m_dilboVec
◆ m_domainVec
◆ m_dilboVecMG
◆ m_domainVecMG
◆ m_hasMGObjects
std::vector<bool> MFPoissonOpFactory::m_hasMGObjects |
|
protected |
◆ m_layoutChanged
std::vector<bool> MFPoissonOpFactory::m_layoutChanged |
|
protected |
◆ m_layoutChangedMG
std::vector< std::vector<bool> > MFPoissonOpFactory::m_layoutChangedMG |
|
protected |
◆ m_refRatioVec
Vector<int> MFPoissonOpFactory::m_refRatioVec |
|
protected |
◆ m_dxVec
◆ m_origin
◆ m_alpha
◆ m_beta
◆ m_ghostCellsPhi
const IntVect MFPoissonOpFactory::m_ghostCellsPhi |
|
protected |
◆ m_ghostCellsRHS
const IntVect MFPoissonOpFactory::m_ghostCellsRHS |
|
protected |
◆ m_scalarGD
Real MFPoissonOpFactory::m_scalarGD |
|
protected |
◆ m_scalarGN
Real MFPoissonOpFactory::m_scalarGN |
|
protected |
◆ m_vectorGD
◆ m_vectorGN
◆ m_phiValVect
◆ m_flxValVect
◆ m_bc
The documentation for this class was generated from the following file: