chombo-discharge
Loading...
Searching...
No Matches
CD_EBHelmholtzElectrostaticDomainBC.H
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
7/*
8 @file CD_EBHelmholtzElectrostaticDomainBC.H
9 @brief Declaration of a domain boundary condition class for EBHelmholtzOp.
10 @author Robert Marskar
11*/
12
13#ifndef CD_EBHELMHOLTZELECTROSTATICDOMAINBC_H
14#define CD_EBHELMHOLTZELECTROSTATICDOMAINBC_H
15
16// Our includes
18#include <CD_EBHelmholtzDomainBC.H>
19#include <CD_NamespaceHeader.H>
20
31{
32public:
37
43
49
55
60
67
74
84 void
85 define(const Location::Cell a_dataLocation,
86 const EBLevelGrid& a_eblg,
87 const RealVect& a_probLo,
88 const Real a_dx) override final;
89
101 void
102 getFaceFlux(BaseFab<Real>& a_faceFlux,
103 const BaseFab<Real>& a_phi,
104 const BaseFab<Real>& a_Bcoef,
105 const int& a_dir,
106 const Side::LoHiSide& a_side,
107 const DataIndex& a_dit,
108 const bool a_useHomogeneous) const override final;
109
121 Real
122 getFaceFlux(const VolIndex& a_vof,
123 const EBCellFAB& a_phi,
124 const EBFaceFAB& a_Bcoef,
125 const int& a_dir,
126 const Side::LoHiSide& a_side,
127 const DataIndex& a_dit,
128 const bool a_useHomogeneous) const override final;
129
136 Real
137 getDiagWeight(const int a_dir, const Side::LoHiSide a_side) const override;
138
139protected:
144
149 std::map<ElectrostaticDomainBc::DomainSide, std::shared_ptr<EBHelmholtzDomainBC>> m_bcObjects;
150};
151
152#include <CD_NamespaceFooter.H>
153
154#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:30
Class for passing electrostatic domain boundary conditions into EBHelmholtzOp.
Definition CD_EBHelmholtzElectrostaticDomainBC.H:31
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:77
ElectrostaticDomainBc m_electrostaticBCs
Electrostatic domain boundary conditions.
Definition CD_EBHelmholtzElectrostaticDomainBC.H:143
EBHelmholtzElectrostaticDomainBC()=delete
Not allowed, use the full constructor.
~EBHelmholtzElectrostaticDomainBC()
Destructor.
Definition CD_EBHelmholtzElectrostaticDomainBC.cpp:71
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.
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:149
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:99
Real getDiagWeight(const int a_dir, const Side::LoHiSide a_side) const override
Routes getDiagWeight to the per-face BC sub-object.
Definition CD_EBHelmholtzElectrostaticDomainBC.cpp:137
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:34
Cell
Enum for distinguishing between cell locations.
Definition CD_Location.H:31