|
chombo-discharge
|
Boundary condition class for passing Dirichlet domain boundary conditions into EBHelmholtzOp. More...
#include <CD_EBHelmholtzDirichletDomainBC.H>


Public Member Functions | |
| EBHelmholtzDirichletDomainBC () | |
| Constructor. Must subsequently call setValue. | |
| EBHelmholtzDirichletDomainBC (const Real a_value) | |
| Constructor. | |
| EBHelmholtzDirichletDomainBC (const std::function< Real(const RealVect &a_pos)> &a_value) | |
| Full constructor. | |
| virtual | ~EBHelmholtzDirichletDomainBC () |
| Destructor. | |
| void | setValue (const Real a_value) |
| Set the constant value on the domain side. | |
| void | setValue (const std::function< Real(const RealVect &a_pos)> &a_value) |
| Set the spatially dependent value on the domain side. | |
| virtual void | getFaceFlux (BaseFab< Real > &a_faceFlux, const BaseFab< Real > &a_phi, const BaseFab< Real > &a_Bcoef, const int &a_dir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const bool a_useHomogeneous) const override |
| Get face flux. This is for regular cells, and it uses first order finite differences for filling the flux. | |
| virtual Real | getFaceFlux (const VolIndex &a_vof, const EBCellFAB &a_phi, const EBFaceFAB &a_Bcoef, const int &a_dir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const bool a_useHomogeneous) const override |
| Get face flux. This is for irregular cells. | |
Public Member Functions inherited from EBHelmholtzDomainBC | |
| EBHelmholtzDomainBC () | |
| Constructor. | |
| virtual | ~EBHelmholtzDomainBC () |
| Destructor. | |
| EBHelmholtzDomainBC (const EBHelmholtzDomainBC &a_other)=delete | |
| Disallowed – don't see why you would need it. | |
| EBHelmholtzDomainBC (const EBHelmholtzDomainBC &&a_other)=delete | |
| Disallowed – don't see why you would need it. | |
| EBHelmholtzDomainBC & | operator= (const EBHelmholtzDomainBC &a_other)=delete |
| Disallowed - don't see why you would need it. | |
| EBHelmholtzDomainBC & | operator= (const EBHelmholtzDomainBC &&a_other)=delete |
| Disallowed - don't see why you would need it. | |
| virtual void | define (const Location::Cell a_dataLocation, const EBLevelGrid &a_eblg, const RealVect &a_probLo, const Real a_dx) |
| Define function. | |
Protected Attributes | |
| bool | m_useConstant |
| Use constant for BC. | |
| bool | m_useFunction |
| Use function for BC value. | |
| Real | m_constantValue |
| Constant value on domain sides. | |
| std::function< Real(const RealVect &a_pos)> | m_functionValue |
| Spatially dependent value on domain sides. | |
Protected Attributes inherited from EBHelmholtzDomainBC | |
| Location::Cell | m_dataLocation |
| Data centering. | |
| Real | m_dx |
| Grid resolution. | |
| RealVect | m_probLo |
| Lower-left corner of computational domain. | |
| EBLevelGrid | m_eblg |
| Level grid. | |
Additional Inherited Members | |
Protected Member Functions inherited from EBHelmholtzDomainBC | |
| RealVect | getBoundaryPosition (const IntVect &a_iv, const int &a_dir, const Side::LoHiSide &a_side) const |
| Returns the cell-centered position at the boundary. | |
| void | multiplyByBcoef (BaseFab< Real > &a_flux, const BaseFab< Real > &a_bco, const int a_dir, const Side::LoHiSide a_side) const |
| Utility function which multiplies the flux (or actually, dphi/dn) by the B-coefficient. This is used by the implementation classes when they compute the regular flux at the domain edges/faces. | |
Static Protected Attributes inherited from EBHelmholtzDomainBC | |
| 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. | |
Boundary condition class for passing Dirichlet domain boundary conditions into EBHelmholtzOp.
Constructor.
| [in] | a_value | Constant value on all domain sides. |
| EBHelmholtzDirichletDomainBC::EBHelmholtzDirichletDomainBC | ( | const std::function< Real(const RealVect &a_pos)> & | a_value | ) |
Full constructor.
| [in] | a_value | Spatially dependent value on all domain sides. |
|
overridevirtual |
Get face flux. This is for regular cells, and it uses first order finite differences for filling the flux.
| [in,out] | a_faceFlux | Face-centered flux. |
| [in] | a_phi | Cell-centered data |
| [in] | a_Bcoef | Face-centered B-coefficient |
| [in] | a_dir | Coordinate direction |
| [in] | a_side | High or low side |
| [in] | a_dit | Data index |
| [in] | a_useHomogeneous | Homogeneous physical BCs or not. |
Implements EBHelmholtzDomainBC.
|
overridevirtual |
Get face flux. This is for irregular cells.
| [in] | a_vof | Grid cell |
| [in] | a_phi | Cell-centered data |
| [in] | a_Bcoef | Face-centered B-coefficient |
| [in] | a_dir | Coordinate direction |
| [in] | a_side | High or low side |
| [in] | a_dit | Data index |
| [in] | a_useHomogeneous | Homogeneous physical BCs or not. |
Implements EBHelmholtzDomainBC.
Set the constant value on the domain side.
| [in] | a_value | Constant value on all domain sides. |
| void EBHelmholtzDirichletDomainBC::setValue | ( | const std::function< Real(const RealVect &a_pos)> & | a_value | ) |
Set the spatially dependent value on the domain side.
| [in] | a_value | Spatially dependent value on all domain sides. |