Chombo + EB  3.0
Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
EBAMRPoissonOpFactory Class Reference

#include <EBAMRPoissonOpFactory.H>

Inheritance diagram for EBAMRPoissonOpFactory:
Inheritance graph
[legend]

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 EBAMRPoissonOpMGnewOp (const ProblemDomain &a_FineindexSpace, int a_depth, bool a_homoOnly=true)
 
EBAMRPoissonOpcreateOperator (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 EBAMRPoissonOpAMRnewOp (const ProblemDomain &a_FineindexSpace)
 
virtual void AMRreclaim (EBAMRPoissonOp *a_reclaim)
 
virtual int refToFiner (const ProblemDomain &a_domain) const
 
- Public Member Functions inherited from AMRLevelOpFactory< LevelData< EBCellFAB > >
virtual ~AMRLevelOpFactory ()
 
- Public Member Functions inherited from MGLevelOpFactory< LevelData< EBCellFAB > >
 MGLevelOpFactory ()
 Base class constructor. More...
 
virtual ~MGLevelOpFactory ()
 Destructor. More...
 

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< EBLevelGridm_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< RealVectm_dxVec
 
RealVect m_origin
 
Real m_alpha
 
Real m_beta
 
Real m_time
 
const IntVect m_ghostCellsPhi
 
const IntVect m_ghostCellsRHS
 
RefCountedPtr< BaseDomainBCFactorym_domainBCFactory
 
RefCountedPtr< BaseEBBCFactorym_ebBCFactory
 

Static Protected Attributes

static int s_testRef
 
static int s_maxBoxSize
 
static int s_whichReflux
 

Private Member Functions

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

Private Attributes

Vector< RefCountedPtr< LevelData< BaseIVFAB< Real > > > > m_data
 
bool m_dataBased
 

Detailed Description

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

Constructor & Destructor Documentation

◆ ~EBAMRPoissonOpFactory()

virtual EBAMRPoissonOpFactory::~EBAMRPoissonOpFactory ( )
virtual

◆ EBAMRPoissonOpFactory() [1/3]

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() [2/3]

EBAMRPoissonOpFactory::EBAMRPoissonOpFactory ( )
inlineprivate

weak construction bad

References MayDay::Error().

◆ EBAMRPoissonOpFactory() [3/3]

EBAMRPoissonOpFactory::EBAMRPoissonOpFactory ( const EBAMRPoissonOpFactory a_opin)
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ setData()

virtual void EBAMRPoissonOpFactory::setData ( Vector< RefCountedPtr< LevelData< BaseIVFAB< Real > > > > &  a_data)
inlinevirtual

◆ MGnewOp()

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

Referenced by setData().

◆ createOperator()

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 
)

Referenced by setData().

◆ reclaim()

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

Referenced by setData().

◆ AMRnewOp()

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

Referenced by setData().

◆ AMRreclaim()

virtual void EBAMRPoissonOpFactory::AMRreclaim ( EBAMRPoissonOp a_reclaim)
virtual

Referenced by setData().

◆ refToFiner()

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

Referenced by setData().

◆ setTestRef()

static void EBAMRPoissonOpFactory::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.

◆ setMaxBoxSize()

static void EBAMRPoissonOpFactory::setMaxBoxSize ( int  a_maxBoxSize)
inlinestatic

◆ setWhichReflux()

static void EBAMRPoissonOpFactory::setWhichReflux ( int &  a_whichReflux)
static

Referenced by setMaxBoxSize().

◆ getWhichReflux()

static int EBAMRPoissonOpFactory::getWhichReflux ( )
static

Referenced by setMaxBoxSize().

◆ operator=()

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

References MayDay::Error().

Member Data Documentation

◆ s_testRef

int EBAMRPoissonOpFactory::s_testRef
staticprotected

Referenced by setTestRef().

◆ s_maxBoxSize

int EBAMRPoissonOpFactory::s_maxBoxSize
staticprotected

Referenced by setMaxBoxSize().

◆ m_isDefined

bool EBAMRPoissonOpFactory::m_isDefined
protected

◆ m_numPreCondIters

int EBAMRPoissonOpFactory::m_numPreCondIters
protected

◆ m_relaxType

int EBAMRPoissonOpFactory::m_relaxType
protected

◆ m_numLevels

int EBAMRPoissonOpFactory::m_numLevels
protected

◆ m_eblgVec

Vector<EBLevelGrid> EBAMRPoissonOpFactory::m_eblgVec
protected

◆ m_quadCFIVec

Vector<RefCountedPtr<EBQuadCFInterp> > EBAMRPoissonOpFactory::m_quadCFIVec
protected

◆ m_eblgVecMG

Vector< Vector<EBLevelGrid> > EBAMRPoissonOpFactory::m_eblgVecMG
protected

◆ m_hasMGObjects

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

◆ m_layoutChanged

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

◆ m_layoutChangedMG

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

◆ m_refRatioVec

Vector<int> EBAMRPoissonOpFactory::m_refRatioVec
protected

◆ m_dxVec

Vector<RealVect> EBAMRPoissonOpFactory::m_dxVec
protected

◆ m_origin

RealVect EBAMRPoissonOpFactory::m_origin
protected

◆ m_alpha

Real EBAMRPoissonOpFactory::m_alpha
protected

◆ m_beta

Real EBAMRPoissonOpFactory::m_beta
protected

◆ m_time

Real EBAMRPoissonOpFactory::m_time
protected

◆ m_ghostCellsPhi

const IntVect EBAMRPoissonOpFactory::m_ghostCellsPhi
protected

◆ m_ghostCellsRHS

const IntVect EBAMRPoissonOpFactory::m_ghostCellsRHS
protected

◆ m_domainBCFactory

RefCountedPtr<BaseDomainBCFactory> EBAMRPoissonOpFactory::m_domainBCFactory
protected

◆ m_ebBCFactory

RefCountedPtr<BaseEBBCFactory> EBAMRPoissonOpFactory::m_ebBCFactory
protected

◆ s_whichReflux

int EBAMRPoissonOpFactory::s_whichReflux
staticprotected

◆ m_data

Vector< RefCountedPtr<LevelData<BaseIVFAB<Real> > > > EBAMRPoissonOpFactory::m_data
private

Referenced by setData().

◆ m_dataBased

bool EBAMRPoissonOpFactory::m_dataBased
private

Referenced by setData().


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