Class for making Electrostatic boundary conditions on the EB in a multifluid context.
More...
#include <CD_MFHelmholtzElectrostaticEBBC.H>
|
| | MFHelmholtzElectrostaticEBBC (int a_phase, const ElectrostaticEbBc &a_electrostaticBCs, const RefCountedPtr< MFHelmholtzJumpBC > &a_jumpBC) |
| | Full constructor.
|
| |
|
| MFHelmholtzElectrostaticEBBC ()=delete |
| | No weak construction.
|
| |
| | MFHelmholtzElectrostaticEBBC (const MFHelmholtzElectrostaticEBBC &a_other)=delete |
| | No copy construction.
|
| |
| | MFHelmholtzElectrostaticEBBC (const MFHelmholtzElectrostaticEBBC &&a_other)=delete |
| | No move construction.
|
| |
|
| ~MFHelmholtzElectrostaticEBBC () override |
| | Default constructor (does nothing).
|
| |
| MFHelmholtzElectrostaticEBBC & | operator= (const MFHelmholtzElectrostaticEBBC &a_other)=delete |
| | No copy assignment.
|
| |
| MFHelmholtzElectrostaticEBBC & | operator= (const MFHelmholtzElectrostaticEBBC &&a_other)=delete |
| | No move assignment.
|
| |
| void | setOrder (int a_order) |
| | Set stencil order.
|
| |
| void | setWeight (int a_weight) |
| | Set stencil weight.
|
| |
| void | setDomainDropOrder (int a_domainSize) |
| | Drop BC order if domain size is equal or below this.
|
| |
| void | setCoarseGridDropOrder (bool a_dropOrder) |
| | Signal that it should drop the stencil order if the cell is a coarsened cell.
|
| |
|
| MFHelmholtzEBBC ()=delete |
| | Disallowed weak constructor. Factory must call the other version.
|
| |
|
| MFHelmholtzEBBC (const MFHelmholtzEBBC &a_other)=delete |
| | Disallowed copy constructor. Factory must call the other version.
|
| |
| | MFHelmholtzEBBC (const int a_phase, const RefCountedPtr< MFHelmholtzJumpBC > &a_jumpBC) |
| | Full constructor.
|
| |
|
virtual | ~MFHelmholtzEBBC () |
| | Default constructor.
|
| |
| virtual void | applyEBFlux (VoFIterator &a_vofit, EBCellFAB &a_Lphi, const EBCellFAB &a_phi, const BaseIVFAB< Real > &a_Bcoef, const DataIndex &a_dit, const Real &a_beta, const bool &a_homogeneousPhysBC) const override |
| | Apply the EB flux. This is the version that is called by EBHelmholtzOp.
|
| |
|
| EBHelmholtzEBBC () |
| | Default constructor.
|
| |
|
virtual | ~EBHelmholtzEBBC () |
| | Destructor.
|
| |
|
| EBHelmholtzEBBC (const EBHelmholtzEBBC &a_other)=delete |
| | Disallowed – don't see why you would need it.
|
| |
|
EBHelmholtzEBBC & | operator= (const EBHelmholtzEBBC &a_other)=delete |
| | Disallowed - don't see why you would need it.
|
| |
| void | define (const Location::Cell a_dataLocation, const EBLevelGrid &a_eblg, const AmrMask &a_validCells, const RealVect &a_probLo, const Real &a_dx, const int a_ghostCF) |
| | Define function that is called by EBHelmholtzOp.
|
| |
| const LayoutData< BaseIVFAB< VoFStencil > > & | getGradPhiStencils () const |
| | Get the stencil for computing the finite-volume approximation to kappa*Div(F).
|
| |
|
| virtual void | defineSinglePhase () override |
| | User define function.
|
| |
| virtual void | applyEBFluxSinglePhase (VoFIterator &a_singlePhaseVofs, EBCellFAB &a_Lphi, const EBCellFAB &a_phi, const BaseIVFAB< Real > &a_Bcoef, const DataIndex &a_dit, const Real &a_beta, const bool &a_homogeneousPhysBC) const override |
| | Apply flux single phase.
|
| |
| Real | getElectrodePotential (const RealVect &a_pos) const |
| | Get electrode potential.
|
| |
| void | define () override final |
| | User define function.
|
| |
|
void | defineMultiPhase () |
| | Define stuff for multi-phase.
|
| |
| void | applyEBFluxMultiPhase (VoFIterator &a_multiPhaseVofs, EBCellFAB &a_Lphi, const EBCellFAB &a_phi, const BaseIVFAB< Real > &a_Bcoef, const DataIndex &a_dit, const Real &a_beta, const bool &a_homogeneousPhysBC) const |
| | Apply flux in multiphase cells.
|
| |
| virtual bool | getLeastSquaresBoundaryGradStencil (std::pair< Real, VoFStencil > &a_stencil, const VolIndex &a_vof, const VofUtils::Neighborhood a_neighborhood, const DataIndex &a_dit, const int a_order, const int a_weight) const |
| | Get stencil with specified order.
|
| |
| bool | isStencilValidCF (const VoFStencil &a_stencil, const DataIndex &a_dit) const |
| | Check if stencil is valid.
|
| |
| RealVect | getBoundaryPosition (const VolIndex &a_vof, const DataIndex &a_dit) const |
| | Returns physical position at the boundary.
|
| |
| Real | applyStencil (const VoFStencil &a_stencil, const EBCellFAB &a_phi) const |
| | Apply stencil to data holder and return result.
|
| |
|
|
int | m_order |
| | Stencil order.
|
| |
|
int | m_weight |
| | Stencil weight.
|
| |
|
int | m_domainDropOrder |
| | Special flag for dropping stencil order when domains become coarser than this.
|
| |
|
bool | m_dropOrder |
| | Special flag for dropping stencil order if the cell is a coarsened cell.
|
| |
|
ElectrostaticEbBc | m_electrostaticBCs |
| | Electrostatic boundary conditions.
|
| |
|
RefCountedPtr< MFHelmholtzJumpBC > | m_jumpBC |
| | Jump bc object.
|
| |
|
int | m_phase |
| | Phase.
|
| |
|
LayoutData< BaseIVFAB< Real > > | m_boundaryWeights |
| | Weights for matching cells.
|
| |
|
Location::Cell | m_dataLocation |
| | Data centering.
|
| |
|
int | m_ghostCF |
| | Number of ghost cells that were filled across CF interface.
|
| |
|
Real | m_dx |
| | Grid resolution.
|
| |
|
RealVect | m_probLo |
| | Lower-left corner of computational domain.
|
| |
|
EBLevelGrid | m_eblg |
| | Level grid.
|
| |
|
RefCountedPtr< LevelData< BaseFab< bool > > > | m_validCells |
| | Valid grid cells.
|
| |
|
LayoutData< BaseIVFAB< VoFStencil > > | m_gradPhiStencils |
| | Stencils for computing the flux on a single level. This is a single-level object.
|
| |
|
|
using | AmrMask = RefCountedPtr< LevelData< BaseFab< bool > > > |
| | Alias to cut down on typing.
|
| |
|
static constexpr int | m_comp = 0 |
| | Component that everything is defined for. Always have m_comp = 0.
|
| |
|
static constexpr int | m_nComp = 1 |
| | Number of components. Always have m_nComp = 1.
|
| |
Class for making Electrostatic boundary conditions on the EB in a multifluid context.
This implements MFHelmholtzEBBC, which is essentially an EBHelmholtzEBBC-derived class that performs automatic "matching" on cells with jumps in the b-coefficients. Users will never have to interact directly with this object.
◆ MFHelmholtzElectrostaticEBBC() [1/3]
| MFHelmholtzElectrostaticEBBC::MFHelmholtzElectrostaticEBBC |
( |
int |
a_phase, |
|
|
const ElectrostaticEbBc & |
a_electrostaticBCs, |
|
|
const RefCountedPtr< MFHelmholtzJumpBC > & |
a_jumpBC |
|
) |
| |
Full constructor.
- Parameters
-
| [in] | a_phase | Phase |
| [in] | a_electrostaticBCs | Electrostatic boundary conditions on EBs |
| [in] | a_jumpBC | Jumpc BC object. |
◆ MFHelmholtzElectrostaticEBBC() [2/3]
No copy construction.
- Parameters
-
◆ MFHelmholtzElectrostaticEBBC() [3/3]
No move construction.
- Parameters
-
◆ applyEBFluxSinglePhase()
| void MFHelmholtzElectrostaticEBBC::applyEBFluxSinglePhase |
( |
VoFIterator & |
a_singlePhaseVofs, |
|
|
EBCellFAB & |
a_Lphi, |
|
|
const EBCellFAB & |
a_phi, |
|
|
const BaseIVFAB< Real > & |
a_Bcoef, |
|
|
const DataIndex & |
a_dit, |
|
|
const Real & |
a_beta, |
|
|
const bool & |
a_homogeneousPhysBC |
|
) |
| const |
|
overrideprotectedvirtual |
Apply flux single phase.
This iterates over single-phase cells only, multi-phase cells are automatically enforced (in MFHelmholtzEBBC) by the jump boundary conditions.
- Parameters
-
| [in,out] | a_singlePhaseVofs | Iterator for single-phase cut-cells |
| [in,out] | a_Lphi | Operator kappa*L(phi) |
| [in] | a_phi | Phi, cell-centered. |
| [in] | a_Bcoef | EB-centered B-coefficient |
| [in] | a_dit | Data index |
| [in] | a_beta | Beta. Passed in from operator. |
| [in] | a_homogeneousPhysBC | Homogeneous BC or not. |
Implements MFHelmholtzEBBC.
◆ defineSinglePhase()
| void MFHelmholtzElectrostaticEBBC::defineSinglePhase |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ getElectrodePotential()
| Real MFHelmholtzElectrostaticEBBC::getElectrodePotential |
( |
const RealVect & |
a_pos | ) |
const |
|
inlineprotected |
Get electrode potential.
- Parameters
-
| [in] | a_pos | Position in space |
- Returns
- Electrode potential
◆ operator=() [1/2]
No move assignment.
- Parameters
-
◆ operator=() [2/2]
No copy assignment.
- Parameters
-
◆ setCoarseGridDropOrder()
| void MFHelmholtzElectrostaticEBBC::setCoarseGridDropOrder |
( |
bool |
a_dropOrder | ) |
|
Signal that it should drop the stencil order if the cell is a coarsened cell.
- Parameters
-
◆ setDomainDropOrder()
| void MFHelmholtzElectrostaticEBBC::setDomainDropOrder |
( |
int |
a_domainSize | ) |
|
Drop BC order if domain size is equal or below this.
- Parameters
-
| [in] | a_domainSize | Description |
◆ setOrder()
| void MFHelmholtzElectrostaticEBBC::setOrder |
( |
int |
a_order | ) |
|
Set stencil order.
EBHelmholtzEBBC uses least-squares based stencils for gradient reconstruction. This routine sets the order of that reconstruction.
- Parameters
-
- Note
- The radius of the stencil is the same as the order – do not use an order larger than the number of ghost cells that you will use.
◆ setWeight()
| void MFHelmholtzElectrostaticEBBC::setWeight |
( |
int |
a_weight | ) |
|
Set stencil weight.
- Parameters
-
| [in] | a_weight | Equation weights. |
EBHelmholtzEBBC uses least-squares based stencils for gradient reconstruction. This routine sets the equation weights in that reconstruction.
The documentation for this class was generated from the following files: