|
|
| MFHelmholtzOpFactory ()=delete |
| | Disallowed constructor.
|
| |
|
| MFHelmholtzOpFactory (const MFHelmholtzOpFactory &a_otherFactory)=delete |
| | Disallowed constructor.
|
| |
| | MFHelmholtzOpFactory (const MFIS &a_mfis, const Location::Cell a_dataLocation, const Real &a_alpha, const Real &a_beta, const RealVect &a_probLo, const AmrLevelGrids &a_amrLevelGrids, const AmrMask &a_validCells, const AmrInterpolators &a_amrInterpolators, const AmrFluxRegisters &a_amrFluxRegisters, const AmrCoarseners &a_amrCoarseners, const AmrRefRatios &a_amrRefRatios, const AmrResolutions &a_amrResolutions, const AmrCellData &a_amrAcoef, const AmrFluxData &a_amrBcoef, const AmrIrreData &a_amrBcoefIrreg, const DomainBCFactory &a_domainBcFactory, const EBBCFactory &a_ebBcFactory, const JumpBCFactory &a_jumpBcFactory, const IntVect &a_ghostPhi, const IntVect &a_ghostRhs, const Smoother &a_smoother, const Real &a_relaxFactor, const ProblemDomain &a_bottomDomain, const int &a_jumpOrder, const int &a_jumpWeight, const int &a_preCondSmooth, const int &a_blockingFactor, const AmrLevelGrids &a_deeperLevelGrids=AmrLevelGrids()) |
| | Full constructor.
|
| |
|
virtual | ~MFHelmholtzOpFactory () |
| | Destructor. Does nothing.
|
| |
| void | setJump (const EBAMRIVData &a_sigma, const Real &a_scale) |
| | Set jump condition. This is passed to the operators by reference.
|
| |
| void | setJump (const Real &a_sigma, const Real &a_scale) |
| |
|
const EBAMRIVData & | getSigma () const |
| | Get the BC jump factor.
|
| |
|
void | coarsenCoefficientsMG () |
| | Go through all MG levels and coarsen the coefficients from the finer levels.
|
| |
| MFHelmholtzOp * | MGnewOp (const ProblemDomain &a_fineDomain, int a_depth, bool a_homogeneousOnly=true) override final |
| | Create multigrid operator.
|
| |
| MFHelmholtzOp * | AMRnewOp (const ProblemDomain &a_domain) override final |
| | Create AMR operator for specified domain.
|
| |
| int | refToFiner (const ProblemDomain &a_indexspace) const override final |
| | Get refinement ratio to next finest level.
|
| |
|
|
MFIS | m_mfis |
| | Index space.
|
| |
|
Location::Cell | m_dataLocation |
| | Data centering.
|
| |
|
Smoother | m_smoother |
| | Smoother.
|
| |
|
int | m_numAmrLevels |
| | Number of AMR levels.
|
| |
|
int | m_numPreCondSmooth |
| | Number of smoothings in the preconditioner. Passed directly to the operators.
|
| |
|
IntVect | m_ghostPhi |
| | Number of ghost cells that are used. Need because of Chombo prolongation objects.
|
| |
|
IntVect | m_ghostRhs |
| | Number of ghost cells that are used. Need because of Chombo prolongation objects.
|
| |
|
Real | m_alpha |
| | Operator alpha.
|
| |
|
Real | m_beta |
| | Operator beta.
|
| |
|
Real | m_relaxFactor |
| | Relaxation factor.
|
| |
|
RealVect | m_probLo |
| | Lower-left corner of computational domain.
|
| |
|
AmrLevelGrids | m_amrLevelGrids |
| | AMR grids.
|
| |
|
AmrMask | m_validCells |
| | Valid cells.
|
| |
|
AmrInterpolators | m_amrInterpolators |
| | Multigrid interpolators.
|
| |
|
AmrFluxRegisters | m_amrFluxRegisters |
| | Flux registers.
|
| |
|
AmrCoarseners | m_amrCoarseners |
| | Data coarseners.
|
| |
|
AmrRefRatios | m_amrRefRatios |
| | Refinement ratios.
|
| |
|
AmrResolutions | m_amrResolutions |
| | Grid resolutions.
|
| |
|
AmrCellData | m_amrAcoef |
| | Operator A-coefficient.
|
| |
|
AmrFluxData | m_amrBcoef |
| | Operator B-coefficient.
|
| |
|
AmrIrreData | m_amrBcoefIrreg |
| | Operator B-coefficient.
|
| |
|
DomainBCFactory | m_domainBcFactory |
| | Domain BC factory.
|
| |
|
EBBCFactory | m_ebBcFactory |
| | EB BC factory.
|
| |
|
JumpBCFactory | m_jumpBcFactory |
| | Jump BC factory.
|
| |
|
EBAMRIVData | m_amrJump |
| | Jump on multiphase cells.
|
| |
|
ProblemDomain | m_bottomDomain |
| | Coarsest level where we run multigrid.
|
| |
|
int | m_mgBlockingFactor |
| | Blocking factor for grid aggregration.
|
| |
|
int | m_jumpOrder |
| | Stencil order in jump cells.
|
| |
|
int | m_jumpWeight |
| | Weighting for least squares reconstruction in jump cells.
|
| |
|
AmrLevelGrids | m_deeperLevelGrids |
| | Deeper grids.
|
| |
|
std::vector< bool > | m_hasMgLevels |
| | For checking if an AMR level has multigrid levels.
|
| |
|
Vector< AmrLevelGrids > | m_mgLevelGrids |
| | Deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to the the multigrid levels below amr level 0.
|
| |
|
Vector< AmrCellData > | m_mgAcoef |
| | A-coefficient on deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to the the multigrid levels below amr level 0.
|
| |
|
Vector< AmrFluxData > | m_mgBcoef |
| | B-coefficient on deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to the the multigrid levels below amr level 0.
|
| |
|
Vector< AmrIrreData > | m_mgBcoefIrreg |
| | B-coefficient on deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to the the multigrid levels below amr level 0.
|
| |
|
Vector< EBAMRIVData > | m_mgJump |
| | Jump coefficient on deeper grids.
|
| |
|
Vector< Vector< RefCountedPtr< EBCoarAve > > > | m_mgAveOp |
| | Coarsneing operator on deeper grids (used for coarsening jump)
|
| |
Factory class for making MFHelmholtzOp.
- Note
- This factory is designed for coupling EBHelmholtzOps across EBIS levels
-
This factory is designed without time-dependence in BCs. Time-dependent BCs are still doable by letting the boundary condition classes carry a reference to an externally updated time. If you need new coefficients you will have to set up multigrid again.