13#ifndef CD_MFHELMHOLTZOPFACTORY_H
14#define CD_MFHELMHOLTZOPFACTORY_H
32#include <CD_NamespaceHeader.H>
487#include <CD_NamespaceFooter.H>
Class for holding data across EBAMR hierarchies.
Declaration of cell positions.
Declaration of a multiphase BaseIVFAB<Real>
Wrapper class for holding multifluid EBCoarAves.
Declaration of an EB boundary condition factory class for MFHelmholtzOp.
Declaration of a factory class for making MFHelmholtzJumpBC objects for use in a multifluid MFHelmhol...
Declaration of a class for solving multiphase Helmholtz equations.
Declaration of a wrapper for wrapping multifluid EBLevelGrids.
Declaration of a wrapper class for holding multifluid EBMultigridInterpolators.
Declaration of a class for refluxing in a multiphase context.
Class which replaces data at coarse level of refinement with average at fine level of refinement.
Definition CD_EBCoarAve.H:32
Multiphase BaseIVFAB<Real>.
Definition CD_MFBaseIVFAB.H:30
Factory class for making MFHelmholtzOp.
Definition CD_MFHelmholtzOpFactory.H:41
static constexpr int m_comp
Component that this operator solves for.
Definition CD_MFHelmholtzOpFactory.H:212
ProblemDomain m_bottomDomain
Coarsest level where we run multigrid.
Definition CD_MFHelmholtzOpFactory.H:352
static bool isCoarser(const ProblemDomain &a_domainOne, const ProblemDomain &B)
Check if a domain is coarser than the other.
Definition CD_MFHelmholtzOpFactory.cpp:806
Vector< EBAMRIVData > m_mgJump
Jump coefficient on deeper grids.
Definition CD_MFHelmholtzOpFactory.H:402
EBBCFactory m_ebBcFactory
EB BC factory.
Definition CD_MFHelmholtzOpFactory.H:337
Vector< AmrFluxData > m_mgBcoef
B-coefficient on deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to t...
Definition CD_MFHelmholtzOpFactory.H:392
std::vector< bool > m_hasMgLevels
For checking if an AMR level has multigrid levels.
Definition CD_MFHelmholtzOpFactory.H:377
Vector< RefCountedPtr< LevelData< MFFluxFAB > > > AmrFluxData
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:64
EBAMRIVData m_amrJump
Jump on multiphase cells.
Definition CD_MFHelmholtzOpFactory.H:347
Vector< MFReflux > AmrFluxRegisters
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:51
AmrFluxData m_amrBcoef
Operator B-coefficient.
Definition CD_MFHelmholtzOpFactory.H:322
int m_mgBlockingFactor
Blocking factor for grid aggregation.
Definition CD_MFHelmholtzOpFactory.H:357
AmrFluxRegisters m_amrFluxRegisters
Flux registers.
Definition CD_MFHelmholtzOpFactory.H:297
Location::Cell m_dataLocation
Data centering.
Definition CD_MFHelmholtzOpFactory.H:232
MFHelmholtzOp * AMRnewOp(const ProblemDomain &a_domain) override final
Create AMR operator for specified domain.
Definition CD_MFHelmholtzOpFactory.cpp:721
MFHelmholtzOpFactory()=delete
Disallowed constructor.
int m_numAmrLevels
Number of AMR levels.
Definition CD_MFHelmholtzOpFactory.H:242
Vector< AmrLevelGrids > m_mgLevelGrids
Deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to the the multigrid ...
Definition CD_MFHelmholtzOpFactory.H:382
Real m_alpha
Operator alpha.
Definition CD_MFHelmholtzOpFactory.H:262
int m_jumpWeight
Weighting for least squares reconstruction in jump cells.
Definition CD_MFHelmholtzOpFactory.H:367
bool getCoarserLayout(MFLevelGrid &a_coarMflg, const MFLevelGrid &a_fineMflg, const int a_refRat, const int a_blockingFactor) const
Construct coarsening of a grid level.
Definition CD_MFHelmholtzOpFactory.cpp:499
Vector< RefCountedPtr< LevelData< BaseFab< bool > > > > AmrMask
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:59
AmrCoarseners m_amrCoarseners
Data coarseners.
Definition CD_MFHelmholtzOpFactory.H:302
RefCountedPtr< MFHelmholtzEBBCFactory > EBBCFactory
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:71
Vector< MFCoarAve > AmrCoarseners
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:53
const EBAMRIVData & getSigma() const
Get the BC jump factor.
Definition CD_MFHelmholtzOpFactory.cpp:189
MFHelmholtzOpFactory(const MFHelmholtzOpFactory &a_otherFactory)=delete
Disallowed constructor.
Vector< AmrCellData > m_mgAcoef
A-coefficient on deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to t...
Definition CD_MFHelmholtzOpFactory.H:387
static void coarsenCoefficients(LevelData< MFCellFAB > &a_coarAcoef, LevelData< MFFluxFAB > &a_coarBcoef, LevelData< MFBaseIVFAB > &a_coarBcoefIrreg, const LevelData< MFCellFAB > &a_fineAcoef, const LevelData< MFFluxFAB > &a_fineBcoef, const LevelData< MFBaseIVFAB > &a_fineBcoefIrreg, const MFLevelGrid &a_mflgCoar, const MFLevelGrid &a_mflgFine, const int a_refRat)
Coarsen coefficients (conservatively)
Definition CD_MFHelmholtzOpFactory.cpp:435
AmrIrreData m_amrBcoefIrreg
Operator B-coefficient.
Definition CD_MFHelmholtzOpFactory.H:327
JumpBCFactory m_jumpBcFactory
Jump BC factory.
Definition CD_MFHelmholtzOpFactory.H:342
AmrLevelGrids m_amrLevelGrids
AMR grids.
Definition CD_MFHelmholtzOpFactory.H:282
static constexpr int m_nComp
Number of components that this operator solves for.
Definition CD_MFHelmholtzOpFactory.H:217
Vector< MFMultigridInterpolator > AmrInterpolators
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:49
RefCountedPtr< MFHelmholtzJumpBCFactory > JumpBCFactory
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:73
MFIS m_mfis
Index space.
Definition CD_MFHelmholtzOpFactory.H:227
RefCountedPtr< MFHelmholtzDomainBCFactory > DomainBCFactory
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:69
IntVect m_ghostPhi
Number of ghost cells that are used. Need because of Chombo prolongation objects.
Definition CD_MFHelmholtzOpFactory.H:252
AmrMask m_validCells
Valid cells.
Definition CD_MFHelmholtzOpFactory.H:287
Real m_relaxFactor
Relaxation factor.
Definition CD_MFHelmholtzOpFactory.H:272
AmrResolutions m_amrResolutions
Grid resolutions.
Definition CD_MFHelmholtzOpFactory.H:312
static constexpr int m_mainPhase
Main phase.
Definition CD_MFHelmholtzOpFactory.H:222
void setJump(const EBAMRIVData &a_sigma, const Real &a_scale)
Set jump condition. This is passed to the operators by reference.
Definition CD_MFHelmholtzOpFactory.cpp:109
DomainBCFactory m_domainBcFactory
Domain BC factory.
Definition CD_MFHelmholtzOpFactory.H:332
int findAmrLevel(const ProblemDomain &a_domain) const
Find level corresponding to amr level.
Definition CD_MFHelmholtzOpFactory.cpp:838
Vector< Real > AmrResolutions
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:55
Vector< RefCountedPtr< LevelData< MFCellFAB > > > AmrCellData
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:62
Smoother m_smoother
Smoother.
Definition CD_MFHelmholtzOpFactory.H:237
RefCountedPtr< MultiFluidIndexSpace > MFIS
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:45
RealVect m_probLo
Lower-left corner of computational domain.
Definition CD_MFHelmholtzOpFactory.H:277
AmrRefRatios m_amrRefRatios
Refinement ratios.
Definition CD_MFHelmholtzOpFactory.H:307
AmrLevelGrids m_deeperLevelGrids
Deeper grids.
Definition CD_MFHelmholtzOpFactory.H:372
Vector< RefCountedPtr< LevelData< MFBaseIVFAB > > > AmrIrreData
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:66
Vector< Vector< RefCountedPtr< EBCoarAve > > > m_mgAveOp
Coarsneing operator on deeper grids (used for coarsening jump)
Definition CD_MFHelmholtzOpFactory.H:407
IntVect m_ghostRhs
Number of ghost cells that are used. Need because of Chombo prolongation objects.
Definition CD_MFHelmholtzOpFactory.H:257
MFHelmholtzOp * MGnewOp(const ProblemDomain &a_fineDomain, int a_depth, bool a_homogeneousOnly=true) override final
Create multigrid operator.
Definition CD_MFHelmholtzOpFactory.cpp:572
void coarsenCoefficientsMG()
Go through all MG levels and coarsen the coefficients from the finer levels.
Definition CD_MFHelmholtzOpFactory.cpp:388
AmrCellData m_amrAcoef
Operator A-coefficient.
Definition CD_MFHelmholtzOpFactory.H:317
AmrInterpolators m_amrInterpolators
Multigrid interpolators.
Definition CD_MFHelmholtzOpFactory.H:292
Vector< AmrIrreData > m_mgBcoefIrreg
B-coefficient on deeper grids. Always weird to write this but e.g. m_mgLevelGrids[0] corresponds to t...
Definition CD_MFHelmholtzOpFactory.H:397
Vector< int > AmrRefRatios
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:57
Real m_beta
Operator beta.
Definition CD_MFHelmholtzOpFactory.H:267
void defineMultigridLevels()
Function which defines the multigrid levels for this operator factory.
Definition CD_MFHelmholtzOpFactory.cpp:234
static bool isFiner(const ProblemDomain &a_domainOne, const ProblemDomain &B)
Check if a domain is finer than the other.
Definition CD_MFHelmholtzOpFactory.cpp:814
int m_numPreCondSmooth
Number of smoothings in the preconditioner. Passed directly to the operators.
Definition CD_MFHelmholtzOpFactory.H:247
int refToFiner(const ProblemDomain &a_domain) const override final
Get refinement ratio to next finest level.
Definition CD_MFHelmholtzOpFactory.cpp:822
void defineJump()
Define jump data.
Definition CD_MFHelmholtzOpFactory.cpp:197
Vector< MFLevelGrid > AmrLevelGrids
alias type alias.
Definition CD_MFHelmholtzOpFactory.H:47
virtual ~MFHelmholtzOpFactory()
Destructor. Does nothing.
Definition CD_MFHelmholtzOpFactory.cpp:103
int m_jumpOrder
Stencil order in jump cells.
Definition CD_MFHelmholtzOpFactory.H:362
Operator for solving multifluid Helmholtz on a grid level.
Definition CD_MFHelmholtzOp.H:44
Smoother
Relaxation methods for this operator.
Definition CD_MFHelmholtzOp.H:50
Wrapper class for holding multifluid EBLevelGrids.
Definition CD_MFLevelGrid.H:30
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
Namespace for encapsulating various data centerings.
Definition CD_Location.H:25
Cell
Enum for distinguishing between cell locations.
Definition CD_Location.H:31