chombo-discharge
CD_EBHelmholtzElectrostaticDomainBC.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_EBHelmholtzElectrostaticDomainBC.H
8  @brief Declaration of a domain boundary condition class for EBHelmholtzOp.
9  @author Robert Marskar
10 */
11 
12 #ifndef CD_EBHelmholtzElectrostaticDomainBC_H
13 #define CD_EBHelmholtzElectrostaticDomainBC_H
14 
15 // Our includes
17 #include <CD_EBHelmholtzDomainBC.H>
18 #include <CD_NamespaceHeader.H>
19 
30 {
31 public:
36 
42 
48 
54 
59 
65  operator=(const EBHelmholtzElectrostaticDomainBC& a_other) = delete;
66 
72  operator=(const EBHelmholtzElectrostaticDomainBC&& a_other) = delete;
73 
82  void
83  define(const Location::Cell a_dataLocation,
84  const EBLevelGrid& a_eblg,
85  const RealVect& a_probLo,
86  const Real a_dx) override final;
87 
99  void
100  getFaceFlux(BaseFab<Real>& a_faceFlux,
101  const BaseFab<Real>& a_phi,
102  const BaseFab<Real>& a_Bcoef,
103  const int& a_dir,
104  const Side::LoHiSide& a_side,
105  const DataIndex& a_dit,
106  const bool a_useHomogeneous) const override final;
107 
118  Real
119  getFaceFlux(const VolIndex& a_vof,
120  const EBCellFAB& a_phi,
121  const EBFaceFAB& a_Bcoef,
122  const int& a_dir,
123  const Side::LoHiSide& a_side,
124  const DataIndex& a_dit,
125  const bool a_useHomogeneous) const override final;
126 
127 protected:
132 
137  std::map<ElectrostaticDomainBc::DomainSide, std::shared_ptr<EBHelmholtzDomainBC>> m_bcObjects;
138 };
139 
140 #include <CD_NamespaceFooter.H>
141 
142 #endif
Declaration of a class for holding function-based boundary conditions on domain edges.
Base class for passing domain boundary conditions into EBHelmholtzOp.
Definition: CD_EBHelmholtzDomainBC.H:29
Class for passing electrostatic domain boundary conditions into EBHelmholtzOp.
Definition: CD_EBHelmholtzElectrostaticDomainBC.H:30
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_EBHelmholtzElectrostaticDomainBC.cpp:76
ElectrostaticDomainBc m_electrostaticBCs
Electrostatic domain boundary conditions.
Definition: CD_EBHelmholtzElectrostaticDomainBC.H:131
EBHelmholtzElectrostaticDomainBC()=delete
Not allowed, use the full constructor.
~EBHelmholtzElectrostaticDomainBC()
Destructor.
Definition: CD_EBHelmholtzElectrostaticDomainBC.cpp:70
EBHelmholtzElectrostaticDomainBC(const EBHelmholtzElectrostaticDomainBC &a_other)=delete
Disallowed – don't see why you would need it.
EBHelmholtzElectrostaticDomainBC & operator=(const EBHelmholtzElectrostaticDomainBC &a_other)=delete
Disallowed - don't see why you would need it.
std::map< ElectrostaticDomainBc::DomainSide, std::shared_ptr< EBHelmholtzDomainBC > > m_bcObjects
BC objects on each domain side.
Definition: CD_EBHelmholtzElectrostaticDomainBC.H:137
EBHelmholtzElectrostaticDomainBC & operator=(const EBHelmholtzElectrostaticDomainBC &&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_EBHelmholtzElectrostaticDomainBC.cpp:98
EBHelmholtzElectrostaticDomainBC(const EBHelmholtzElectrostaticDomainBC &&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_ElectrostaticDomainBc.H:33
Cell
Enum for distinguishing between cell locations.
Definition: CD_Location.H:30