Chombo + EB  3.2
DirichletConductivityEBBC.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 _DIRICHLETCONDUCTIVITYEBBC_H_
12 #define _DIRICHLETCONDUCTIVITYEBBC_H_
13 
14 #include "RefCountedPtr.H"
15 
16 #include "DirichletPoissonEBBC.H"
17 #include "BaseBCValue.H"
18 #include "NamespaceHeader.H"
19 
20 ///
21 /**
22  */
24 {
25 public:
26  ///
27  virtual void define(const LayoutData<IntVectSet>& a_cfivs,
28  const Real& a_factor);
29 
30  ///
31  virtual void applyEBFlux(EBCellFAB& a_lphi,
32  const EBCellFAB& a_phi,
33  VoFIterator& a_vofit,
34  const LayoutData<IntVectSet>& a_cfivs,
35  const DataIndex& a_dit,
36  const RealVect& a_probLo,
37  const RealVect& a_dx,
38  const Real& a_factor,
39  const bool& a_useHomogeneous,
40  const Real& a_time);
41 
42  ///
44  const EBISLayout& a_layout,
45  const RealVect& a_dx,
46  const IntVect* a_ghostCellsPhi,
47  const IntVect* a_ghostCellsRhs):ConductivityBaseEBBC()
48 
49  {
50  m_bc.construct(a_domain, a_layout, a_dx, a_ghostCellsPhi, a_ghostCellsRhs);
51  }
52 
54  {
55  return &m_fluxStencil;
56  }
57 
58  ///
60 
61  ///
62  virtual void setValue(Real a_value);
63 
64  ///
65  virtual int whichBC()
66  {
67  return 0;
68  };
69 
70  virtual void setOrder(int a_order)
71  {
72  m_bc.setOrder(a_order);
73  }
74 
75  ///
76  virtual void setFunction(RefCountedPtr<BaseBCValue> a_flux);
77 
78  ///
79  virtual void getEBFlux(Real& a_flux,
80  const VolIndex& a_vof,
81  const LevelData<EBCellFAB>& a_phi,
82  const LayoutData<IntVectSet>& a_cfivs,
83  const DataIndex& a_dit,
84  const RealVect& a_probLo,
85  const RealVect& a_dx,
86  const bool& a_useHomogeneous,
87  const Real& a_time,
88  const pair<int,Real>* a_cacheHint=0 );
89 
90 
91  static int s_velComp;
92 
93 private:
96 };
97 
98 ///
100 {
101 public:
102  ///
104 
105  ///
107 
108  virtual void setOrder(int a_order)
109  {
110  m_order = a_order;
111  }
112 
113  ///
114  virtual void setValue(Real a_value);
115 
116  ///
117  virtual void setFunction(RefCountedPtr<BaseBCValue> a_flux);
118 
119  ///
120  virtual DirichletConductivityEBBC* create(const ProblemDomain& a_domain,
121  const EBISLayout& a_layout,
122  const RealVect& a_dx,
123  const IntVect* a_ghostCellsPhi=0,
124  const IntVect* a_ghostCellsRhs=0);
125 
126 private:
129  int m_order;
134 };
135 
136 #include "NamespaceFooter.H"
137 #endif
virtual LayoutData< BaseIVFAB< VoFStencil > > * getFluxStencil(int ivar)
Definition: DirichletConductivityEBBC.H:53
void construct(const ProblemDomain &a_domain, const EBISLayout &a_layout, const RealVect &a_dx, const IntVect *a_ghostCellsPhi=0, const IntVect *a_ghostCellsRhs=0)
Definition: BaseEBBC.H:273
virtual void setFunction(RefCountedPtr< BaseBCValue > a_flux)
virtual void setOrder(int a_order)
Definition: DirichletConductivityEBBC.H:108
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
LayoutData< BaseIVFAB< VoFStencil > > m_fluxStencil
Definition: DirichletConductivityEBBC.H:95
bool m_onlyHomogeneous
Definition: DirichletConductivityEBBC.H:127
bool m_isFunction
Definition: DirichletConductivityEBBC.H:128
virtual void define(const LayoutData< IntVectSet > &a_cfivs, const Real &a_factor)
DirichletConductivityEBBC(const ProblemDomain &a_domain, const EBISLayout &a_layout, const RealVect &a_dx, const IntVect *a_ghostCellsPhi, const IntVect *a_ghostCellsRhs)
Definition: DirichletConductivityEBBC.H:43
virtual void setValue(Real a_value)
Definition: DirichletPoissonEBBC.H:26
RefCountedPtr< LevelData< BaseIVFAB< Real > > > m_data
Definition: DirichletConductivityEBBC.H:132
virtual ~DirichletConductivityEBBC()
Definition: EBCellFAB.H:29
Definition: DirichletConductivityEBBC.H:99
static int s_velComp
Definition: DirichletConductivityEBBC.H:91
virtual void setOrder(int a_order)
double Real
Definition: REAL.H:33
virtual void setOrder(int a_order)
Definition: DirichletConductivityEBBC.H:70
virtual DirichletConductivityEBBC * create(const ProblemDomain &a_domain, const EBISLayout &a_layout, const RealVect &a_dx, const IntVect *a_ghostCellsPhi=0, const IntVect *a_ghostCellsRhs=0)
Real m_value
Definition: DirichletConductivityEBBC.H:130
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
Definition: DataIndex.H:112
Definition: BaseEBBC.H:315
Iterator for all vofs within an IntVectSet and an Ebgraph.
Definition: VoFIterator.H:27
virtual void getEBFlux(Real &a_flux, const VolIndex &a_vof, const LevelData< EBCellFAB > &a_phi, const LayoutData< IntVectSet > &a_cfivs, const DataIndex &a_dit, const RealVect &a_probLo, const RealVect &a_dx, const bool &a_useHomogeneous, const Real &a_time, const pair< int, Real > *a_cacheHint=0)
deprecated interface.
virtual void setFunction(RefCountedPtr< BaseBCValue > a_flux)
int m_order
Definition: DirichletConductivityEBBC.H:129
virtual void setValue(Real a_value)
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
Volume of Fluid Index.
Definition: VolIndex.H:31
RefCountedPtr< BaseBCValue > m_flux
Definition: DirichletConductivityEBBC.H:131
Definition: DirichletConductivityEBBC.H:23
Definition: EBISLayout.H:39
bool m_dataBased
Definition: DirichletConductivityEBBC.H:133
virtual void applyEBFlux(EBCellFAB &a_lphi, const EBCellFAB &a_phi, VoFIterator &a_vofit, const LayoutData< IntVectSet > &a_cfivs, const DataIndex &a_dit, const RealVect &a_probLo, const RealVect &a_dx, const Real &a_factor, const bool &a_useHomogeneous, const Real &a_time)
virtual int whichBC()
Definition: DirichletConductivityEBBC.H:65
DirichletPoissonEBBC m_bc
Definition: DirichletConductivityEBBC.H:94