Chombo + EB + MF  3.2
CoveredFaceFAB.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 // ANAG, LBNL
12 
13 #ifndef _COVEREDFACEFAB_H_
14 #define _COVEREDFACEFAB_H_
15 
16 #include "IntVect.H"
17 #include "VolIndex.H"
18 #include "IntVectSet.H"
19 #include "EBISBox.H"
20 #include "BaseIVFAB.H"
21 #include "Vector.H"
22 #include "LoHiSide.H"
23 #include "NamespaceHeader.H"
24 
25 ///holder for data over covered faces
27 {
28 public:
29 
30  ///
31  int nComp() const;
32 
33  ///
34  int getIndex(int a_index, Side::LoHiSide a_sd) const;
35 
36  ///
37  void clear();
38 
39  ///
41 
42  ///
44 
45  ///
46  CoveredFaceFAB(const IntVectSet& a_ivs,
47  const EBISBox& a_ebisBox,
48  int a_nvar);
49 
50  ///
51  void define(const IntVectSet& a_ivs,
52  const EBISBox& a_ebisBox,
53  int a_nvar);
54 
55  ///
56  BaseIVFAB<Real>& operator()
57  (int a_idir, Side::LoHiSide a_sd);
58 
59  ///
60  const BaseIVFAB<Real>& operator()
61  (int a_idir, Side::LoHiSide a_sd) const;
62 
63  ///
64  const IntVectSet& getIVS(int a_idir, Side::LoHiSide a_sd) const;
65 
66  ///
67  bool isDefined() const;
68 
69  ///
70  void setVal(const Real& a_val);
71 
72  ///
73  void
74  copy(const Box& Rfrom, const Interval& Cdest,
75  const Box& Rto, const CoveredFaceFAB& src,
76  const Interval& Csrc);
77 
78 private:
79 
81  {
82  MayDay::Error("Invalid Operator");
83  }
84  void
85  operator= (const CoveredFaceFAB& a_input)
86  {
87  MayDay::Error("Invalid Operator");
88  }
89 
93  int m_nComp;
95 
96 };
97 
98 #include "NamespaceFooter.H"
99 #endif
const IntVectSet & getIVS(int a_idir, Side::LoHiSide a_sd) const
An irregular domain on an integer lattice.
Definition: IntVectSet.H:44
bool m_isDefined
Definition: CoveredFaceFAB.H:94
int m_nComp
Definition: CoveredFaceFAB.H:93
Definition: EBISBox.H:46
const int SpaceDim
Definition: SPACE.H:38
EBISBox m_ebisBox
Definition: CoveredFaceFAB.H:90
int getIndex(int a_index, Side::LoHiSide a_sd) const
void define(const IntVectSet &a_ivs, const EBISBox &a_ebisBox, int a_nvar)
Structure for passing component ranges in code.
Definition: Interval.H:23
double Real
Definition: REAL.H:33
bool isDefined() const
LoHiSide
Definition: LoHiSide.H:27
BaseIVFAB< Real > m_data[2 *SpaceDim]
Definition: CoveredFaceFAB.H:92
static void Error(const char *const a_msg=m_nullString, int m_exitCode=CH_DEFAULT_ERROR_CODE)
Print out message to cerr and exit with the specified exit code.
CoveredFaceFAB(const CoveredFaceFAB &a_input)
Definition: CoveredFaceFAB.H:80
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:469
void copy(const Box &Rfrom, const Interval &Cdest, const Box &Rto, const CoveredFaceFAB &src, const Interval &Csrc)
int nComp() const
holder for data over covered faces
Definition: CoveredFaceFAB.H:26
void operator=(const CoveredFaceFAB &a_input)
Definition: CoveredFaceFAB.H:85
IntVectSet m_sets[2 *SpaceDim]
Definition: CoveredFaceFAB.H:91
void setVal(const Real &a_val)