Chombo + EB + MF  3.2
Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
MFPoissonOpFactory Class Reference

#include <MFPoissonOpFactory.H>

Inheritance diagram for MFPoissonOpFactory:
Inheritance graph
[legend]

Public Member Functions

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)
 
MFPoissonOpcreateOperator (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
 
- Public Member Functions inherited from AMRLevelOpFactory< LevelData< MFCellFAB > >
virtual ~AMRLevelOpFactory ()
 
- Public Member Functions inherited from MGLevelOpFactory< LevelData< MFCellFAB > >
 MGLevelOpFactory ()
 Base class constructor. More...
 
virtual ~MGLevelOpFactory ()
 Destructor. More...
 

Static Public Member Functions

static void setTestRef (int a_testRef)
 
static void setRelaxType (int a_relaxType)
 

Protected Attributes

bool m_isDefined
 
bool m_isScalarJump
 
bool m_analyticJump
 
int m_numLevels
 
int m_ncomp
 
RefCountedPtr< MFIndexSpacem_mfis
 
Vector< DisjointBoxLayoutm_dilboVec
 
Vector< ProblemDomainm_domainVec
 
Vector< Vector< DisjointBoxLayout > > m_dilboVecMG
 
Vector< Vector< ProblemDomain > > m_domainVecMG
 
std::vector< bool > m_hasMGObjects
 
std::vector< bool > m_layoutChanged
 
std::vector< std::vector< bool > > m_layoutChangedMG
 
Vector< int > m_refRatioVec
 
Vector< RealVectm_dxVec
 
RealVect m_origin
 
Vector< Realm_alpha
 
Vector< Realm_beta
 
const IntVect m_ghostCellsPhi
 
const IntVect m_ghostCellsRHS
 
Real m_scalarGD
 
Real m_scalarGN
 
RealVect m_vectorGD
 
RealVect m_vectorGN
 
Vector< RefCountedPtr< BaseBCValue > > m_phiValVect
 
Vector< RefCountedPtr< BaseBCValue > > m_flxValVect
 
Vector< RefCountedPtr< BaseDomainBC > > m_bc
 

Static Protected Attributes

static int s_testRef
 
static int s_relaxType
 

Private Member Functions

 MFPoissonOpFactory ()
 weak construction bad More...
 
 MFPoissonOpFactory (const MFPoissonOpFactory &a_opin)
 
void operator= (const MFPoissonOpFactory &a_opin)
 

Detailed Description

Factory class to generate MFPoissonOps. This follows the AMRLevelOpFactory interface.

Constructor & Destructor Documentation

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

weak construction bad

References MayDay::Error().

◆ MFPoissonOpFactory() [3/3]

MFPoissonOpFactory::MFPoissonOpFactory ( const MFPoissonOpFactory a_opin)
inlineprivate

References MayDay::Error().

Member Function Documentation

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

void MFPoissonOpFactory::setJump ( const Vector< RefCountedPtr< BaseBCValue > > &  a_phiValVect,
const Vector< RefCountedPtr< BaseBCValue > > &  a_flxValVect 
)

◆ MGnewOp()

virtual MGLevelOp<LevelData<MFCellFAB> >* MFPoissonOpFactory::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< MFCellFAB > >.

◆ createOperator()

MFPoissonOp* MFPoissonOpFactory::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 
)

◆ reclaim()

virtual void MFPoissonOpFactory::reclaim ( MGLevelOp< LevelData< EBCellFAB > > *  a_reclaim)
virtual

◆ AMRnewOp()

virtual AMRLevelOp<LevelData<MFCellFAB> >* MFPoissonOpFactory::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< MFCellFAB > >.

◆ AMRreclaim()

virtual void MFPoissonOpFactory::AMRreclaim ( MFPoissonOp a_reclaim)
virtual

◆ refToFiner()

virtual int MFPoissonOpFactory::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< MFCellFAB > >.

◆ 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

References s_relaxType.

◆ operator=()

void MFPoissonOpFactory::operator= ( const MFPoissonOpFactory a_opin)
inlineprivate

References MayDay::Error().

Member Data Documentation

◆ s_testRef

int MFPoissonOpFactory::s_testRef
staticprotected

Referenced by setTestRef().

◆ s_relaxType

int MFPoissonOpFactory::s_relaxType
staticprotected

Referenced by setRelaxType().

◆ 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

RefCountedPtr<MFIndexSpace> MFPoissonOpFactory::m_mfis
protected

◆ m_dilboVec

Vector<DisjointBoxLayout> MFPoissonOpFactory::m_dilboVec
protected

◆ m_domainVec

Vector<ProblemDomain> MFPoissonOpFactory::m_domainVec
protected

◆ m_dilboVecMG

Vector< Vector<DisjointBoxLayout> > MFPoissonOpFactory::m_dilboVecMG
protected

◆ m_domainVecMG

Vector< Vector<ProblemDomain> > MFPoissonOpFactory::m_domainVecMG
protected

◆ 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

Vector<RealVect> MFPoissonOpFactory::m_dxVec
protected

◆ m_origin

RealVect MFPoissonOpFactory::m_origin
protected

◆ m_alpha

Vector<Real> MFPoissonOpFactory::m_alpha
protected

◆ m_beta

Vector<Real> MFPoissonOpFactory::m_beta
protected

◆ 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

RealVect MFPoissonOpFactory::m_vectorGD
protected

◆ m_vectorGN

RealVect MFPoissonOpFactory::m_vectorGN
protected

◆ m_phiValVect

Vector< RefCountedPtr<BaseBCValue> > MFPoissonOpFactory::m_phiValVect
protected

◆ m_flxValVect

Vector< RefCountedPtr<BaseBCValue> > MFPoissonOpFactory::m_flxValVect
protected

◆ m_bc

Vector< RefCountedPtr<BaseDomainBC> > MFPoissonOpFactory::m_bc
protected

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