chombo-discharge
CD_MFHelmholtzNeumannEBBC.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_MFHelmholtzNeumannEBBC.H
8  @brief Declaration of a boundary condition class for MFHelmholtzOp
9  @author Robert Marskar
10 */
11 
12 #ifndef CD_MFHelmholtzNeumannEBBC_H
13 #define CD_MFHelmholtzNeumannEBBC_H
14 
15 // Std includes
16 #include <functional>
17 
18 // Our includes
19 #include <CD_MFHelmholtzEBBC.H>
20 #include <CD_NamespaceHeader.H>
21 
28 {
29 public:
33  MFHelmholtzNeumannEBBC(const int a_phase, const RefCountedPtr<MFHelmholtzJumpBC>& a_jumpBC);
34 
38  virtual ~MFHelmholtzNeumannEBBC();
39 
45  void
46  setDphiDn(const Real a_DphiDn);
47 
53  void
54  setDphiDn(const std::function<Real(const RealVect& a_pos)>& a_DphiDn);
55 
61  void
62  setBxDphiDn(const Real a_BxDphiDn);
63 
69  void
70  setBxDphiDn(const std::function<Real(const RealVect& a_pos)>& a_BxDphiDn);
71 
72 protected:
77 
82 
87 
92 
96  std::function<Real(const RealVect& a_pos)> m_functionDphiDn;
97 
101  virtual void
102  defineSinglePhase() override;
103 
114  virtual void
115  applyEBFluxSinglePhase(VoFIterator& a_singlePhaseVofs,
116  EBCellFAB& a_Lphi,
117  const EBCellFAB& a_phi,
118  const BaseIVFAB<Real>& a_Bcoef,
119  const DataIndex& a_dit,
120  const Real& a_beta,
121  const bool& a_homogeneousPhysBC) const override;
122 };
123 
124 #include <CD_NamespaceFooter.H>
125 
126 #endif
Declaration of an EB boundary condition class for MFHelmholtzOp.
Class for making boundary conditions on the EB in a multifluid context.
Definition: CD_MFHelmholtzEBBC.H:27
Base class for passing Neumann MF boundary conditions into MFHelmholtzOp.
Definition: CD_MFHelmholtzNeumannEBBC.H:28
virtual void defineSinglePhase() override
User define function.
Definition: CD_MFHelmholtzNeumannEBBC.cpp:81
bool m_useConstant
Use constant for BC.
Definition: CD_MFHelmholtzNeumannEBBC.H:81
bool m_multByBco
Multiply by b-coefficient or not.
Definition: CD_MFHelmholtzNeumannEBBC.H:76
Real m_constantDphiDn
Value on MF.
Definition: CD_MFHelmholtzNeumannEBBC.H:91
bool m_useFunction
Use function for BC value.
Definition: CD_MFHelmholtzNeumannEBBC.H:86
void setDphiDn(const Real a_DphiDn)
Set value of dphi/dn on the MF.
Definition: CD_MFHelmholtzNeumannEBBC.cpp:35
std::function< Real(const RealVect &a_pos)> m_functionDphiDn
Value on the MF.
Definition: CD_MFHelmholtzNeumannEBBC.H:96
MFHelmholtzNeumannEBBC(const int a_phase, const RefCountedPtr< MFHelmholtzJumpBC > &a_jumpBC)
Full constructor.
Definition: CD_MFHelmholtzNeumannEBBC.cpp:20
virtual void applyEBFluxSinglePhase(VoFIterator &a_singlePhaseVofs, EBCellFAB &a_Lphi, const EBCellFAB &a_phi, const BaseIVFAB< Real > &a_Bcoef, const DataIndex &a_dit, const Real &a_beta, const bool &a_homogeneousPhysBC) const override
Apply flux single phase.
Definition: CD_MFHelmholtzNeumannEBBC.cpp:92
void setBxDphiDn(const Real a_BxDphiDn)
Set the value of B*dphi/dn on the MF.
Definition: CD_MFHelmholtzNeumannEBBC.cpp:61
virtual ~MFHelmholtzNeumannEBBC()
Destructor.
Definition: CD_MFHelmholtzNeumannEBBC.cpp:29