EBAMRPoissonOpFactory Class Reference

#include <EBAMRPoissonOpFactory.H>

Inheritance diagram for EBAMRPoissonOpFactory:

Inheritance graph
[legend]
Collaboration diagram for EBAMRPoissonOpFactory:

Collaboration graph
[legend]

List of all members.


Detailed Description

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

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)

Constructor & Destructor Documentation

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]

weak construction bad

References MayDay::Error().

EBAMRPoissonOpFactory::EBAMRPoissonOpFactory ( const EBAMRPoissonOpFactory &  a_opin  )  [inline, private]

References MayDay::Error().


Member Function Documentation

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


Member Data Documentation

std::vector< bool > EBAMRPoissonOpFactory::m_hasMGObjects [protected]

std::vector< bool > EBAMRPoissonOpFactory::m_layoutChanged [protected]

std::vector< std::vector<bool> > EBAMRPoissonOpFactory::m_layoutChangedMG [protected]


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

Generated on Tue Apr 14 14:23:07 2009 for Chombo + EB by  doxygen 1.5.5