#include <EBAMRPoissonOpFactory.H>
Public Member Functions | |
virtual | ~EBAMRPoissonOpFactory () |
EBAMRPoissonOpFactory (const Vector< EBLevelGrid > &a_eblgs, const Vector< int > &a_refRatio, const Vector< RefCountedPtr< EBQuadCFInterp > > &a_quadCFI, const RealVect &a_dxCoarse, const RealVect &a_origin, const int &a_numPreCondIters, const int &a_relaxType, RefCountedPtr< BaseDomainBCFactory > a_domainBCFactory, RefCountedPtr< BaseEBBCFactory > a_ebBcFactory, const Real &a_alpha, const Real &a_beta, const Real &a_time, const IntVect &a_ghostCellsPhi, const IntVect &a_ghostCellsRhs, int a_numLevels=-1) | |
virtual EBAMRPoissonOp * | MGnewOp (const ProblemDomain &a_FineindexSpace, int a_depth, bool a_homoOnly=true) |
EBAMRPoissonOp * | createOperator (const EBLevelGrid &a_eblgMGLevel, const EBLevelGrid &a_eblgCoarMG, const bool &a_hasMGObjects, const bool &a_layoutChanged, const RealVect &a_dxMGLevel, const RealVect &a_dxCoar, RefCountedPtr< EBQuadCFInterp > &a_quadCFIMGLevel, const int &a_whichLevel) |
virtual void | reclaim (MGLevelOp< LevelData< EBCellFAB > > *a_reclaim) |
virtual EBAMRPoissonOp * | AMRnewOp (const ProblemDomain &a_FineindexSpace) |
virtual void | AMRreclaim (EBAMRPoissonOp *a_reclaim) |
virtual int | refToFiner (const ProblemDomain &a_domain) const |
Protected Attributes | |
bool | m_isDefined |
int | m_numPreCondIters |
int | m_relaxType |
int | m_numLevels |
Vector< EBLevelGrid > | m_eblgVec |
Vector< RefCountedPtr < EBQuadCFInterp > > | m_quadCFIVec |
Vector< Vector< EBLevelGrid > > | m_eblgVecMG |
std::vector< bool > | m_hasMGObjects |
std::vector< bool > | m_layoutChanged |
std::vector< std::vector< bool > > | m_layoutChangedMG |
Vector< int > | m_refRatioVec |
Vector< RealVect > | m_dxVec |
RealVect | m_origin |
Real | m_alpha |
Real | m_beta |
Real | m_time |
const IntVect | m_ghostCellsPhi |
const IntVect | m_ghostCellsRHS |
RefCountedPtr < BaseDomainBCFactory > | m_domainBCFactory |
RefCountedPtr< BaseEBBCFactory > | m_ebBCFactory |
Private Member Functions | |
EBAMRPoissonOpFactory () | |
weak construction bad | |
EBAMRPoissonOpFactory (const EBAMRPoissonOpFactory &a_opin) | |
void | operator= (const EBAMRPoissonOpFactory &a_opin) |
virtual EBAMRPoissonOpFactory::~EBAMRPoissonOpFactory | ( | ) | [virtual] |
EBAMRPoissonOpFactory::EBAMRPoissonOpFactory | ( | const Vector< EBLevelGrid > & | a_eblgs, | |
const Vector< int > & | a_refRatio, | |||
const Vector< RefCountedPtr< EBQuadCFInterp > > & | a_quadCFI, | |||
const RealVect & | a_dxCoarse, | |||
const RealVect & | a_origin, | |||
const int & | a_numPreCondIters, | |||
const int & | a_relaxType, | |||
RefCountedPtr< BaseDomainBCFactory > | a_domainBCFactory, | |||
RefCountedPtr< BaseEBBCFactory > | a_ebBcFactory, | |||
const Real & | a_alpha, | |||
const Real & | a_beta, | |||
const Real & | a_time, | |||
const IntVect & | a_ghostCellsPhi, | |||
const IntVect & | a_ghostCellsRhs, | |||
int | a_numLevels = -1 | |||
) |
a_eblgs : 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_relaxType: 0 means point Jacobi, 1 is Gauss-Seidel, 2 is line solver. \ 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.
EBAMRPoissonOpFactory::EBAMRPoissonOpFactory | ( | ) | [inline, private] |
EBAMRPoissonOpFactory::EBAMRPoissonOpFactory | ( | const EBAMRPoissonOpFactory & | a_opin | ) | [inline, private] |
References MayDay::Error().
virtual EBAMRPoissonOp* EBAMRPoissonOpFactory::MGnewOp | ( | const ProblemDomain & | a_FineindexSpace, | |
int | a_depth, | |||
bool | a_homoOnly = true | |||
) | [virtual] |
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< EBCellFAB > >.
EBAMRPoissonOp* EBAMRPoissonOpFactory::createOperator | ( | const EBLevelGrid & | a_eblgMGLevel, | |
const EBLevelGrid & | a_eblgCoarMG, | |||
const bool & | a_hasMGObjects, | |||
const bool & | a_layoutChanged, | |||
const RealVect & | a_dxMGLevel, | |||
const RealVect & | a_dxCoar, | |||
RefCountedPtr< EBQuadCFInterp > & | a_quadCFIMGLevel, | |||
const int & | a_whichLevel | |||
) |
virtual void EBAMRPoissonOpFactory::reclaim | ( | MGLevelOp< LevelData< EBCellFAB > > * | a_reclaim | ) | [virtual] |
virtual EBAMRPoissonOp* EBAMRPoissonOpFactory::AMRnewOp | ( | const ProblemDomain & | a_indexSpace | ) | [virtual] |
return a new operator. this is done with a new call. caller is responsible for deletion
Implements AMRLevelOpFactory< LevelData< EBCellFAB > >.
virtual void EBAMRPoissonOpFactory::AMRreclaim | ( | EBAMRPoissonOp * | a_reclaim | ) | [virtual] |
virtual int EBAMRPoissonOpFactory::refToFiner | ( | const ProblemDomain & | a_domain | ) | const [virtual] |
Refinement ratio between this level and coarser level. Returns 1 when there are no coarser AMRLevelOp objects
Implements AMRLevelOpFactory< LevelData< EBCellFAB > >.
void EBAMRPoissonOpFactory::operator= | ( | const EBAMRPoissonOpFactory & | a_opin | ) | [inline, private] |
References MayDay::Error().
bool EBAMRPoissonOpFactory::m_isDefined [protected] |
int EBAMRPoissonOpFactory::m_numPreCondIters [protected] |
int EBAMRPoissonOpFactory::m_relaxType [protected] |
int EBAMRPoissonOpFactory::m_numLevels [protected] |
Vector<EBLevelGrid> EBAMRPoissonOpFactory::m_eblgVec [protected] |
Vector<RefCountedPtr<EBQuadCFInterp> > EBAMRPoissonOpFactory::m_quadCFIVec [protected] |
Vector< Vector<EBLevelGrid> > EBAMRPoissonOpFactory::m_eblgVecMG [protected] |
std::vector< bool > EBAMRPoissonOpFactory::m_hasMGObjects [protected] |
std::vector< bool > EBAMRPoissonOpFactory::m_layoutChanged [protected] |
std::vector< std::vector<bool> > EBAMRPoissonOpFactory::m_layoutChangedMG [protected] |
Vector<int> EBAMRPoissonOpFactory::m_refRatioVec [protected] |
Vector<RealVect> EBAMRPoissonOpFactory::m_dxVec [protected] |
RealVect EBAMRPoissonOpFactory::m_origin [protected] |
Real EBAMRPoissonOpFactory::m_alpha [protected] |
Real EBAMRPoissonOpFactory::m_beta [protected] |
Real EBAMRPoissonOpFactory::m_time [protected] |
const IntVect EBAMRPoissonOpFactory::m_ghostCellsPhi [protected] |
const IntVect EBAMRPoissonOpFactory::m_ghostCellsRHS [protected] |