#include <AMRPoissonOp.H>
Public Member Functions | |
virtual | ~AMRPoissonOpFactory () |
void | define (const ProblemDomain &a_coarseDomain, const Vector< DisjointBoxLayout > &a_grids, const Vector< int > &a_refRatios, const Real &a_coarsedx, BCHolder a_bc, Real a_alpha=0.0, Real a_beta=1.0) |
void | define (const ProblemDomain &a_domain, const DisjointBoxLayout &a_grid, const Real &a_dx, BCHolder a_bc, int a_maxDepth=-1, Real a_alpha=0.0, Real a_beta=1.0) |
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 |
Private Attributes | |
Vector< ProblemDomain > | m_domains |
Vector< DisjointBoxLayout > | m_boxes |
Vector< Real > | m_dx |
Vector< int > | m_refRatios |
BCHolder | m_bc |
Real | m_alpha |
Real | m_beta |
Vector< Copier > | m_exchangeCopiers |
Vector< CFRegion > | m_cfregion |
virtual AMRPoissonOpFactory::~AMRPoissonOpFactory | ( | ) | [inline, virtual] |
void AMRPoissonOpFactory::define | ( | const ProblemDomain & | a_coarseDomain, | |
const Vector< DisjointBoxLayout > & | a_grids, | |||
const Vector< int > & | a_refRatios, | |||
const Real & | a_coarsedx, | |||
BCHolder | a_bc, | |||
Real | a_alpha = 0.0 , |
|||
Real | a_beta = 1.0 | |||
) |
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 coefficient a_beta is the laplacian coefficient.
void AMRPoissonOpFactory::define | ( | const ProblemDomain & | a_domain, | |
const DisjointBoxLayout & | a_grid, | |||
const Real & | a_dx, | |||
BCHolder | a_bc, | |||
int | a_maxDepth = -1 , |
|||
Real | a_alpha = 0.0 , |
|||
Real | a_beta = 1.0 | |||
) |
virtual MGLevelOp<LevelData<FArrayBox> >* AMRPoissonOpFactory::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> >* AMRPoissonOpFactory::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 AMRPoissonOpFactory::refToFiner | ( | const ProblemDomain & | a_indexSpace | ) | const [virtual] |
return refinement ratio to next finer level.
Implements AMRLevelOpFactory< LevelData< FArrayBox > >.
Vector<ProblemDomain> AMRPoissonOpFactory::m_domains [private] |
Vector<DisjointBoxLayout> AMRPoissonOpFactory::m_boxes [private] |
Vector<Real> AMRPoissonOpFactory::m_dx [private] |
Vector<int> AMRPoissonOpFactory::m_refRatios [private] |
BCHolder AMRPoissonOpFactory::m_bc [private] |
Real AMRPoissonOpFactory::m_alpha [private] |
Real AMRPoissonOpFactory::m_beta [private] |
Vector<Copier> AMRPoissonOpFactory::m_exchangeCopiers [private] |
Vector<CFRegion> AMRPoissonOpFactory::m_cfregion [private] |