12#ifndef CD_MFHelmholtzJumpBC_H
13#define CD_MFHelmholtzJumpBC_H
18#include <LayoutData.H>
20#include <AggStencil.H>
30#include <CD_NamespaceHeader.H>
384#include <CD_NamespaceFooter.H>
386#include <CD_MFHelmholtzJumpBCImplem.H>
Declaration of cell positions.
Declaration of a multiphase BaseIVFAB<Real>
Declaration of a class that allocates irregular data holders over the interface between two phases.
Declaration of a wrapper for wrapping multifluid EBLevelGrids.
Various functions for getting Vofs near cut-cells.
Multiphase BaseIVFAB<Real>.
Definition CD_MFBaseIVFAB.H:29
Class for computing "jump interface" boundary conditions for multifluid code.
Definition CD_MFHelmholtzJumpBC.H:42
virtual VoFIterator & getSinglePhaseVofs(const int a_phase, const DataIndex &a_dit) const
Return vof iterator which iterates over single-phase cells on a specific phase and box.
Definition CD_MFHelmholtzJumpBC.cpp:97
static constexpr int m_comp
Component where stencils are stored.
Definition CD_MFHelmholtzJumpBC.H:203
Real m_dx
Grid resolution.
Definition CD_MFHelmholtzJumpBC.H:233
LayoutData< MFInterfaceFAB< VoFStencil > > m_avgStencils
Average stencil.
Definition CD_MFHelmholtzJumpBC.H:308
LayoutData< MFInterfaceFAB< Real > > m_boundaryPhi
Value of phi on the boundary.
Definition CD_MFHelmholtzJumpBC.H:278
LayoutData< MFInterfaceFAB< Real > > m_denom
Denominator 1/(bp*wp + bq*wq) for all interface cells.
Definition CD_MFHelmholtzJumpBC.H:318
int m_ghostCF
Number of grid cells that were filled over the CF.
Definition CD_MFHelmholtzJumpBC.H:253
virtual const LayoutData< MFInterfaceFAB< Real > > & getGradPhiWeights() const noexcept
Get constant weights involved when computing dphi/dn at the boundary.
Definition CD_MFHelmholtzJumpBC.cpp:115
LayoutData< MFInterfaceFAB< Real > > m_gradPhiWeights
Raw weights for dphi/dn.
Definition CD_MFHelmholtzJumpBC.H:303
Real applyStencil(const VoFStencil &a_stencil, const EBCellFAB &a_phi) const
Apply a stencil and return the result.
Definition CD_MFHelmholtzJumpBCImplem.H:69
RefCountedPtr< LevelData< MFBaseIVFAB > > m_Bcoef
B-coefficient.
Definition CD_MFHelmholtzJumpBC.H:223
virtual bool getLeastSquaresBoundaryGradStencil(std::pair< Real, VoFStencil > &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisbox, const VofUtils::Neighborhood a_neighborhood, const int a_order) const
Get stencil with specified order.
Definition CD_MFHelmholtzJumpBC.cpp:501
bool isMultiPhase() const noexcept
Is multiphase or not.
Definition CD_MFHelmholtzJumpBC.cpp:132
int m_numPhases
Number of phases.
Definition CD_MFHelmholtzJumpBC.H:258
void setBco(const RefCountedPtr< LevelData< MFBaseIVFAB > > &a_Bcoef)
Set B-coefficient. This updates the stencils.
Definition CD_MFHelmholtzJumpBC.cpp:121
int m_order
Stencil order.
Definition CD_MFHelmholtzJumpBC.H:238
LayoutData< RefCountedPtr< AggStencil< EBCellFAB, BaseIVFAB< Real > > > > m_aggStencils[2]
Agg stencils for making matching go faster.
Definition CD_MFHelmholtzJumpBC.H:328
virtual const LayoutData< MFInterfaceFAB< VoFStencil > > & getGradPhiStencils() const noexcept
Get stencils for computing dphi/dn at the boundary.
Definition CD_MFHelmholtzJumpBC.cpp:109
MFHelmholtzJumpBC & operator=(const MFHelmholtzJumpBC &a_other)=delete
Disallowed assignment constructor.
int m_radius
Stencil order.
Definition CD_MFHelmholtzJumpBC.H:248
int getWeight() const
Return stencil weight (for least squares)
Definition CD_MFHelmholtzJumpBC.cpp:73
RefCountedPtr< LevelData< MFBaseIVFAB > > BcoefPtr
Alias to cut down on typing.
Definition CD_MFHelmholtzJumpBC.H:47
MFHelmholtzJumpBC(const MFHelmholtzJumpBC &a_other)=delete
Disallowed copy constructor.
LayoutData< MFInterfaceFAB< Real > > m_avgWeights
Average weights.
Definition CD_MFHelmholtzJumpBC.H:323
Location::Cell m_dataLocation
Data centering.
Definition CD_MFHelmholtzJumpBC.H:213
MFHelmholtzJumpBC()=delete
Disallowed weak construction.
IntVect m_ghostPhi
Number of ghost cells in phi (must be exact match in order to use AggStencil)
Definition CD_MFHelmholtzJumpBC.H:263
void defineIterators()
Define function. Builds stencils.
Definition CD_MFHelmholtzJumpBC.cpp:446
bool isStencilValidCF(const VoFStencil &a_stencil, const DataIndex &a_dit) const
Check if stencil is valid.
Definition CD_MFHelmholtzJumpBCImplem.H:23
void defineStencils()
Define function. Builds stencils.
Definition CD_MFHelmholtzJumpBC.cpp:140
void buildAverageStencils()
Brief the average stencils.
Definition CD_MFHelmholtzJumpBC.cpp:304
virtual void resetBC() const
Set everything to zero. This is a debugging function.
Definition CD_MFHelmholtzJumpBC.cpp:551
static constexpr int m_nComp
Number of components in stencil.
Definition CD_MFHelmholtzJumpBC.H:208
int getRadius() const
Return stencil radius (for least squares)
Definition CD_MFHelmholtzJumpBC.cpp:79
virtual void matchBC(LevelData< BaseIVFAB< Real > > &a_jump, const LevelData< MFCellFAB > &a_phi, const bool a_homogeneousPhysBC) const
Match the BC.
Definition CD_MFHelmholtzJumpBC.cpp:570
RefCountedPtr< LevelData< BaseFab< bool > > > m_validCells
Valid grid cells.
Definition CD_MFHelmholtzJumpBC.H:228
LayoutData< IntVectSet > m_ivs
IntVectSet over which we run the "averaging".
Definition CD_MFHelmholtzJumpBC.H:293
MFLevelGrid m_mflg
Grids.
Definition CD_MFHelmholtzJumpBC.H:218
LayoutData< MFInterfaceFAB< VoFStencil > > m_gradPhiStencils
Raw stencils for dphi/dn.
Definition CD_MFHelmholtzJumpBC.H:298
virtual ~MFHelmholtzJumpBC()
Destructor. Does nothing.
Definition CD_MFHelmholtzJumpBC.cpp:61
bool m_dropOrder
Drop order or not.
Definition CD_MFHelmholtzJumpBC.H:273
RefCountedPtr< LevelData< BaseFab< bool > > > AmrMask
Alias to cut down on typing.
Definition CD_MFHelmholtzJumpBC.H:52
std::map< int, std::shared_ptr< LayoutData< VoFIterator > > > m_multiPhaseVofs
Iterators for multi-phase cells. The integer index is the phase.
Definition CD_MFHelmholtzJumpBC.H:288
int getOrder() const
Return stencil order.
Definition CD_MFHelmholtzJumpBC.cpp:67
LayoutData< MFInterfaceFAB< Vector< VolIndex > > > m_avgVoFs
Target vofs for average stencils.
Definition CD_MFHelmholtzJumpBC.H:313
virtual VoFIterator & getMultiPhaseVofs(const int a_phase, const DataIndex &a_dit) const
Return vof iterator which iterates over multi-phase cells on a specified phase and box.
Definition CD_MFHelmholtzJumpBC.cpp:103
virtual const BaseIVFAB< Real > & getBndryPhi(const int a_phase, const DataIndex &a_dit) const
Get phi on the boundary.
Definition CD_MFHelmholtzJumpBC.cpp:91
bool m_multiPhase
Multiphase or not.
Definition CD_MFHelmholtzJumpBC.H:268
int m_weight
Stencil order.
Definition CD_MFHelmholtzJumpBC.H:243
std::map< int, std::shared_ptr< LayoutData< VoFIterator > > > m_singlePhaseVofs
Iterators for single-phase cells. The integer index is the phase.
Definition CD_MFHelmholtzJumpBC.H:283
void setCoarseGridDropOrder(const bool a_dropOrder)
Signal MFHelmholtzJumpBC that it should drop the stencil order if the cell is a coarsened cell.
Definition CD_MFHelmholtzJumpBC.cpp:85
Class for holding BaseIVFAB<T> on the interface between two phases.
Definition CD_MFInterfaceFAB.H:30
Wrapper class for holding multifluid EBLevelGrids.
Definition CD_MFLevelGrid.H:29
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
Static class which contains some routines for fetching VoFs using various algorithms....
Definition CD_VofUtils.H:33
Namespace for encapsulating various data centerings.
Definition CD_Location.H:24
Cell
Enum for distinguishing between cell locations.
Definition CD_Location.H:30