chombo-discharge
CD_EBHelmholtzEddingtonSP1DomainBC.H
1 /* chombo-discharge
2  * Copyright © 2021 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
6 /*
7  @file CD_EBHelmholtzEddingtonDomainBC.H
8  @brief Declaration of a domain boundary condition class for EBHelmholtzOp.
9  @author Robert Marskar
10 */
11 
12 #ifndef CD_EBHelmholtzEddingtonDomainBC_H
13 #define CD_EBHelmholtzEddingtonDomainBC_H
14 
15 // Our includes
16 #include <CD_RtSpecies.H>
17 #include <CD_EddingtonSP1DomainBc.H>
18 #include <CD_EBHelmholtzDomainBC.H>
19 #include <CD_NamespaceHeader.H>
20 
29 {
30 public:
35 
44  const RefCountedPtr<RtSpecies>& a_species,
45  const Real a_r1,
46  const Real a_r2);
47 
53 
59 
64 
70  operator=(const EBHelmholtzEddingtonSP1DomainBC& a_other) = delete;
71 
77  operator=(const EBHelmholtzEddingtonSP1DomainBC&& a_other) = delete;
78 
87  void
88  define(const Location::Cell a_dataLocation,
89  const EBLevelGrid& a_eblg,
90  const RealVect& a_probLo,
91  const Real a_dx) override final;
92 
104  void
105  getFaceFlux(BaseFab<Real>& a_faceFlux,
106  const BaseFab<Real>& a_phi,
107  const BaseFab<Real>& a_Bcoef,
108  const int& a_dir,
109  const Side::LoHiSide& a_side,
110  const DataIndex& a_dit,
111  const bool a_useHomogeneous) const override final;
112 
123  Real
124  getFaceFlux(const VolIndex& a_vof,
125  const EBCellFAB& a_phi,
126  const EBFaceFAB& a_Bcoef,
127  const int& a_dir,
128  const Side::LoHiSide& a_side,
129  const DataIndex& a_dit,
130  const bool a_useHomogeneous) const override final;
131 
132 protected:
137 
141  RefCountedPtr<RtSpecies> m_species;
142 
146  Real m_r1;
147 
151  Real m_r2;
152 
157  std::map<EddingtonSP1DomainBc::DomainSide, std::shared_ptr<EBHelmholtzDomainBC>> m_bcObjects;
158 };
159 
160 #include <CD_NamespaceFooter.H>
161 
162 #endif
Declaration of a class which supplies a user interface to radiative transfer code.
Base class for passing domain boundary conditions into EBHelmholtzOp.
Definition: CD_EBHelmholtzDomainBC.H:29
Class for passing EddingtonSP1 domain boundary conditions into EBHelmholtzOp.
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.H:29
virtual ~EBHelmholtzEddingtonSP1DomainBC()
Destructor.
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.cpp:85
RefCountedPtr< RtSpecies > m_species
Radiative transfer species.
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.H:141
std::map< EddingtonSP1DomainBc::DomainSide, std::shared_ptr< EBHelmholtzDomainBC > > m_bcObjects
BC objects on each domain side.
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.H:157
Real m_r1
"First reflection coefficient"
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.H:146
EBHelmholtzEddingtonSP1DomainBC()=delete
Not allowed, use the full constructor.
EBHelmholtzEddingtonSP1DomainBC(const EBHelmholtzEddingtonSP1DomainBC &a_other)=delete
Disallowed – don't see why you would need it.
EBHelmholtzEddingtonSP1DomainBC & operator=(const EBHelmholtzEddingtonSP1DomainBC &&a_other)=delete
Disallowed - don't see why you would need it.
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.
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.cpp:108
EddingtonSP1DomainBc m_eddingtonBCs
Eddington domain boundary conditions.
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.H:136
EBHelmholtzEddingtonSP1DomainBC(const EBHelmholtzEddingtonSP1DomainBC &&a_other)=delete
Disallowed – don't see why you would need it.
Real m_r2
"Second reflection coefficient"
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.H:151
void define(const Location::Cell a_dataLocation, const EBLevelGrid &a_eblg, const RealVect &a_probLo, const Real a_dx) override final
Define function.
Definition: CD_EBHelmholtzEddingtonSP1DomainBC.cpp:91
EBHelmholtzEddingtonSP1DomainBC & operator=(const EBHelmholtzEddingtonSP1DomainBC &a_other)=delete
Disallowed - don't see why you would need it.
Class which maps boundary condition types to a side and direction.
Definition: CD_EddingtonSP1DomainBc.H:31
Cell
Enum for distinguishing between cell locations.
Definition: CD_Location.H:30