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

Class for passing EddingtonSP1 domain boundary conditions into EBHelmholtzOp. More...

#include <CD_EBHelmholtzEddingtonSP1DomainBC.H>

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

Public Member Functions

 EBHelmholtzEddingtonSP1DomainBC ()=delete
 Not allowed, use the full constructor.
 
 EBHelmholtzEddingtonSP1DomainBC (const EddingtonSP1DomainBc &a_eddingtonBCs, const RefCountedPtr< RtSpecies > &a_species, const Real a_r1, const Real a_r2)
 Full constructor. More...
 
 EBHelmholtzEddingtonSP1DomainBC (const EBHelmholtzEddingtonSP1DomainBC &a_other)=delete
 Disallowed – don't see why you would need it. More...
 
 EBHelmholtzEddingtonSP1DomainBC (const EBHelmholtzEddingtonSP1DomainBC &&a_other)=delete
 Disallowed – don't see why you would need it. More...
 
virtual ~EBHelmholtzEddingtonSP1DomainBC ()
 Destructor.
 
EBHelmholtzEddingtonSP1DomainBCoperator= (const EBHelmholtzEddingtonSP1DomainBC &a_other)=delete
 Disallowed - don't see why you would need it. More...
 
EBHelmholtzEddingtonSP1DomainBCoperator= (const EBHelmholtzEddingtonSP1DomainBC &&a_other)=delete
 Disallowed - don't see why you would need it. More...
 
void define (const Location::Cell a_dataLocation, const EBLevelGrid &a_eblg, const RealVect &a_probLo, const Real a_dx) override final
 Define function. More...
 
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 final
 Get face flux. This is for regular cells. More...
 
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 final
 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.
 

Protected Attributes

EddingtonSP1DomainBc m_eddingtonBCs
 Eddington domain boundary conditions.
 
RefCountedPtr< RtSpeciesm_species
 Radiative transfer species.
 
Real m_r1
 "First reflection coefficient"
 
Real m_r2
 "Second reflection coefficient"
 
std::map< EddingtonSP1DomainBc::DomainSide, std::shared_ptr< EBHelmholtzDomainBC > > m_bcObjects
 BC objects on each domain side. More...
 
- 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. 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...
 
- 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

Class for passing EddingtonSP1 domain boundary conditions into EBHelmholtzOp.

This calss is a wrapper for Dirichlet/Neumann boundary conditions where the values/functions are passed in through EddingtonDomainBc

Note
For this class to operate correctly with time-dependent boundary conditions, the user must ensure that the time dependence is captured by reference. The time argument in ElectrostaticDomainBc::BcFunction by this class, so whatever function is put in there, it must capture time by reference.

Constructor & Destructor Documentation

◆ EBHelmholtzEddingtonSP1DomainBC() [1/3]

EBHelmholtzEddingtonSP1DomainBC::EBHelmholtzEddingtonSP1DomainBC ( const EddingtonSP1DomainBc a_eddingtonBCs,
const RefCountedPtr< RtSpecies > &  a_species,
const Real  a_r1,
const Real  a_r2 
)

Full constructor.

Parameters
[in]a_eddingtonBCsEddingtonSP1 boundary conditions on domain sides
[in]a_speciesRadiative transfer species
[in]a_r1"First reflection coefficient"
[in]a_r2"Second reflection coefficient"

◆ EBHelmholtzEddingtonSP1DomainBC() [2/3]

EBHelmholtzEddingtonSP1DomainBC::EBHelmholtzEddingtonSP1DomainBC ( const EBHelmholtzEddingtonSP1DomainBC a_other)
delete

Disallowed – don't see why you would need it.

Parameters
[in]a_otherOther operator

◆ EBHelmholtzEddingtonSP1DomainBC() [3/3]

EBHelmholtzEddingtonSP1DomainBC::EBHelmholtzEddingtonSP1DomainBC ( const EBHelmholtzEddingtonSP1DomainBC &&  a_other)
delete

Disallowed – don't see why you would need it.

Parameters
[in]a_otherOther operator

Member Function Documentation

◆ define()

void EBHelmholtzEddingtonSP1DomainBC::define ( const Location::Cell  a_dataLocation,
const EBLevelGrid &  a_eblg,
const RealVect &  a_probLo,
const Real  a_dx 
)
finaloverridevirtual

Define function.

Parameters
[in]a_dataLocationData location
[in]a_eblgLevel grids
[in]a_probLoLower-left corner of computational domain
[in]a_dxGrid resolution
Note
Overriding because this is a wrapper class for Dirichlet/Neumann, and those objects need defining.

Reimplemented from EBHelmholtzDomainBC.

◆ getFaceFlux() [1/2]

void EBHelmholtzEddingtonSP1DomainBC::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
finaloverridevirtual

Get face flux. This is for regular cells.

Parameters
[in,out]a_faceFluxFace-centered flux.
[in]a_phiCell-centered data
[in]a_BcoefFace-centered B-coefficient
[in]a_dirCoordinate direction
[in]a_sideHigh or low side
[in]a_ditData index
[in]a_useHomogeneousHomogeneous physical BCs or not.
Note
a_faceFlux is defined in the first strip of interior cells on the (dir,side) edge of the domain.

Implements EBHelmholtzDomainBC.

◆ getFaceFlux() [2/2]

Real EBHelmholtzEddingtonSP1DomainBC::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
finaloverridevirtual

Get face flux. This is for irregular cells.

Parameters
[in]a_vofGrid cell
[in]a_phiCell-centered data
[in]a_BcoefFace-centered B-coefficient
[in]a_dirCoordinate direction
[in]a_sideHigh or low side
[in]a_ditData index
[in]a_useHomogeneousHomogeneous physical BCs or not.

Implements EBHelmholtzDomainBC.

◆ operator=() [1/2]

EBHelmholtzEddingtonSP1DomainBC& EBHelmholtzEddingtonSP1DomainBC::operator= ( const EBHelmholtzEddingtonSP1DomainBC &&  a_other)
delete

Disallowed - don't see why you would need it.

Parameters
[in]a_otherOther operator

◆ operator=() [2/2]

EBHelmholtzEddingtonSP1DomainBC& EBHelmholtzEddingtonSP1DomainBC::operator= ( const EBHelmholtzEddingtonSP1DomainBC a_other)
delete

Disallowed - don't see why you would need it.

Parameters
[in]a_otherOther operator

Member Data Documentation

◆ m_bcObjects

std::map<EddingtonSP1DomainBc::DomainSide, std::shared_ptr<EBHelmholtzDomainBC> > EBHelmholtzEddingtonSP1DomainBC::m_bcObjects
protected

BC objects on each domain side.

These are instantiated in the constructor where we construct Neumann/Dirichlet on each domain side.


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