Chombo + EB  3.0
AMRIO.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, Fri, Dec 3, 1999
12 
13 #ifndef _AMRIO_H_
14 #define _AMRIO_H_
15 
16 #include "REAL.H"
17 
18 #ifndef WRAPPER
19 #include "LevelData.H"
20 #include "REAL.H"
21 #include "Vector.H"
22 #include "FArrayBox.H"
23 #include "FluxBox.H"
24 #include "IntVectSet.H"
25 #include "IVSFAB.H"
26 #include "RealVect.H"
27 #include <string>
28 #include "NamespaceHeader.H"
29 using std::string;
30 using std::istream;
31 #endif
32 
33 #ifdef CH_USE_HDF5
34 ///
35 /**
36  Writes hierarchy of levels in HDF5 format. Only available if the
37  preprocessor macro HDF5 is defined at compilation.
38 
39  {\bf Arguments:}\\
40  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 levels
49  (ith entry is refinement ratio between levels i and i + 1).\\
50  a_numLevels : number of levels to output.\\
51 This is blocking.
52 
53 */
54 void
55 WriteAMRHierarchyHDF5(const string& filename,
56  const Vector<DisjointBoxLayout>& a_vectGrids,
57  const Vector<LevelData<FArrayBox>* > & a_vectData,
58  const Vector<string>& a_vectNames,
59  const Box& a_domain,
60  const Real& a_dx,
61  const Real& a_dt,
62  const Real& a_time,
63  const Vector<int>& a_vectRatio,
64  const int& a_numLevels);
65 
66 ///
67 /**
68  Writes hierarchy of levels in HDF5 format. Only available if the
69  preprocessor macro HDF5 is defined at compilation.
70 
71  {\bf Arguments:}\\
72 handle : handle to output to.\\
73  a_vectGrids : grids at each level.\\
74  a_vectData : data at each level.\\
75  a_vectNames: names of variables.\\
76  a_domain : domain at coarsest level.\\
77  a_dx : grid spacing at coarsest level.\\
78  a_dt : time step at coarsest level.\\
79  a_time : time.\\
80  a_vectRatio : refinement ratio at all levels
81  (ith entry is refinement ratio between levels i and i + 1).\\
82  a_numLevels : number of levels to output.\\
83 This is not blocking.
84 
85 */
86 void
88  const Vector<DisjointBoxLayout>& a_vectGrids,
89  const Vector<LevelData<FArrayBox>* > & a_vectData,
90  const Vector<string>& a_vectNames,
91  const Box& a_domain,
92  const Real& a_dx,
93  const Real& a_dt,
94  const Real& a_time,
95  const Vector<int>& a_vectRatio,
96  const int& a_numLevels);
97 
98 ///
99 /**
100  Writes hierarchy of levels in HDF5 format. Only available if the
101  preprocessor macro HDF5 is defined at compilation.
102 
103  {\bf Arguments:}\\
104  filename : file to output to.\\
105  a_vectGrids : grids at each level.\\
106  a_vectData : data at each level.\\
107  a_domain : domain at coarsest level.\\
108  a_vectRatio : refinement ratio at all levels
109  (ith entry is refinement ratio between levels i and i + 1).\\
110  a_numLevels : number of levels to output.\\
111 This is blocking.
112 */
113 void
114 WriteAMRHierarchyHDF5(const string& filename,
115  const Vector<DisjointBoxLayout>& a_vectGrids,
116  const Vector<LevelData<FArrayBox>* > & a_vectData,
117  const Box& a_domain,
118  const Vector<int>& a_vectRatio,
119  const int& a_numLevels);
120 
121 ///
122 /**
123  Writes hierarchy of levels in HDF5 format. Only available if the
124  preprocessor macro HDF5 is defined at compilation.
125 
126  {\bf Arguments:}\\
127  handle : handle to output to.\\
128  a_vectGrids : grids at each level.\\
129  a_vectData : data at each level.\\
130  a_domain : domain at coarsest level.\\
131  a_vectRatio : refinement ratio at all levels
132  (ith entry is refinement ratio between levels i and i + 1).\\
133  a_numLevels : number of levels to output.\\
134 This is not blocking.
135 */
136 void
138  const Vector<DisjointBoxLayout>& a_vectGrids,
139  const Vector<LevelData<FArrayBox>* > & a_vectData,
140  const Box& a_domain,
141  const Vector<int>& a_vectRatio,
142  const int& a_numLevels);
143 
144 #ifndef WRAPPER
145 ///
146 /**
147  Reads hierarchy of levels in HDF5 format. Only available if the
148  preprocessor macro HDF5 is defined at compilation. Returns 0 on success.
149 
150  {\bf Arguments:}\\
151 filename : file to input from.\\
152 a_vectGrids : grids at each level.\\
153 a_vectData : data at each level.\\
154 a_vectNames: names of variables.\\
155 a_domain : domain at coarsest level.\\
156 a_dx : grid spacing at coarsest level.\\
157 a_dt : time step at coarsest level.\\
158 a_time : time.\\
159 a_vectRatio : refinement ratio at all levels
160 (ith entry is refinement ratio between levels i and i + 1).\\
161 a_numLevels : number of levels to read.\\
162 
163 {\bf Returns:} \\
164 status code with values:\\
165 0: success \\
166 -1: bogus number of levels \\
167 -2: bogus number of components \\
168 -3: error in readlevel \\
169 -4: file open failed \\
170 This is blocking
171 */
172 int
173 ReadAMRHierarchyHDF5(const string& filename,
174  Vector<DisjointBoxLayout>& a_vectGrids,
175  Vector<LevelData<FArrayBox>* > & a_vectData,
176  Vector<string>& a_vectNames,
177  Box& a_domain,
178  Real& a_dx,
179  Real& a_dt,
180  Real& a_time,
181  Vector<int>& a_refRatio,
182  int& a_numLevels);
183 
184 ///
185 /**
186  Reads hierarchy of levels in HDF5 format. Only available if the
187  preprocessor macro HDF5 is defined at compilation. Returns 0 on success.
188 
189  {\bf Arguments:}\\
190 handle : handle to input from.\\
191 a_vectGrids : grids at each level.\\
192 a_vectData : data at each level.\\
193 a_vectNames: names of variables.\\
194 a_domain : domain at coarsest level.\\
195 a_dx : grid spacing at coarsest level.\\
196 a_dt : time step at coarsest level.\\
197 a_time : time.\\
198 a_vectRatio : refinement ratio at all levels
199 (ith entry is refinement ratio between levels i and i + 1).\\
200 a_numLevels : number of levels to read.\\
201 
202 {\bf Returns:} \\
203 status code with values:\\
204 0: success \\
205 -1: bogus number of levels \\
206 -2: bogus number of components \\
207 -3: error in readlevel \\
208 -4: file open failed \\
209 This is not blocking
210 */
211 int
213  Vector<DisjointBoxLayout>& a_vectGrids,
214  Vector<LevelData<FArrayBox>* > & a_vectData,
215  Vector<string>& a_vectNames,
216  Box& a_domain,
217  Real& a_dx,
218  Real& a_dt,
219  Real& a_time,
220  Vector<int>& a_refRatio,
221  int& a_numLevels);
222 
223 ///
224 /**
225  Reads hierarchy of levels in HDF5 format. Only available if the
226  preprocessor macro HDF5 is defined at compilation. Returns 0 on success.
227 
228  {\bf Arguments:}\\
229 filename : file to input from.\\
230 a_vectGrids : grids at each level.\\
231 a_vectData : data at each level.\\
232 a_domain : domain at coarsest level.\\
233 a_vectRatio : refinement ratio at all levels
234 (ith entry is refinement ratio between levels i and i + 1).\\
235 a_numLevels : number of levels to read.\\
236 
237 {\bf Returns:} \\
238 status code with values:\\
239 0: success \\
240 -1: bogus number of levels \\
241 -2: bogus number of components \\
242 -3: error in readlevel \\
243 -4: file open failed \\
244 This is blocking.
245 */
246 int
247 ReadAMRHierarchyHDF5(const string& filename,
248  Vector<DisjointBoxLayout>& a_vectGrids,
249  Vector<LevelData<FArrayBox>* > & a_vectData,
250  Box& a_domain,
251  Vector<int>& a_refRatio,
252  int& a_numLevels);
253 
254 ///
255 /**
256  Reads hierarchy of levels in HDF5 format. Only available if the
257  preprocessor macro HDF5 is defined at compilation. Returns 0 on success.
258 
259  {\bf Arguments:}\\
260 handle : handle to input from.\\
261 a_vectGrids : grids at each level.\\
262 a_vectData : data at each level.\\
263 a_domain : domain at coarsest level.\\
264 a_vectRatio : refinement ratio at all levels
265 (ith entry is refinement ratio between levels i and i + 1).\\
266 a_numLevels : number of levels to read.\\
267 
268 {\bf Returns:} \\
269 status code with values:\\
270 0: success \\
271 -1: bogus number of levels \\
272 -2: bogus number of components \\
273 -3: error in readlevel \\
274 -4: file open failed \\
275 This is not blocking.
276 */
277 int
279  Vector<DisjointBoxLayout>& a_vectGrids,
280  Vector<LevelData<FArrayBox>* > & a_vectData,
281  Box& a_domain,
282  Vector<int>& a_refRatio,
283  int& a_numLevels);
284 
285 #endif
286 
287 ///
288 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
289  and then running VisIt with a python script which brings up a data
290  browser by default. The file created uses the Boxes that underlie the
291  IntVectSet. If a_domain is 0, then the domain used in the file is the
292  minBox of a_dataPtr.
293 */
294 void viewIVS(const IntVectSet* a_dataPtr);
295 
296 ///
297 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
298  and then running VisIt with a python script which brings up a data
299  browser by default. If a_domain is 0, then the domain used in the file is the
300  minBox of a_dataPtr.
301 */
302 void viewVectorBox(const Vector<Box>* a_dataPtr);
303 
304 
305 ///
306 /** Writes a plotfile using the same format as WriteAMRHierarchyHDF5, but
307  for a FArrayBox. This is useful for debugging. *a_dataPtr is written
308  to a file named fab.hdf5
309 */
310 void writeFAB(const FArrayBox* a_dataPtr);
311 
312 ///
313 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
314  and then running VisIt with a python script which brings up a data
315  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
316  but for a single FArrayBox. This is useful for debugging.
317 */
318 void viewFAB(const FArrayBox* a_dataPtr);
319 
320 ///
321 /** Make a copy of *a_dataPtr as FArrayBox, then call viewFAB on FArrayBox.
322 */
323 void viewBFI(const BaseFab<int>* a_dataPtr);
324 
325 ///
326 /** Make a copy of *a_dataPtr as FArrayBox, then call viewFAB on FArrayBox.
327 */
328 void viewBFIV(const BaseFab<IntVect>* a_dataPtr);
329 
330 ///
331 /** Make a copy of *a_dataPtr as FArrayBox, then call viewFAB on FArrayBox.
332 */
333 void viewBFRV(const BaseFab<RealVect>* a_dataPtr);
334 
335 ///
336 /** Make a copy of *a_dataPtr as FArrayBox, then call viewFAB on FArrayBox.
337 */
338 void viewIVSFAB(const IVSFAB<Real>* a_dataPtr);
339 
340 ///
341 /** Make a copy of *a_dataPtr as FArrayBox, then call viewFAB on FArrayBox.
342 */
343 void viewIVSFABI(const IVSFAB<int>* a_dataPtr);
344 
345 ///
346 /** Make a copy of *a_dataPtr as FArrayBox, then call viewFAB on FArrayBox.
347 */
348 void viewIVSFABIV(const IVSFAB<IntVect>* a_dataPtr);
349 
350 ///
351 /** Make a copy of *a_dataPtr as FArrayBox, then call viewFAB on FArrayBox.
352 */
353 void viewIVSFABRV(const IVSFAB<RealVect>* a_dataPtr);
354 
355 ///
356 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
357  and then running chombobrowser with a python script which brings up a data
358  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
359  but for a single FArrayBox. This is useful for debugging.
360 */
361 void browseFAB(const FArrayBox* a_dataPtr);
362 
363 ///
364 /** Writes a plotfile using the same format as WriteAMRHierarchyHDF5, but
365  for a BaseFab<Real>. This is useful for debugging. *a_dataPtr is written
366  to a file named fab.hdf5
367 */
368 void
369 writeBFR(const BaseFab<Real>* a_dataPtr);
370 
371 ///
372 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
373  and then running VisIt with a python script which brings up a data
374  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
375  but for a single BaseFab<Real>. This is useful for debugging.
376 */
377 void
378 viewBFR(const BaseFab<Real>* a_dataPtr);
379 
380 ///
381 /** Writes a plotfile using the same format as WriteAMRHierarchyHDF5, but
382  for a FArrayBox. This is useful for debugging. *a_dataPtr is written
383  to the file given by a_filename. If a non-empty Vector of strings is
384  given, they are used as the component names in the HDF5 header; else
385  the names are set to "component_0", "component_1", ....
386 */
387 void
388 writeFABname(const FArrayBox * a_dataPtr,
389  const char * a_filename,
390  const Vector<string> & a_compNames = Vector<string>());
391 
392 ///
393 /** View a modified version of *a_dataPtr where the data are set to zero
394  on the grids of *a_dataFinePtr coarsened by a_refRatio.
395  Write the results to an HDF5 plotfile (to a temporary file)
396  and then run VisIt with a python script which brings up a data
397  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
398  but for a single LevelData<FArrayBox>. This is useful for debugging.
399 */
400 void
401 viewLevelNoFine(const LevelData<FArrayBox>* a_dataPtr,
402  const LevelData<FArrayBox>* a_dataFinePtr,
403  int a_refRatio);
404 
405 ///
406 /** Write a plotfile using the same format as WriteAMRHierarchyHDF5, but
407  for a single LevelData<FArrayBox>. Useful for debugging. *a_dataPtr is
408  written to a file named LDF.hdf5.
409 */
410 void
411 writeLevel(const LevelData<FArrayBox>* a_dataPtr);
412 
413 ///
414 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
415  and then running VisIt with a python script which brings up a data
416  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
417  but for a single LevelData<FArrayBox>. This is useful for debugging.
418 */
419 void
420 viewLevel(const LevelData<FArrayBox>* a_dataPtr);
421 
422 ///
423 /** View fluxBoxes stored by *a_dataPtr by writing them to an HDF5 plotfile (to a temporary file)
424  and then running VisIt with a python script which brings up a data
425  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
426  but for a single LevelData<FArrayBox>. This is useful for debugging.
427  NOTE: the components of \a a_dataPtr are stored in dimension-major order.
428 */
429 void
430 viewFluxLevel(const LevelData<FluxBox>* a_dataPtr);
431 
432 ///
433 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
434  and then running VisIt with a python script which brings up a data
435  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
436  but for a single LevelData<FArrayBox>. This is useful for debugging.
437 */
438 void
439 browseLevel(const LevelData<FArrayBox>* a_dataPtr);
440 
441 ///
442 /** View *a_dataPtr by writing only the interior values (no ghost cell
443  values) to an HDF5 plotfile (to a temporary file)
444  and then running VisIt with a python script which brings up a data
445  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
446  but for a single LevelData<FArrayBox>. This is useful for debugging.
447 */
448 void
449 viewLevelNoGhost(const LevelData<FArrayBox>* a_dataPtr);
450 
451 ///
452 /** View the multilevel dataset *a_dataPtr by writing a to an (temporary)
453  HDF5 plotfile using the same format as WriteAMRHierarchyHDF5,
454  for a Vector<LevelData<FArrayBox>*>, and then running VisIt from a
455  python script to look at the data. Useful for debugging.
456 */
457 void
458 viewVectorLevel(const Vector<LevelData<FArrayBox>*>* a_dataPtr,
459  const Vector<int>* a_refRatios);
460 
461 
462 
463 ///
464 /** Write a plotfile using the same format as WriteAMRHierarchyHDF5, but
465  for a single LevelData<FArrayBox>. Useful for debugging. *a_dataPtr is
466  written to the file given by a_filename.
467 */
468 void
469 writeLevelname(const LevelData<FArrayBox>* a_dataPtr,
470  const char* a_filename);
471 
472 ///
473 /** Write a plotfile using the same format as WriteAMRHierarchyHDF5, but
474  for a Vector<LevelData<FArrayBox>*>. Useful for debugging. *a_dataPtr is
475  written to the file given by a_filename.
476 */
477 void
479  const Vector<int>* a_refRatios,
480  const char* a_filename);
481 
482 ///
483 /** Write a plotfile using the same format as WriteAMRHierarchyHDF5, but
484  for a single DisjointBoxLayout (do this by creating a LevelData<FArrayBox>
485  and then calling writeLevel. Useful for debugging. *a_dataPtr is
486  written to a file named DBL.hdf5.
487 */
488 void
489 writeDBL(const DisjointBoxLayout* a_dataPtr);
490 
491 ///
492 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
493  and then running VisIt with a python script which brings up a data
494  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
495  but for a single DisjointBoxLayout (do this by creating a
496  LevelData<FArrayBox> and then calling writeLevel. This is useful
497  for debugging.
498 */
499 void
500 viewDBL(const DisjointBoxLayout* a_dataPtr);
501 
502 ///
503 /** View *a_dataPtr by writing it to an HDF5 plotfile (to a temporary file)
504  and then running VisIt with a python script which brings up a data
505  browser by default. The file has the same format as WriteAMRHierarchyHDF5,
506  but for a single LevelData<BaseFab<int> >. This is useful for debugging.
507 */
508 void
509 viewLevelBFI(const LevelData<BaseFab<int> >* a_dataPtr);
510 
511 void writeCopier(const Copier* a_copier);
512 
513 void viewCopier(const Copier* a_copier);
514 
515 ///
516 /** Write a plotfile using the same format as WriteAMRHierarchyHDF5, but
517  for a single DisjointBoxLayout (do this by creating a LevelData<FArrayBox>
518  and then calling writeLevel. Useful for debugging. *a_dataPtr is
519  written to the file given by a_filename.
520 */
521 void
522 writeDBLname(const DisjointBoxLayout* a_dataPtr,
523  const char* a_filename);
524 
525 ///
526 /** Write a plotfile with levels that don't necessarily begin with
527 0 (will translate things so that lBase comes out as level 0, etc)
528 Levels in Vector arguments should correspond with actual levels.
529 (and so should be defined for a_levels.begin() through a_levels.end().
530  {\bf Arguments:}\\
531  filename : file to output to.\\
532  a_vectGrids : grids at each level.\\
533  a_vectData : data at each level.\\
534  a_vectNames: names of variables.\\
535  a_domain : domain at base level (given by a_levels.begin()).\\
536  a_dx : grid spacing at base level.\\
537  a_dt : time step at base level.\\
538  a_time : time.\\
539  a_vectRatio : refinement ratio at all levels
540  (ith entry is refinement ratio between levels i and i + 1).\\
541  a_numLevels : number of levels to output.\\
542 This is blocking.
543 
544 */
545 void
546 WritePartialAMRHierarchyHDF5(const string& filename,
547  const Vector<DisjointBoxLayout>& a_vectGrids,
548  const Vector<LevelData<FArrayBox>* > & a_vectData,
549  const Vector<string>& a_vectNames,
550  const Box& a_baseDomain,
551  const Real& a_baseDx,
552  const Real& a_dt,
553  const Real& a_time,
554  const Vector<int>& a_vectRatio,
555  const Interval& a_levels);
556 
557 #endif // CH_USE_HDF5
558 
559 
560 #include "NamespaceFooter.H"
561 #endif
void writeCopier(const Copier *a_copier)
void viewLevelNoFine(const LevelData< FArrayBox > *a_dataPtr, const LevelData< FArrayBox > *a_dataFinePtr, int a_refRatio)
void viewBFR(const BaseFab< Real > *a_dataPtr)
void viewCopier(const Copier *a_copier)
An irregular domain on an integer lattice.
Definition: IntVectSet.H:44
void viewLevelNoGhost(const LevelData< FArrayBox > *a_dataPtr)
void writeFAB(const FArrayBox *a_dataPtr)
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:137
void writeDBL(const DisjointBoxLayout *a_dataPtr)
void viewIVSFAB(const IVSFAB< Real > *a_dataPtr)
void viewBFI(const BaseFab< int > *a_dataPtr)
void browseLevel(const LevelData< FArrayBox > *a_dataPtr)
Definition: IVSFAB.H:32
void writeFABname(const FArrayBox *a_dataPtr, const char *a_filename, const Vector< string > &a_compNames=Vector< string >())
void browseFAB(const FArrayBox *a_dataPtr)
void viewIVSFABI(const IVSFAB< int > *a_dataPtr)
void viewBFIV(const BaseFab< IntVect > *a_dataPtr)
Structure for passing component ranges in code.
Definition: Interval.H:23
int ReadAMRHierarchyHDF5(const string &filename, Vector< DisjointBoxLayout > &a_vectGrids, Vector< LevelData< FArrayBox > * > &a_vectData, Vector< string > &a_vectNames, Box &a_domain, Real &a_dx, Real &a_dt, Real &a_time, Vector< int > &a_refRatio, int &a_numLevels)
void writeDBLname(const DisjointBoxLayout *a_dataPtr, const char *a_filename)
double Real
Definition: REAL.H:33
void viewVectorBox(const Vector< Box > *a_dataPtr)
void viewLevelBFI(const LevelData< BaseFab< int > > *a_dataPtr)
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:31
void viewIVSFABRV(const IVSFAB< RealVect > *a_dataPtr)
void viewIVSFABIV(const IVSFAB< IntVect > *a_dataPtr)
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:465
void viewFAB(const FArrayBox *a_dataPtr)
void writeLevel(const LevelData< FArrayBox > *a_dataPtr)
void writeBFR(const BaseFab< Real > *a_dataPtr)
Handle to a particular group in an HDF file.
Definition: CH_HDF5.H:267
Definition: FArrayBox.H:44
void WritePartialAMRHierarchyHDF5(const string &filename, const Vector< DisjointBoxLayout > &a_vectGrids, const Vector< LevelData< FArrayBox > * > &a_vectData, const Vector< string > &a_vectNames, const Box &a_baseDomain, const Real &a_baseDx, const Real &a_dt, const Real &a_time, const Vector< int > &a_vectRatio, const Interval &a_levels)
void viewBFRV(const BaseFab< RealVect > *a_dataPtr)
void viewDBL(const DisjointBoxLayout *a_dataPtr)
void viewIVS(const IntVectSet *a_dataPtr)
void writeLevelname(const LevelData< FArrayBox > *a_dataPtr, const char *a_filename)
void writeVectorLevelName(const Vector< LevelData< FArrayBox > *> *a_dataPtr, const Vector< int > *a_refRatios, const char *a_filename)
void WriteAMRHierarchyHDF5(const string &filename, const Vector< DisjointBoxLayout > &a_vectGrids, const Vector< LevelData< FArrayBox > * > &a_vectData, const Vector< string > &a_vectNames, const Box &a_domain, const Real &a_dx, const Real &a_dt, const Real &a_time, const Vector< int > &a_vectRatio, const int &a_numLevels)
void viewFluxLevel(const LevelData< FluxBox > *a_dataPtr)
void viewVectorLevel(const Vector< LevelData< FArrayBox > *> *a_dataPtr, const Vector< int > *a_refRatios)
void viewLevel(const LevelData< FArrayBox > *a_dataPtr)