|
chombo-discharge
|
Base class for passing Robin EB boundary conditions into EBHelmholtzOp. More...
#include <CD_EBHelmholtzRobinEBBC.H>


Public Member Functions | |
| EBHelmholtzRobinEBBC () | |
| Default constructor. Must subsequently set coefficients. | |
| EBHelmholtzRobinEBBC (const int a_order, const int a_weight, const Real a_A, const Real a_B, const Real a_C) | |
| Full constructor which sets constant coefficients. | |
| EBHelmholtzRobinEBBC (const int a_order, const int a_weight, const std::function< Real(const RealVect &a_pos)> &a_A, const std::function< Real(const RealVect &a_pos)> &a_B, const std::function< Real(const RealVect &a_pos)> &a_C) | |
| Full constructor which sets variable coefficients. | |
| virtual | ~EBHelmholtzRobinEBBC () |
| Destructor. | |
| void | setOrder (const int a_order) |
| Set BC order. | |
| void | setWeight (const int a_weight) |
| Set equation weights for least squares reconstruction. | |
| virtual void | setDomainDropOrder (const int a_domainSize) |
| Drop BC order if domain size is equal or below this. | |
| void | setCoefficients (const Real a_A, const Real a_B, const Real a_C) |
| Set constant coefficients. | |
| void | setCoefficients (const std::function< Real(const RealVect &a_pos)> &a_A, const std::function< Real(const RealVect &a_pos)> &a_B, const std::function< Real(const RealVect &a_pos)> &a_C) |
| Set variable coefficients. | |
| 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. | |
Public Member Functions inherited from EBHelmholtzEBBC | |
| 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). | |
Protected Member Functions | |
| virtual void | define () override |
| User define function. | |
| VoFStencil | getInterpolationStencil (const VolIndex &a_vof, const DataIndex &a_dit, const VofUtils::Neighborhood a_neighborhood, const int a_order) const |
| Get a least-squares based interpolation stencil. | |
Protected Member Functions inherited from EBHelmholtzEBBC | |
| 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. | |
Protected Attributes | |
| bool | m_useConstant |
| Use constant for BC. | |
| bool | m_useFunction |
| Use function for BC value. | |
| int | m_order |
| Stencil order. | |
| int | m_weight |
| Stencil weight (for weighting equations in least squares reconstruction) | |
| int | m_domainDropOrder |
| Special flag for dropping stencil order when domains become coarser than this. | |
| Real | m_constantA |
| Constant A-coefficient. | |
| Real | m_constantB |
| Constant B-coefficient. | |
| Real | m_constantC |
| Constant C-coefficient. | |
| std::function< Real(const RealVect &a_pos)> | m_functionA |
| Function-based A-coefficient. | |
| std::function< Real(const RealVect &a_pos)> | m_functionB |
| Function-based B-coefficient. | |
| std::function< Real(const RealVect &a_pos)> | m_functionC |
| Function-based C-coefficient. | |
Protected Attributes inherited from EBHelmholtzEBBC | |
| 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. | |
Additional Inherited Members | |
Public Types inherited from EBHelmholtzEBBC | |
| using | AmrMask = RefCountedPtr< LevelData< BaseFab< bool > > > |
| Alias to cut down on typing. | |
Static Protected Attributes inherited from EBHelmholtzEBBC | |
| 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. | |
Base class for passing Robin EB boundary conditions into EBHelmholtzOp.
Robin bcs are in the form A*phi + B*dphi/dn = C. We impose dphi/dn = (C - A*phi)/B where phi is extrapolated to the EB to first order.
| EBHelmholtzRobinEBBC::EBHelmholtzRobinEBBC | ( | const int | a_order, |
| const int | a_weight, | ||
| const Real | a_A, | ||
| const Real | a_B, | ||
| const Real | a_C | ||
| ) |
Full constructor which sets constant coefficients.
| [in] | a_order | Stencil order. Must be > 0 |
| [in] | a_weight | Equation weights. Must be >=0 |
| [in] | a_A | Robin A-coefficient |
| [in] | a_B | Robin B-coefficient |
| [in] | a_C | Robin C-coefficient |
| EBHelmholtzRobinEBBC::EBHelmholtzRobinEBBC | ( | const int | a_order, |
| const int | a_weight, | ||
| const std::function< Real(const RealVect &a_pos)> & | a_A, | ||
| const std::function< Real(const RealVect &a_pos)> & | a_B, | ||
| const std::function< Real(const RealVect &a_pos)> & | a_C | ||
| ) |
Full constructor which sets variable coefficients.
| [in] | a_order | Stencil order. Must be > 0 |
| [in] | a_weight | Equation weights. Must be >=0 |
| [in] | a_A | Robin A-coefficient |
| [in] | a_B | Robin B-coefficient |
| [in] | a_C | Robin C-coefficient |
|
overridevirtual |
Apply the EB flux. This is the version that is called by EBHelmholtzOp.
| [in,out] | a_vofit | Iterator for cut-cells |
| [in] | 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 EBHelmholtzEBBC.
|
overrideprotectedvirtual |
User define function.
Implements EBHelmholtzEBBC.
|
protected |
Get a least-squares based interpolation stencil.
| [in] | a_vof | Grid cell |
| [in] | a_dit | Data index. |
| [in] | a_neighborhood | Vof neighborhood (either quadrant-based or radius) |
| [in] | a_order | Stencil order |
Set constant coefficients.
| [in] | a_A | Constant A-coefficient |
| [in] | a_B | Constant B-coefficient |
| [in] | a_C | Constant C-coefficient |
| void EBHelmholtzRobinEBBC::setCoefficients | ( | const std::function< Real(const RealVect &a_pos)> & | a_A, |
| const std::function< Real(const RealVect &a_pos)> & | a_B, | ||
| const std::function< Real(const RealVect &a_pos)> & | a_C | ||
| ) |
Set variable coefficients.
| [in] | a_A | Spatially dependent A-coefficient |
| [in] | a_B | Spatially dependent B-coefficient |
| [in] | a_C | Spatially dependent C-coefficient |
Set equation weights for least squares reconstruction.
| [in] | a_weight | Weights |