Chombo + EB  3.0
DirichletConductivityDomainBC.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10 
11 #ifndef _DIRICHLETCONDUCTIVITYDOMAINBC_H_
12 #define _DIRICHLETCONDUCTIVITYDOMAINBC_H_
13 
14 #include "RefCountedPtr.H"
15 
17 #include "BaseBCValue.H"
18 #include "NamespaceHeader.H"
19 
21 {
22 public:
24 
26 
27  virtual void setValue(Real a_value);
28 
29  virtual int whichBC(int a_idir,
30  Side::LoHiSide a_side);
31 
32  virtual void setFunction(RefCountedPtr<BaseBCValue> a_flux);
33 
34  virtual void getFaceFlux(BaseFab<Real>& a_faceFlux,
35  const BaseFab<Real>& a_phi,
36  const RealVect& a_probLo,
37  const RealVect& a_dx,
38  const int& a_idir,
39  const Side::LoHiSide& a_side,
40  const DataIndex& a_dit,
41  const Real& a_time,
42  const bool& a_useHomogeneous);
43 
44 
45  virtual bool isDirichletDom(const VolIndex& a_ivof,
46  const VolIndex& a_jvof,
47  const EBCellFAB& a_phi)
48  {
49  return true;
50  }
51 
52  virtual void getFaceFlux(Real& a_faceFlux,
53  const VolIndex& a_vof,
54  const int& a_comp,
55  const EBCellFAB& a_phi,
56  const RealVect& a_probLo,
57  const RealVect& a_dx,
58  const int& a_idir,
59  const Side::LoHiSide& a_side,
60  const DataIndex& a_dit,
61  const Real& a_time,
62  const bool& a_useHomogeneous);
63 
64  virtual void getFaceGradPhi(Real& a_faceFlux,
65  const FaceIndex& a_face,
66  const int& a_comp,
67  const EBCellFAB& a_phi,
68  const RealVect& a_probLo,
69  const RealVect& a_dx,
70  const int& a_idir,
71  const Side::LoHiSide& a_side,
72  const DataIndex& a_dit,
73  const Real& a_time,
74  const bool& a_useAreaFrac,
75  const RealVect& a_centroid,
76  const bool& a_useHomogeneous);
77 
78  virtual void getFaceVel(Real& a_faceFlux,
79  const FaceIndex& a_face,
80  const EBFluxFAB& a_vel,
81  const RealVect& a_probLo,
82  const RealVect& a_dx,
83  const int& a_idir,
84  const int& a_icomp,
85  const Real& a_time,
86  const Side::LoHiSide& a_side,
87  const bool& a_doDivFreeOutflow);
88 
89 private:
92 
95 };
96 
98 {
99 public:
101 
103 
104  virtual void setValue(Real a_value);
105 
106  virtual void setFunction(RefCountedPtr<BaseBCValue> a_flux);
107 
108  virtual DirichletConductivityDomainBC* create(const ProblemDomain& a_domain,
109  const EBISLayout& a_layout,
110  const RealVect& a_dx);
111 
112 private:
115 
118 };
119 
120 #include "NamespaceFooter.H"
121 #endif
virtual int whichBC(int a_idir, Side::LoHiSide a_side)
virtual void setValue(Real a_value)
virtual void getFaceGradPhi(Real &a_faceFlux, const FaceIndex &a_face, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useAreaFrac, const RealVect &a_centroid, const bool &a_useHomogeneous)
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
Definition: DirichletConductivityDomainBC.H:20
Definition: FaceIndex.H:28
Definition: BaseDomainBC.H:305
Real m_value
Definition: DirichletConductivityDomainBC.H:93
Definition: DirichletConductivityDomainBC.H:97
A EBFaceFAB-like container for edge-centered fluxes.
Definition: EBFluxFAB.H:25
bool m_isFunction
Definition: DirichletConductivityDomainBC.H:114
virtual void getFaceFlux(BaseFab< Real > &a_faceFlux, const BaseFab< Real > &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useHomogeneous)
virtual bool isDirichletDom(const VolIndex &a_ivof, const VolIndex &a_jvof, const EBCellFAB &a_phi)
Definition: DirichletConductivityDomainBC.H:45
RefCountedPtr< BaseBCValue > m_func
Definition: DirichletConductivityDomainBC.H:94
bool m_isFunctional
Definition: DirichletConductivityDomainBC.H:91
Definition: EBCellFAB.H:29
double Real
Definition: REAL.H:33
Definition: BaseDomainBC.H:343
Real m_value
Definition: DirichletConductivityDomainBC.H:116
virtual void getFaceVel(Real &a_faceFlux, const FaceIndex &a_face, const EBFluxFAB &a_vel, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const int &a_icomp, const Real &a_time, const Side::LoHiSide &a_side, const bool &a_doDivFreeOutflow)
LoHiSide
Definition: LoHiSide.H:27
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
Definition: DataIndex.H:112
virtual void setFunction(RefCountedPtr< BaseBCValue > a_flux)
bool m_onlyHomogeneous
Definition: DirichletConductivityDomainBC.H:90
bool m_onlyHomogeneous
Definition: DirichletConductivityDomainBC.H:113
Volume of Fluid Index.
Definition: VolIndex.H:31
RefCountedPtr< BaseBCValue > m_flux
Definition: DirichletConductivityDomainBC.H:117
Definition: EBISLayout.H:39