#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 void | setData (Vector< RefCountedPtr< LevelData< BaseIVFAB< Real > > > > &a_data) |
virtual void | setType (Vector< RefCountedPtr< LevelData< BaseIVFAB< int > > > > &a_type) |
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, bool a_amrop) |
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 |
Static Public Member Functions | |
static void | setTestRef (int a_testRef) |
static void | setMaxBoxSize (int a_maxBoxSize) |
static void | setWhichReflux (int &a_whichReflux) |
static int | getWhichReflux () |
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 |
Static Protected Attributes | |
static int | s_testRef |
static int | s_maxBoxSize |
static int | s_whichReflux |
Private Member Functions | |
EBAMRPoissonOpFactory () | |
weak construction bad | |
EBAMRPoissonOpFactory (const EBAMRPoissonOpFactory &a_opin) | |
void | operator= (const EBAMRPoissonOpFactory &a_opin) |
Private Attributes | |
Vector< RefCountedPtr < LevelData< BaseIVFAB< Real > > > > | m_data |
bool | m_dataBased |
Vector< RefCountedPtr < LevelData< BaseIVFAB< int > > > > | m_type |
bool | m_typeBased |
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 void EBAMRPoissonOpFactory::setData | ( | Vector< RefCountedPtr< LevelData< BaseIVFAB< Real > > > > & | a_data | ) | [inline, virtual] |
References m_data, and m_dataBased.
virtual void EBAMRPoissonOpFactory::setType | ( | Vector< RefCountedPtr< LevelData< BaseIVFAB< int > > > > & | a_type | ) | [inline, virtual] |
References m_type, and m_typeBased.
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, | |||
bool | a_amrop | |||
) |
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 > >.
static void EBAMRPoissonOpFactory::setTestRef | ( | int | a_testRef | ) | [inline, static] |
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.
static void EBAMRPoissonOpFactory::setMaxBoxSize | ( | int | a_maxBoxSize | ) | [inline, static] |
References s_maxBoxSize.
static void EBAMRPoissonOpFactory::setWhichReflux | ( | int & | a_whichReflux | ) | [static] |
static int EBAMRPoissonOpFactory::getWhichReflux | ( | ) | [static] |
void EBAMRPoissonOpFactory::operator= | ( | const EBAMRPoissonOpFactory & | a_opin | ) | [inline, private] |
References MayDay::Error().
int EBAMRPoissonOpFactory::s_testRef [static, protected] |
Referenced by setTestRef().
int EBAMRPoissonOpFactory::s_maxBoxSize [static, protected] |
Referenced by setMaxBoxSize().
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] |
int EBAMRPoissonOpFactory::s_whichReflux [static, protected] |
Vector< RefCountedPtr<LevelData<BaseIVFAB<Real> > > > EBAMRPoissonOpFactory::m_data [private] |
Referenced by setData().
bool EBAMRPoissonOpFactory::m_dataBased [private] |
Referenced by setData().
Vector< RefCountedPtr<LevelData<BaseIVFAB<int> > > > EBAMRPoissonOpFactory::m_type [private] |
Referenced by setType().
bool EBAMRPoissonOpFactory::m_typeBased [private] |
Referenced by setType().