chombo-discharge
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
EBHelmholtzLarsenDomainBC Class Reference

Base class for passing Larsen domain boundary conditions into EBHelmholtzOp. More...

#include <CD_EBHelmholtzLarsenDomainBC.H>

Inheritance diagram for EBHelmholtzLarsenDomainBC:
Inheritance graph
[legend]
Collaboration diagram for EBHelmholtzLarsenDomainBC:
Collaboration graph
[legend]

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.
 
EBHelmholtzDomainBCoperator= (const EBHelmholtzDomainBC &a_other)=delete
 Disallowed - don't see why you would need it.
 
EBHelmholtzDomainBCoperator= (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< RtSpeciesm_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.
 

Detailed Description

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.

Note
The B-coefficient is not the same as in the Helmholtz equation...
In our notation, n points into the computational domain.

Constructor & Destructor Documentation

◆ EBHelmholtzLarsenDomainBC() [1/2]

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.

Parameters
[in]a_speciesRadiative transfer species
[in]a_r1"First reflection coefficient"
[in]a_r2"Second reflection coefficient"
[in]a_sourceSource term

Larsen coefficients (in Robin format) are set based on kappa and reflection coefficients.

◆ EBHelmholtzLarsenDomainBC() [2/2]

EBHelmholtzLarsenDomainBC::EBHelmholtzLarsenDomainBC ( const RefCountedPtr< RtSpecies > &  a_species,
const Real  a_r1,
const Real  a_r2 
)

Constructor. Source term is set to zero.

Parameters
[in]a_speciesRadiative 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.


The documentation for this class was generated from the following files: