Chombo + EB + MF  3.2
MFLevelDataOps.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 _MFLEVELDATAOPS_H_
12 #define _MFLEVELDATAOPS_H_
13 
14 #include "IntVect.H"
15 #include "LevelData.H"
16 #include "RefCountedPtr.H"
17 
18 #include "MFCellFAB.H"
19 
20 #include "EBCellFAB.H"
21 // #include "EBCellFactory.H"
22 #include "EBISLayout.H"
23 #include "NamespaceHeader.H"
24 
25 ///
26 /**
27  Repository of useful MF functions over a level. All functions are static so just
28  use MFLevelDataOps::blah(...);
29  */
31 {
32 public:
34  {
35  }
36 
38  {
39  }
40 
41  ///
42  /**
43  */
44  static void setIrregVal(LevelData<MFCellFAB>& a_data,
45  const DisjointBoxLayout& a_dbl,
46  const Vector<EBISLayout>& a_ebisl,
47  const Real& a_value);
48 
49  ///
50  /**
51  */
52  static void setCoveredVal(LevelData<MFCellFAB>& a_lData,
53  const Real& a_value);
54 
55 
56  ///
57  /**
58  */
59  static void setCoveredVal(LevelData<MFCellFAB>& a_lData,
60  const int& a_comp,
61  const Real& a_value);
62 
63  ///
64  /**
65  */
67  const DisjointBoxLayout& a_dbl,
68  const Vector<EBISLayout>& a_ebisl);
69 
70  ///
71  /**
72  */
74  const DisjointBoxLayout& a_dbl,
75  const Vector<EBISLayout>& a_ebisl);
76 
77  ///
78  /**
79  */
80  static void defineLevelData(LevelData<MFCellFAB>& a_levelData,
81  const Vector<EBISLayout>& a_ebisl,
82  const DisjointBoxLayout& a_dbl,
83  const IntVect& a_ghosts,
84  const int& a_nComp);
85 
86  ///
87  /**
88  */
89  static void setToZero(LevelData<MFCellFAB>& a_result);
90 
91 
92  ///
93  /**
94  */
95  static void scale(LevelData<MFCellFAB>& a_lhs,
96  const Real& a_scale) ;
97 
98 
99  ///
100  /**
101  */
102  static void scale(LevelData<MFCellFAB>& a_lhs,
103  const Real& a_scale,
104  const int& a_comp);
105 
106 
107  ///
108  /**
109  */
110  static void setVal(LevelData<MFCellFAB>& a_result,
111  const Real& a_value);
112 
113  ///
114  /**
115  */
116  static void setVal(LevelData<MFCellFAB>& a_result,
117  const Real& a_value,
118  const int& a_comp);
119 
120  ///
121  /**
122  */
123  static void assign(LevelData<MFCellFAB>& a_to,
124  const LevelData<MFCellFAB>& a_from,
125  const Interval& a_toInterva,
126  const Interval& a_fromInterval);
127 
128  ///
129  /**
130  */
131  static void assign(LevelData<MFCellFAB>& a_lhs,
132  const LevelData<MFCellFAB>& a_rhs);
133 
134 
135  ///
136  /**
137  */
138  static void clone(LevelData<MFCellFAB>& a_lhs,
139  const LevelData<MFCellFAB>& a_rhs);
140 
141 
142  ///
143  /**
144  */
145  static void incr( LevelData<MFCellFAB>& a_lhs,
146  const LevelData<MFCellFAB>& a_rhs,
147  const Real& a_scale);
148 
149 
150  ///
151  /**
152  */
153  static void incr( LevelData<MFCellFAB>& a_lhs,
154  const Real& a_scale);
155 
156 
157  ///
158  /**
159  */
160  static void axby( LevelData<MFCellFAB>& a_lhs,
161  const LevelData<MFCellFAB>& a_x,
162  const LevelData<MFCellFAB>& a_y,
163  const Real& a,
164  const Real& b);
165 
166 
167  ///
168  /**
169  */
170  static void axby( LevelData<MFCellFAB>& a_lhs,
171  const LevelData<MFCellFAB>& a_x,
172  const LevelData<MFCellFAB>& a_y,
173  const Real& a,
174  const Real& b,
175  const int& a_lhsComp,
176  const int& a_xComp,
177  const int& a_yComp);
178 
179 
180 
181  ///
182  /**
183  */
184  static void sum(LevelData<MFCellFAB>& a_result,
185  const LevelData<MFCellFAB>& a_in1,
186  const LevelData<MFCellFAB>& a_in2);
187 
188 
189  ///
190  /**
191  */
192  static void addConstant(LevelData<MFCellFAB>& a_data,
193  const Real& a_constant);
194 
195 
196  ///
197  /**
198  */
199  static void power(LevelData<MFCellFAB>& a_result,
200  const Real& a_exponent,
201  const int& a_comp);
202 
203  ///
204  /**
205  */
206  static void product(LevelData<MFCellFAB>& a_result,
207  const LevelData<MFCellFAB>& a_in1,
208  const LevelData<MFCellFAB>& a_in2);
209 
210 
211  ///
212  /**
213  */
214  static void product(LevelData<MFCellFAB>& a_result,
215  const LevelData<MFCellFAB>& a_in1,
216  const LevelData<MFCellFAB>& a_in2,
217  const int& a_rComp,
218  const int& a_1Comp,
219  const int& a_2Comp);
220 
221 
222  ///
223  /**
224  */
225  static void invert(LevelData<MFCellFAB>& a_result,
226  const LevelData<MFCellFAB>& a_in1);
227 
228 
229  ///
230  /**
231  */
232  static void divideVectorByScalar(LevelData<MFCellFAB>& a_vectorOut,
233  const LevelData<MFCellFAB>& a_vectorIn,
234  const LevelData<MFCellFAB>& a_scalar);
235 
236  ///
237  /**
238  */
239  static void vectorMagnitude(LevelData<MFCellFAB>& a_scalarOut,
240  const LevelData<MFCellFAB>& a_vectorIn,
241  const int& a_pval);
242 
243  ///
244  /**
245  */
246  static void divide(LevelData<MFCellFAB>& a_result,
247  const LevelData<MFCellFAB>& a_in1,
248  const LevelData<MFCellFAB>& a_in2);
249 
250 
251  ///
252  /**
253  */
254  static void divide(LevelData<MFCellFAB>& a_result,
255  const LevelData<MFCellFAB>& a_in1,
256  const LevelData<MFCellFAB>& a_in2,
257  const int& a_rComp,
258  const int& a_1Comp,
259  const int& a_2Comp);
260 
261 
262  ///
263  /**
264  */
265  static void kappaWeight(LevelData<MFCellFAB>& a_data);
266 
267 
268  ///
269  /**
270  */
271  static void kappaWeight(MFCellFAB& a_data);
272 
273 
274  ///
275  /**
276  */
277  static void kappaScale(LevelData<MFCellFAB>& a_data,
278  const Real& a_scale);
279 
280 
281 private:
282 
283 };
284 #include "NamespaceFooter.H"
285 #endif
Definition: MFCellFAB.H:22
static void incr(LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs, const Real &a_scale)
static void vectorMagnitude(LevelData< MFCellFAB > &a_scalarOut, const LevelData< MFCellFAB > &a_vectorIn, const int &a_pval)
Definition: MFLevelDataOps.H:30
static void averageMultiVofsToRegFAB(LevelData< MFCellFAB > &a_data, const DisjointBoxLayout &a_dbl, const Vector< EBISLayout > &a_ebisl)
static void axby(LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_x, const LevelData< MFCellFAB > &a_y, const Real &a, const Real &b)
static void setIrregVal(LevelData< MFCellFAB > &a_data, const DisjointBoxLayout &a_dbl, const Vector< EBISLayout > &a_ebisl, const Real &a_value)
MFLevelDataOps()
Definition: MFLevelDataOps.H:33
static void scale(LevelData< MFCellFAB > &a_lhs, const Real &a_scale)
~MFLevelDataOps()
Definition: MFLevelDataOps.H:37
Structure for passing component ranges in code.
Definition: Interval.H:23
static void clone(LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs)
double Real
Definition: REAL.H:33
static void sum(LevelData< MFCellFAB > &a_result, const LevelData< MFCellFAB > &a_in1, const LevelData< MFCellFAB > &a_in2)
static void setToZero(LevelData< MFCellFAB > &a_result)
static void divideVectorByScalar(LevelData< MFCellFAB > &a_vectorOut, const LevelData< MFCellFAB > &a_vectorIn, const LevelData< MFCellFAB > &a_scalar)
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
static void divide(LevelData< MFCellFAB > &a_result, const LevelData< MFCellFAB > &a_in1, const LevelData< MFCellFAB > &a_in2)
static void assign(LevelData< MFCellFAB > &a_to, const LevelData< MFCellFAB > &a_from, const Interval &a_toInterva, const Interval &a_fromInterval)
static void copyToMultiVofsFromRegFAB(LevelData< MFCellFAB > &a_data, const DisjointBoxLayout &a_dbl, const Vector< EBISLayout > &a_ebisl)
static void defineLevelData(LevelData< MFCellFAB > &a_levelData, const Vector< EBISLayout > &a_ebisl, const DisjointBoxLayout &a_dbl, const IntVect &a_ghosts, const int &a_nComp)
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
static void invert(LevelData< MFCellFAB > &a_result, const LevelData< MFCellFAB > &a_in1)
static void kappaWeight(LevelData< MFCellFAB > &a_data)
static void kappaScale(LevelData< MFCellFAB > &a_data, const Real &a_scale)
static void power(LevelData< MFCellFAB > &a_result, const Real &a_exponent, const int &a_comp)
static void product(LevelData< MFCellFAB > &a_result, const LevelData< MFCellFAB > &a_in1, const LevelData< MFCellFAB > &a_in2)
static void setCoveredVal(LevelData< MFCellFAB > &a_lData, const Real &a_value)
static void setVal(LevelData< MFCellFAB > &a_result, const Real &a_value)
static void addConstant(LevelData< MFCellFAB > &a_data, const Real &a_constant)