Chombo + EB  3.2
EBAMRIO.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 // DTGraves, Thurs, Aug 16, 2001
12 
13 #ifndef _EBAMRIO_H_
14 #define _EBAMRIO_H_
15 
16 #include "LevelData.H"
17 #include "REAL.H"
18 #include "Vector.H"
19 #include "EBCellFAB.H"
20 #include "IntVectSet.H"
21 #include "EBISBox.H"
22 #include "EBISLayout.H"
23 #include "EBFaceFAB.H"
24 #include "EBFluxFAB.H"
25 #include <string>
26 #include "NamespaceHeader.H"
27 class EBIndexSpace;
28 
29 using std::string;
30 using std::istream;
31 
32 #ifdef CH_USE_HDF5
33 ///
34 /**
35  Writes hierarchy of levels in HDF5 format. Only available if the
36  preprocessor macro HDF5 is defined at compilation. Writes
37  single-valued data using regular Chombo WriteAMRHierarchyHDF5
38 
39  {\bf Arguments:}\\
40  a_filename : file to output to.\\
41  a_vectGrids : grids at each level.\\
42  a_vectData : data at each level.\\
43  a_vectNames: names of variables.\\
44  a_domain : domain at coarsest level.\\
45  a_dx : grid spacing at coarsest level.\\
46  a_dt : time step at coarsest level.\\
47  a_time : time.\\
48  a_vectRatio : refinement ratio at all level.\\
49  a_numLevels : number of levels to output.\\
50  a_replaceCovered: flag for replacing covered values with a_coveredVal.\\
51  a_coveredVal: sets Covered values to these if a_replaceCovered is true.\\
52  (ith entry is refinement ratio between levels i and i + 1).\\
53  This is blocking.
54 */
55 void
56 writeEBHDF5(const string& filename,
57  const Vector<DisjointBoxLayout>& a_vectGrids,
58  const Vector<LevelData<EBCellFAB>* > & a_vectData,
59  const Vector<string>& a_vectNames,
60  const ProblemDomain& a_domain,
61  const Real& a_dx,
62  const Real& a_dt,
63  const Real& a_time,
64  const Vector<int>& a_vectRatio,
65  const int& a_numLevels,
66  const bool& a_replaceCovered,
67  const Vector<Real>& a_coveredValues,
68  IntVect a_ghostVect= IntVect::Zero);
69 
70 /**
71  Two phases (each a Vector<LevelData<EBCellFAB>>) : most general case.
72 */
73 void
74 writeEBHDF5(const string& filename,
75  const Vector<DisjointBoxLayout>& a_vectGrids,
76  const Vector<LevelData<EBCellFAB>* > * a_phase1,
77  const Vector<LevelData<EBCellFAB>* > * a_phase2,
78  const Vector<LevelData<FArrayBox>* > * a_levelSet,
79  const Vector<string>& a_vectNames,
80  const ProblemDomain& a_domain,
81  const Real& a_dx,
82  const Real& a_dt,
83  const Real& a_time,
84  const Vector<int>& a_vectRatio,
85  const int& a_numLevels,
86  const bool& a_replaceCovered,
87  const Vector<Real>& a_coveredValues,
88  IntVect a_ghostVect= IntVect::Zero);
89 
90 ///
91 /**
92  Write a single LevelData<EBCellFAB>.
93  */
94 void
95 writeEBHDF5(const string& a_filename,
96  const DisjointBoxLayout& a_grids,
97  const LevelData<EBCellFAB>& a_data,
98  const Vector<string>& a_vectNames,
99  const ProblemDomain& a_domain,
100  const Real& a_dx,
101  const Real& a_dt,
102  const Real& a_time,
103  const bool& a_replaceCovered,
104  const Vector<Real>& a_coveredValues,
105  IntVect a_ghostVect= IntVect::Zero);
106 ///
107 /**
108  Write a single EBCellFAB.
109  */
110 void
111 writeEBHDF5(const string& a_filename,
112  const Box& a_grid,
113  const EBCellFAB& a_data,
114  const Vector<string>& a_vectNames,
115  const ProblemDomain& a_domain,
116  const Real& a_dx,
117  const Real& a_dt,
118  const Real& a_time,
119  const bool& a_replaceCovered,
120  const Vector<Real>& a_coveredValues,
121  IntVect a_ghostVect= IntVect::Zero);
122 
123 //non-uniform mesh spacing
124 void
125 writeEBHDF5(const string& filename,
126  const Vector<DisjointBoxLayout>& a_vectGrids,
127  const Vector<LevelData<EBCellFAB>* > & a_vectData,
128  const Vector<string>& a_vectNames,
129  const ProblemDomain& a_domain,
130  const RealVect& a_vectDx,
131  const Real& a_dt,
132  const Real& a_time,
133  const Vector<IntVect>& a_vectRatios,
134  const int& a_numLevels,
135  const bool& a_replaceCovered,
136  const Vector<Real>& a_coveredValues,
137  IntVect a_ghostVect= IntVect::Zero);
138 
139 /**
140  Two phases (each a Vector<LevelData<EBCellFAB>>) : most general case.
141 */
142 void
143 writeEBHDF5(const string& filename,
144  const Vector<DisjointBoxLayout>& a_vectGrids,
145  const Vector<LevelData<EBCellFAB>* > * a_phase1,
146  const Vector<LevelData<EBCellFAB>* > * a_phase2,
147  const Vector<LevelData<FArrayBox>* > * a_levelSet,
148  const Vector<string>& a_vectNames,
149  const ProblemDomain& a_domain,
150  const RealVect& a_vectDx,
151  const Real& a_dt,
152  const Real& a_time,
153  const Vector<IntVect>& a_vectRatios,
154  const int& a_numLevels,
155  const bool& a_replaceCovered,
156  const Vector<Real>& a_coveredValues,
157  IntVect a_ghostVect= IntVect::Zero);
158 
159 ///
160 /**
161  Write a single LevelData<EBCellFAB>.
162  */
163 void
164 writeEBHDF5(const string& a_filename,
165  const DisjointBoxLayout& a_grids,
166  const LevelData<EBCellFAB>& a_data,
167  const Vector<string>& a_vectNames,
168  const ProblemDomain& a_domain,
169  const RealVect& a_vectDx,
170  const Real& a_dt,
171  const Real& a_time,
172  const bool& a_replaceCovered,
173  const Vector<Real>& a_coveredValues,
174  IntVect a_ghostVect= IntVect::Zero);
175 ///
176 /**
177  Write a single EBCellFAB.
178  */
179 void
180 writeEBHDF5(const string& a_filename,
181  const Box& a_grid,
182  const EBCellFAB& a_data,
183  const Vector<string>& a_vectNames,
184  const ProblemDomain& a_domain,
185  const RealVect& a_vectDx,
186  const Real& a_dt,
187  const Real& a_time,
188  const bool& a_replaceCovered,
189  const Vector<Real>& a_coveredValues,
190  IntVect a_ghostVect= IntVect::Zero);
191 
192 
193 ///
194 /** Writes a plotfile using the same format as writeEBHDF5, but
195  for a EBCellFAB. This is useful for debugging. *a_dataPtr is written
196  to a file named fab.hdf5
197 */
198 void
199 writeEBFAB(const EBCellFAB* a_dataPtr);
200 
201 ///
202 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
203  and then running ChomboVis with a python script which brings up a data
204  browser by default. The file has the same format as writeEBHDF5,
205  but for a single EBCellFAB. This is useful for debugging.
206 */
207 void
208 viewEBFAB(const EBCellFAB* a_dataPtr);
209 
210 
211 ///
212 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
213  and then running browse with a python script which brings up a data
214  browser by default. The file has the same format as writeEBHDF5,
215  but for a single EBCellFAB. This is useful for debugging.
216 */
217 void
218 browseEBFAB(const EBCellFAB* a_dataPtr);
219 
220 ///
221 /** Writes a plotfile using the same format as writeEBHDF5, but
222  for a EBCellFAB. This is useful for debugging. *a_dataPtr is written
223  to the file given by a_filename.
224 */
225 void
226 writeEBFABname(const EBCellFAB* a_dataPtr,
227  const char* a_filename);
228 
229 ///
230 /** View the face centered, regular data (as cell center data) in *a_dataPtr
231  by writing data on the a_dir face to an HDF5 plotfile (a temporary file).
232  Then, run VisIt with a python script, bringing up a data browser by
233  default. The file has the same format as writeEBHDF5, but the components
234  of the EBFluxFAB are written out successively.
235  This is useful for debugging.
236 */
237 void
238 viewEBFluxLD(const LevelData<EBFluxFAB>* a_dataPtr, int a_dir);
239 
240 ///
241 /** View the faced centered, regular data (as cell center data) in *a_dataPtr
242  by writing it to an HDF5 plotfile (to a temporary file) and then running
243  ChomboVis with a python script which brings up a data browser by default.
244  The file has the same format as writeEBHDF5, but for a single EBFaceFAB.
245  This is useful for debugging.
246 */
247 void writeEBFluxLDname(const LevelData<EBFluxFAB>* a_fluxLD, int a_dir,
248  const char* a_filename);
249 
250 ///
251 /** Write the faced centered, regular data (as cell center data) in *a_dataPtr
252  by writing it to a named HDF5 plotfile
253 */
254 void
255 viewEBFace(const EBFaceFAB* a_dataPtr);
256 
257 
258 ///
259 /** View the faced centered, regular data (as cell center data) in *a_dataPtr
260  by writing it to an HDF5 plotfile (to a temporary file) and then running
261  chombobrowser with a python script which brings up a data browser by default.
262  The file has the same format as writeEBHDF5, but for a single EBFaceFAB.
263  This is useful for debugging.
264 */
265 void
266 browseEBFace(const EBFaceFAB* a_dataPtr);
267 
268 ///
269 /** Write a plotfile using the same format as writeEBHDF5, but
270  for a single LevelData<EBCellFAB>. Useful for debugging. *a_dataPtr is
271  written to a file named EBLDF.hdf5.
272 */
273 void
274 writeEBLevel(const LevelData<EBCellFAB>* a_dataPtr);
275 
276 ///
277 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
278  and then running ChomboVis with a python script which brings up a data
279  browser by default. The file has the same format as writeEBHDF5,
280  but for a single LevelData<EBCellFAB>. This is useful for debugging.
281 */
282 void
283 viewEBLevel(const LevelData<EBCellFAB>* a_dataPtr);
284 
285 ///
286 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
287  and then running chombobrowser with a python script which brings up a data
288  browser by default. The file has the same format as writeEBHDF5,
289  but for a single LevelData<EBCellFAB>. This is useful for debugging.
290 */
291 void
292 browseEBLevel(const LevelData<EBCellFAB>* a_dataPtr);
293 
294 ///
295 /** Write a plotfile using the same format as writeEBHDF5, but
296  for a single LevelData<EBCellFAB>. Useful for debugging. *a_dataPtr is
297  written to the file given by a_filename.
298 */
299 void
300 writeEBLevelname(const LevelData<EBCellFAB>* a_dataPtr,
301  const char* a_filename);
302 
303 
304 ///saner programmatic interface
305 void
307  const std::string & a_filename);
308 
309 ///
310 /** Write a plotfile using writeEBHDF5. Useful for debugging. *a_dataPtr is
311  written to a file named EBAMR.hdf5.
312 */
313 void
314 writeEBAMR(const Vector<LevelData<EBCellFAB>* >* a_dataPtr);
315 
316 ///
317 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
318  and then running ChomboVis with a python script which brings up a data
319  browser by default. This is useful for debugging.
320 */
321 void
322 viewEBAMR(const Vector<LevelData<EBCellFAB>* >* a_dataPtr);
323 
324 ///
325 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
326  and then running VisIt. This is useful for debugging.
327 */
328 void
329 visEBAMR(const Vector<LevelData<EBCellFAB>* >* a_dataPtr);
330 
331 ///
332 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
333  and then running chombobrowser with a python script which brings up a data
334  browser by default. This is useful for debugging.
335 */
336 void
337 browseEBAMR(const Vector<LevelData<EBCellFAB>* >* a_dataPtr);
338 
339 ///
340 /** Write a plotfile using writeEBHDF5. Useful for debugging. *a_dataPtr is
341  written to the file given by a_filename.
342 */
343 void
344 writeEBAMRname(const Vector<LevelData<EBCellFAB>* >* a_dataPtr,
345  const char* a_filename);
346 
347 
348 ///
349 /** Writes a plotfile using the basic Chombovis format, but
350  for a BaseIVFAB<Real>. This is somewhat limited in functionality,
351  since all it does is copy the BaseIVFAB to a FArrayBox in the appropriate
352  cells, and then call writeFAB. This is useful for debugging.
353  *a_dataPtr is written to a file named ivfab.hdf5
354 
355 */
356 void
357 writeIVFAB(const BaseIVFAB<Real>* a_dataPtr);
358 
359 ///
360 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
361  using writeIVFAB and then running ChomboVis with a python script which
362  brings up a data browser by default. The file has the same format
363  as writeEBHDF5, but for a single EBCellFAB. This is useful for
364  debugging.
365 */
366 void
367 viewIVFAB(const BaseIVFAB<Real>* a_dataPtr);
368 
369 
370 ///
371 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
372  and then running browse with a python script which brings up a data
373  browser by default. The file has the same format as writeEBHDF5,
374  but for a single BaseIVFAB<Real>. This is useful for debugging.
375 */
376 void
377 browseIVFAB(const BaseIVFAB<Real>* a_dataPtr);
378 
379 ///
380 /** Writes a plotfile using the same format as writeEBHDF5, but
381  for a BaseIVFAB<Real>. This is useful for debugging.
382  *a_dataPtr is written to the file given by a_filename.
383 */
384 void
385 writeIVFABname(const BaseIVFAB<Real>* a_dataPtr,
386  const char* a_filename);
387 
388 
389 ///
390 /** Write a plotfile using the same format as writeLevel, but
391  for a single LevelData<BaseIVFAB<Real> >. Useful for debugging.
392  *a_dataPtr is written to a file named IVLDF.hdf5.
393 */
394 void
395 writeIVLevel(const LevelData<BaseIVFAB<Real> >* a_dataPtr);
396 
397 ///
398 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
399  and then running ChomboVis with a python script which brings up a data
400  browser by default. The file has the same format as writeEBHDF5,
401  but for a single LevelData<BaseIVFAB<Real> >. This is useful for
402  debugging.
403 */
404 void
405 viewIVLevel(const LevelData<BaseIVFAB<Real> >* a_dataPtr);
406 
407 ///
408 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
409  and then running chombobrowser with a python script which brings up a data
410  browser by default. The file has the same format as writeEBHDF5,
411  but for a single LevelData<BaseIVFAB<Real> >. This is useful for
412  debugging.
413 */
414 void
415 browseIVLevel(const LevelData<BaseIVFAB<Real> >* a_dataPtr);
416 
417 ///
418 /** Write a plotfile using the same format as writeEBHDF5, but
419  for a single LevelData<BaseIVFAB<Real> >. Useful for debugging.
420  *a_dataPtr is
421  written to the file given by a_filename.
422 */
423 void
424 writeIVLevelname(const LevelData<BaseIVFAB<Real> >* a_dataPtr,
425  const char* a_filename);
426 
427 void
428 createEBFile(HDF5Handle& a_handle,
429  const std::string& a_filename,
430  int a_numLevels,
431  const Vector<int>& a_refRatios,
432  const ProblemDomain& a_coarseDomain,
433  const RealVect& a_coarseDx,
434  const IntVect& a_ghost);
435 
436 void
437 createEBFile(HDF5Handle& a_handle,
438  const std::string& a_filename,
439  int a_numLevels,
440  const Vector<int>& a_refRatios,
441  const ProblemDomain& a_coarseDomain,
442  const RealVect& a_origin,
443  const RealVect& a_coarseDx,
444  const RealVect& a_aspect,
445  const IntVect& a_ghost);
446 
447 void
448 headerEBFile(HDF5Handle& a_handle,
449  int a_numLevels,
450  const Vector<int>& a_refRatios,
451  const ProblemDomain& a_coarseDomain,
452  const RealVect& a_coarseDx,
453  const IntVect& a_ghost);
454 
455 void
456 headerEBFile(HDF5Handle& a_handle,
457  int a_numLevels,
458  const Vector<int>& a_refRatios,
459  const ProblemDomain& a_coarseDomain,
460  const RealVect& a_origin,
461  const RealVect& a_coarseDx,
462  const RealVect& a_aspect,
463  const IntVect& a_ghost);
464 
465 void
467  const Vector<std::string>& a_names);
468 void
470  const Vector<std::string>& a_names);
471 
472 void
473 writeFaceCenteredNames(HDF5Handle& a_handle, int a_direction,
474  const Vector<std::string>& a_names);
475 
476 /// if no CellCenteredNames have been assigned, then dummy values of CC1..CCn are set
477 
478 void
479 writeCellCentered(HDF5Handle& a_handle,
480  int a_level,
481  const LevelData<EBCellFAB>* a_data,
482  Interval interval = Interval());
483 
484 void
485 writeCellCentered(HDF5Handle& a_handle,
486  int a_level,
487  const LevelData<FArrayBox>* a_data,
488  Interval interval = Interval());
489 
490 void
491 writeNodeCentered(HDF5Handle& a_handle,
492  int a_level,
493  const LevelData<FArrayBox>* a_data,
494  Interval interval = Interval());
495 
496 void
497 writeFaceCentered(HDF5Handle& a_handle,
498  int a_level,
499  int a_direction,
500  const LevelData<EBFaceFAB>* a_data,
501  Interval interval = Interval());
502 
503 void
504 metaDataEBFile(HDF5Handle & a_handle,
505  int & a_numLevels,
506  Vector<int> & a_refRatios,
507  ProblemDomain & a_coarseDomain,
508  IntVect & a_ghost);
509 
510 void
511 readCellCentered(HDF5Handle& a_handle,
512  int a_level,
513  const EBIndexSpace* eb,
514  const int ebghost,
515  LevelData<EBCellFAB>* a_data);
516 
517 void
518 setWhichCellIndex(int a_whichCellIndex);
519 
520 int
522 
523 void
524 setCoveredCellValue(Real a_coveredCellValue);
525 
526 Real
528 
529 void multiFaceValues(const EBFaceFAB* a_face,
530  const int a_side,
531  const int a_iv0,
532  const int a_iv1,
533  const int a_iv2);
534 
535 void multiCellValues(const EBCellFAB* a_face,
536  const int a_iv0,
537  const int a_iv1,
538  const int a_iv2);
539 
540 #endif //CH_USE_HDF5
541 
542 #include "NamespaceFooter.H"
543 #endif
void viewIVFAB(const BaseIVFAB< Real > *a_dataPtr)
Real getCoveredCellValue()
void browseEBFace(const EBFaceFAB *a_dataPtr)
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
Definition: EBIndexSpace.H:50
void viewEBLevel(const LevelData< EBCellFAB > *a_dataPtr)
void writeIVFAB(const BaseIVFAB< Real > *a_dataPtr)
void writeEBHDF5(const string &filename, const Vector< DisjointBoxLayout > &a_vectGrids, const Vector< LevelData< EBCellFAB > * > &a_vectData, const Vector< string > &a_vectNames, const ProblemDomain &a_domain, const Real &a_dx, const Real &a_dt, const Real &a_time, const Vector< int > &a_vectRatio, const int &a_numLevels, const bool &a_replaceCovered, const Vector< Real > &a_coveredValues, IntVect a_ghostVect=IntVect::Zero)
void visEBAMR(const Vector< LevelData< EBCellFAB > * > *a_dataPtr)
void browseEBFAB(const EBCellFAB *a_dataPtr)
void browseEBLevel(const LevelData< EBCellFAB > *a_dataPtr)
void browseIVFAB(const BaseIVFAB< Real > *a_dataPtr)
void writeEBAMRname(const Vector< LevelData< EBCellFAB > * > *a_dataPtr, const char *a_filename)
void writeIVLevelname(const LevelData< BaseIVFAB< Real > > *a_dataPtr, const char *a_filename)
void writeIVLevel(const LevelData< BaseIVFAB< Real > > *a_dataPtr)
void metaDataEBFile(HDF5Handle &a_handle, int &a_numLevels, Vector< int > &a_refRatios, ProblemDomain &a_coarseDomain, IntVect &a_ghost)
void browseIVLevel(const LevelData< BaseIVFAB< Real > > *a_dataPtr)
void writeEBFAB(const EBCellFAB *a_dataPtr)
void writeEBLevelname(const LevelData< EBCellFAB > *a_dataPtr, const char *a_filename)
Definition: EBFaceFAB.H:28
void writeEBAMR(const Vector< LevelData< EBCellFAB > * > *a_dataPtr)
void viewEBFluxLD(const LevelData< EBFluxFAB > *a_dataPtr, int a_dir)
void writeEBFluxLDname(const LevelData< EBFluxFAB > *a_fluxLD, int a_dir, const char *a_filename)
void viewEBFAB(const EBCellFAB *a_dataPtr)
void writeEBLevel(const LevelData< EBCellFAB > *a_dataPtr)
void multiCellValues(const EBCellFAB *a_face, const int a_iv0, const int a_iv1, const int a_iv2)
Structure for passing component ranges in code.
Definition: Interval.H:23
void writeFaceCenteredNames(HDF5Handle &a_handle, int a_direction, const Vector< std::string > &a_names)
Definition: EBCellFAB.H:29
void writeNodeCenteredNames(HDF5Handle &a_handle, const Vector< std::string > &a_names)
double Real
Definition: REAL.H:33
void readCellCentered(HDF5Handle &a_handle, int a_level, const EBIndexSpace *eb, const int ebghost, LevelData< EBCellFAB > *a_data)
void browseEBAMR(const Vector< LevelData< EBCellFAB > * > *a_dataPtr)
void headerEBFile(HDF5Handle &a_handle, int a_numLevels, const Vector< int > &a_refRatios, const ProblemDomain &a_coarseDomain, const RealVect &a_coarseDx, const IntVect &a_ghost)
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
void writeCellCentered(HDF5Handle &a_handle, int a_level, const LevelData< EBCellFAB > *a_data, Interval interval=Interval())
if no CellCenteredNames have been assigned, then dummy values of CC1..CCn are set ...
void writeCellCenteredNames(HDF5Handle &a_handle, const Vector< std::string > &a_names)
void setCoveredCellValue(Real a_coveredCellValue)
static const IntVect Zero
Definition: IntVect.H:654
void setWhichCellIndex(int a_whichCellIndex)
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:465
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
void writeIVFABname(const BaseIVFAB< Real > *a_dataPtr, const char *a_filename)
void writeEBFABname(const EBCellFAB *a_dataPtr, const char *a_filename)
void viewEBFace(const EBFaceFAB *a_dataPtr)
Handle to a particular group in an HDF file.
Definition: CH_HDF5.H:294
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
void writeNodeCentered(HDF5Handle &a_handle, int a_level, const LevelData< FArrayBox > *a_data, Interval interval=Interval())
void viewEBAMR(const Vector< LevelData< EBCellFAB > * > *a_dataPtr)
void multiFaceValues(const EBFaceFAB *a_face, const int a_side, const int a_iv0, const int a_iv1, const int a_iv2)
void writeFaceCentered(HDF5Handle &a_handle, int a_level, int a_direction, const LevelData< EBFaceFAB > *a_data, Interval interval=Interval())
void createEBFile(HDF5Handle &a_handle, const std::string &a_filename, int a_numLevels, const Vector< int > &a_refRatios, const ProblemDomain &a_coarseDomain, const RealVect &a_coarseDx, const IntVect &a_ghost)
void writeEBLevelName(const LevelData< EBCellFAB > &a_data, const std::string &a_filename)
saner programmatic interface
int getWhichCellIndex()
void viewIVLevel(const LevelData< BaseIVFAB< Real > > *a_dataPtr)