Chombo + EB  3.0
NeumannConductivityEBBC.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 _NEUMANNCONDUCTIVITYEBBC_H_
12 #define _NEUMANNCONDUCTIVITYEBBC_H_
13 
14 #include "RefCountedPtr.H"
15 
16 #include "NeumannPoissonEBBC.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  //no flux stencil for Neumann
32  }
33 
34  virtual void applyEBFlux(EBCellFAB& a_lphi,
35  const EBCellFAB& a_phi,
36  VoFIterator& a_vofit,
37  const LayoutData<IntVectSet>& a_cfivs,
38  const DataIndex& a_dit,
39  const RealVect& a_probLo,
40  const RealVect& a_dx,
41  const Real& a_factor,
42  const bool& a_useHomogeneous,
43  const Real& a_time);
44  ///
45  NeumannConductivityEBBC(const ProblemDomain& a_domain,
46  const EBISLayout& a_layout,
47  const RealVect& a_dx);
48 
50  {
51  return NULL;
52  }
53 
54  ///
55  virtual ~NeumannConductivityEBBC();
56 
57  ///
58  virtual void setValue(Real a_value);
59 
60  ///
61  virtual int whichBC()
62  {
63  return 0;
64  };
65 
66  ///
67  virtual void setFunction(RefCountedPtr<BaseBCValue> a_flux);
68 
69  ///
70  virtual void getEBFlux(Real& a_flux,
71  const VolIndex& a_vof,
72  const LevelData<EBCellFAB>& a_phi,
73  const LayoutData<IntVectSet>& a_cfivs,
74  const DataIndex& a_dit,
75  const RealVect& a_probLo,
76  const RealVect& a_dx,
77  const bool& a_useHomogeneous,
78  const Real& a_time,
79  const pair<int,Real>* a_cacheHint=0 );
80 
81 private:
83 };
84 
85 ///
87 {
88 public:
89  ///
91 
92  ///
94 
95  ///
96  virtual void setValue(Real a_value);
97 
98  ///
99  virtual void setFunction(RefCountedPtr<BaseBCValue> a_flux);
100 
101  ///
102  virtual void setData( RefCountedPtr<LevelData<BaseIVFAB<Real> > >& a_data)
103  {
104  m_data = a_data;
105  m_dataBased = true;
106  }
107 
108  ///
109  virtual NeumannConductivityEBBC* create(const ProblemDomain& a_domain,
110  const EBISLayout& a_layout,
111  const RealVect& a_dx,
112  const IntVect* a_ghostCellsPhi=0,
113  const IntVect* a_ghostCellsRhs=0);
114 
115 private:
120 
123 };
124 
125 #include "NamespaceFooter.H"
126 #endif
virtual LayoutData< BaseIVFAB< VoFStencil > > * getFluxStencil(int ivar)
Definition: NeumannConductivityEBBC.H:49
virtual void define(const LayoutData< IntVectSet > &a_cfivs, const Real &a_factor)
Definition: NeumannConductivityEBBC.H:27
Definition: BaseEBBC.H:261
bool m_dataBased
Definition: BaseEBBC.H:98
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.
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
RefCountedPtr< BaseBCValue > m_flux
Definition: NeumannConductivityEBBC.H:122
NeumannPoissonEBBC m_bc
Definition: NeumannConductivityEBBC.H:82
virtual void setData(RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_data)
Definition: NeumannConductivityEBBC.H:102
virtual int whichBC()
Definition: NeumannConductivityEBBC.H:61
NeumannConductivityEBBC(const ProblemDomain &a_domain, const EBISLayout &a_layout, const RealVect &a_dx)
Definition: NeumannPoissonEBBC.H:23
bool m_isFunction
Definition: NeumannConductivityEBBC.H:117
Definition: EBCellFAB.H:29
double Real
Definition: REAL.H:33
Definition: NeumannConductivityEBBC.H:23
bool m_onlyHomogeneous
Definition: NeumannConductivityEBBC.H:116
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
Definition: DataIndex.H:112
Definition: BaseEBBC.H:303
Iterator for all vofs within an IntVectSet and an Ebgraph.
Definition: VoFIterator.H:27
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
Volume of Fluid Index.
Definition: VolIndex.H:31
Definition: EBISLayout.H:39
bool m_dataBased
Definition: NeumannConductivityEBBC.H:119
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)
RefCountedPtr< LevelData< BaseIVFAB< Real > > > m_data
Definition: BaseEBBC.H:97
virtual ~NeumannConductivityEBBC()
virtual void setValue(Real a_value)
virtual void setFunction(RefCountedPtr< BaseBCValue > a_flux)
RefCountedPtr< LevelData< BaseIVFAB< Real > > > m_data
Definition: NeumannConductivityEBBC.H:118
Real m_value
Definition: NeumannConductivityEBBC.H:121
Definition: NeumannConductivityEBBC.H:86