Chombo + EB  3.0
DirichletViscousTensorDomainBC.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 _DIRICHLETVISCOUSTENSORDOMAINBC_H_
12 #define _DIRICHLETVISCOUSTENSORDOMAINBC_H_
13 
14 #include "RefCountedPtr.H"
15 #include "BaseDomainBC.H"
16 #include "BaseBCFuncEval.H"
17 #include "NamespaceHeader.H"
18 
19 ///
20 /**
21  */
23 {
24 public:
25  ///
26  /**
27  */
29 
30  ///
31  /**
32  */
34 
35 
36  ///
37  /**
38  */
39  virtual void getFaceFlux(BaseFab<Real>& a_faceFlux,
40  const BaseFab<Real>& a_phi,
41  const RealVect& a_probLo,
42  const RealVect& a_dx,
43  const int& a_idir,
44  const Side::LoHiSide& a_side,
45  const DataIndex& a_dit,
46  const Real& a_time,
47  const bool& a_useHomogeneous);
48 
49  ///
50  /**
51  Elliptic solver flux.
52  */
53  virtual void getFaceFlux(Real& a_faceFlux,
54  const VolIndex& a_vof,
55  const int& a_comp,
56  const EBCellFAB& a_phi,
57  const RealVect& a_probLo,
58  const RealVect& a_dx,
59  const int& a_idir,
60  const Side::LoHiSide& a_side,
61  const DataIndex& a_dit,
62  const Real& a_time,
63  const bool& a_useHomogeneous);
64 
65 private:
66  void getDivergenceAndGradient(Real& a_divergence,
67  Real* a_gradient,
68  const int& a_idir,
69  const FaceIndex& a_bndryFace,
70  const VolIndex& a_vof,
71  const EBCellFAB& a_phi,
72  const RealVect& a_probLo,
73  const RealVect& a_dx,
74  const Side::LoHiSide& a_side,
75  const DataIndex& a_dit,
76  const Real& a_time,
77  const bool& a_useHomogeneous);
78 
79 };
80 
82 {
83 public:
84  ///
85  /**
86  */
88 
89  ///
90  /**
91  */
93 
94  ///
95  /**
96  */
97  virtual DirichletViscousTensorDomainBC* create(const ProblemDomain& a_domain,
98  const EBISLayout& a_layout,
99  const RealVect& a_dx);
100 
101  ///
102  /**
103  Sets value of of normal component. Other components set to zero.
104  */
105  virtual void setValue(Real a_value);
106 
107  ///
108  /**
109  */
110  virtual void setFunction(RefCountedPtr<BaseBCFuncEval> a_func);
111 
112 private:
115 
118 };
119 #include "NamespaceFooter.H"
120 #endif
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
Real m_value
Definition: DirichletViscousTensorDomainBC.H:116
Definition: FaceIndex.H:28
Definition: DirichletViscousTensorDomainBC.H:22
RefCountedPtr< BaseBCFuncEval > m_func
Definition: DirichletViscousTensorDomainBC.H:117
void getDivergenceAndGradient(Real &a_divergence, Real *a_gradient, const int &a_idir, const FaceIndex &a_bndryFace, const VolIndex &a_vof, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useHomogeneous)
bool m_onlyHomogeneous
Definition: DirichletViscousTensorDomainBC.H:113
Definition: BaseDomainBC.H:197
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)
Definition: EBCellFAB.H:29
double Real
Definition: REAL.H:33
Definition: BaseDomainBC.H:343
LoHiSide
Definition: LoHiSide.H:27
virtual void setFunction(RefCountedPtr< BaseBCFuncEval > a_func)
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
Definition: DataIndex.H:112
virtual DirichletViscousTensorDomainBC * create(const ProblemDomain &a_domain, const EBISLayout &a_layout, const RealVect &a_dx)
Volume of Fluid Index.
Definition: VolIndex.H:31
virtual void setValue(Real a_value)
Definition: EBISLayout.H:39
bool m_isFunctional
Definition: DirichletViscousTensorDomainBC.H:114
Definition: DirichletViscousTensorDomainBC.H:81