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

#include <VCAMRPoissonOp2.H>

Inheritance diagram for VCAMRPoissonOp2Factory:
Inheritance graph
[legend]

Public Member Functions

 VCAMRPoissonOp2Factory ()
 
virtual ~VCAMRPoissonOp2Factory ()
 
void define (const ProblemDomain &a_coarseDomain, const Vector< DisjointBoxLayout > &a_grids, const Vector< int > &a_refRatios, const Real &a_coarsedx, BCHolder a_bc, const Real &a_alpha, Vector< RefCountedPtr< LevelData< FArrayBox > > > &a_aCoef, const Real &a_beta, Vector< RefCountedPtr< LevelData< FluxBox > > > &a_bCoef)
 
void define (const ProblemDomain &a_coarseDomain, const Vector< DisjointBoxLayout > &a_grids, const Vector< int > &a_refRatios, const Real &a_coarsedx, BCHolder a_bc, const IntVect &a_ghostVect)
 
virtual MGLevelOp< LevelData
< FArrayBox > > * 
MGnewOp (const ProblemDomain &a_FineindexSpace, int a_depth, bool a_homoOnly=true)
 
virtual AMRLevelOp< LevelData
< FArrayBox > > * 
AMRnewOp (const ProblemDomain &a_indexSpace)
 
virtual int refToFiner (const ProblemDomain &a_domain) const
 
- Public Member Functions inherited from AMRLevelOpFactory< LevelData< FArrayBox > >
virtual ~AMRLevelOpFactory ()
 
- Public Member Functions inherited from MGLevelOpFactory< LevelData< FArrayBox > >
 MGLevelOpFactory ()
 Base class constructor. More...
 
virtual ~MGLevelOpFactory ()
 Destructor. More...
 

Public Attributes

int m_coefficient_average_type
 

Private Member Functions

void setDefaultValues ()
 

Private Attributes

Vector< ProblemDomainm_domains
 
Vector< DisjointBoxLayoutm_boxes
 
Vector< Realm_dx
 
Vector< int > m_refRatios
 
BCHolder m_bc
 
Real m_alpha
 
Real m_beta
 
Vector< RefCountedPtr
< LevelData< FArrayBox > > > 
m_aCoef
 
Vector< RefCountedPtr
< LevelData< FluxBox > > > 
m_bCoef
 
Vector< RefCountedPtr
< LevelData< FArrayBox > > > 
m_lambda
 
Vector< Copierm_exchangeCopiers
 
Vector< CFRegionm_cfregion
 

Detailed Description

Factory to create VCAMRPoissonOp2s

Constructor & Destructor Documentation

VCAMRPoissonOp2Factory::VCAMRPoissonOp2Factory ( )
virtual VCAMRPoissonOp2Factory::~VCAMRPoissonOp2Factory ( )
inlinevirtual

Member Function Documentation

void VCAMRPoissonOp2Factory::define ( const ProblemDomain a_coarseDomain,
const Vector< DisjointBoxLayout > &  a_grids,
const Vector< int > &  a_refRatios,
const Real a_coarsedx,
BCHolder  a_bc,
const Real a_alpha,
Vector< RefCountedPtr< LevelData< FArrayBox > > > &  a_aCoef,
const Real a_beta,
Vector< RefCountedPtr< LevelData< FluxBox > > > &  a_bCoef 
)

a_coarseDomain is the domain at the coarsest level. a_grids is the AMR hierarchy. a_refRatios are the refinement ratios between levels. The ratio lives with the coarser level so a_refRatios[ilev] is the ratio between ilev and ilev+1 a_coarseDx is the grid spacing at the coarsest level. a_bc holds the boundary conditions. a_alpha is the identity constant coefficient a_beta is the laplacian constant coefficient. a_aCoef is the identity spatially varying coefficient a_bCoef is the laplacian spatially varying coefficient.

void VCAMRPoissonOp2Factory::define ( const ProblemDomain a_coarseDomain,
const Vector< DisjointBoxLayout > &  a_grids,
const Vector< int > &  a_refRatios,
const Real a_coarsedx,
BCHolder  a_bc,
const IntVect a_ghostVect 
)

Defines a factory for VCAMRPoissonOp2 which allows the operators to allocate their own coefficient data. $\alpha$ and $\beta$ coefficients are initialized to 1.

Parameters
a_coarseDomainThe domain at the coarsest level.
a_gridsThe disjoint box layouts for the various refinement levels.
a_refRatiosThe refinement ratios between levels.
a_coarsedxThe grid spacing at the coarsest level.
a_bcThe boundary condition imposed on the solution.
a_ghostVectThe ghost stencil to use in the created coefficient data.
virtual MGLevelOp<LevelData<FArrayBox> >* VCAMRPoissonOp2Factory::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< FArrayBox > >.

virtual AMRLevelOp<LevelData<FArrayBox> >* VCAMRPoissonOp2Factory::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< FArrayBox > >.

virtual int VCAMRPoissonOp2Factory::refToFiner ( const ProblemDomain a_indexSpace) const
virtual

return refinement ratio to next finer level.

Implements AMRLevelOpFactory< LevelData< FArrayBox > >.

void VCAMRPoissonOp2Factory::setDefaultValues ( )
private

Member Data Documentation

int VCAMRPoissonOp2Factory::m_coefficient_average_type
Vector<ProblemDomain> VCAMRPoissonOp2Factory::m_domains
private
Vector<DisjointBoxLayout> VCAMRPoissonOp2Factory::m_boxes
private
Vector<Real> VCAMRPoissonOp2Factory::m_dx
private
Vector<int> VCAMRPoissonOp2Factory::m_refRatios
private
BCHolder VCAMRPoissonOp2Factory::m_bc
private
Real VCAMRPoissonOp2Factory::m_alpha
private
Real VCAMRPoissonOp2Factory::m_beta
private
Vector<RefCountedPtr<LevelData<FArrayBox> > > VCAMRPoissonOp2Factory::m_aCoef
private
Vector<RefCountedPtr<LevelData<FluxBox> > > VCAMRPoissonOp2Factory::m_bCoef
private
Vector<RefCountedPtr<LevelData<FArrayBox> > > VCAMRPoissonOp2Factory::m_lambda
private
Vector<Copier> VCAMRPoissonOp2Factory::m_exchangeCopiers
private
Vector<CFRegion> VCAMRPoissonOp2Factory::m_cfregion
private

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