chombo-discharge
|
Base class for passing Larsen domain boundary conditions into EBHelmholtzOp. More...
#include <CD_EBHelmholtzLarsenDomainBC.H>
Public Types | |
using | SourceFunction = std::function< Real(const RealVect &a_position)> |
Alias for source function. | |
Public Member Functions | |
EBHelmholtzLarsenDomainBC ()=delete | |
Disallowed default constructor. | |
EBHelmholtzLarsenDomainBC (const RefCountedPtr< RtSpecies > &a_species, const Real a_r1, const Real a_r2, const SourceFunction a_source) | |
Constructor. Source term is set to zero. More... | |
EBHelmholtzLarsenDomainBC (const RefCountedPtr< RtSpecies > &a_species, const Real a_r1, const Real a_r2) | |
Constructor. Source term is set to zero. More... | |
virtual | ~EBHelmholtzLarsenDomainBC () |
Destructor. | |
Public Member Functions inherited from EBHelmholtzRobinDomainBC | |
EBHelmholtzRobinDomainBC () | |
Default constructor. Must subsequently set coefficients. | |
virtual | ~EBHelmholtzRobinDomainBC () |
Destructor. | |
void | setCoefficients (const Real a_A, const Real a_B, const Real a_C) |
Set constant coefficients. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Protected Member Functions | |
void | setRobinFunctions () |
Set Robin coefficients. | |
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. More... | |
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. More... | |
Protected Attributes | |
RefCountedPtr< RtSpecies > | m_species |
Radiative transfer species. | |
Real | m_r1 |
"First reflection coefficient" | |
Real | m_r2 |
"Second reflection coefficient" | |
SourceFunction | m_source |
Source term. | |
Protected Attributes inherited from EBHelmholtzRobinDomainBC | |
bool | m_useConstant |
Use constant for BC. | |
bool | m_useFunction |
Use function for BC value. | |
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 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 | |
Static Protected Attributes inherited from EBHelmholtzDomainBC | |
constexpr static int | m_comp = 0 |
Component that everything is defined for. Always have m_comp = 0. | |
constexpr static int | m_nComp = 1 |
Number of components. Always have m_nComp = 1. | |
Base class for passing Larsen domain boundary conditions into EBHelmholtzOp.
Larsen 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.
EBHelmholtzLarsenDomainBC::EBHelmholtzLarsenDomainBC | ( | const RefCountedPtr< RtSpecies > & | a_species, |
const Real | a_r1, | ||
const Real | a_r2, | ||
const SourceFunction | a_source | ||
) |
Constructor. Source term is set to zero.
[in] | a_species | Radiative transfer species |
[in] | a_r1 | "First reflection coefficient" |
[in] | a_r2 | "Second reflection coefficient" |
[in] | a_source | Source term |
Larsen coefficients (in Robin format) are set based on kappa and reflection coefficients.
EBHelmholtzLarsenDomainBC::EBHelmholtzLarsenDomainBC | ( | const RefCountedPtr< RtSpecies > & | a_species, |
const Real | a_r1, | ||
const Real | a_r2 | ||
) |
Constructor. Source term is set to zero.
[in] | a_species | Radiative transfer species |
[in] | a_r1 | "First reflection coefficient" |
[in] | a_r2 | "Second reflection coefficient" |
Larsen coefficients (in Robin format) are set based on kappa and reflection coefficients.