00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _AMRIO_
00030 #define _AMRIO_
00031 #include "REAL.H"
00032 #ifndef WRAPPER
00033
00034 #include "LevelData.H"
00035 #include "REAL.H"
00036 #include "Vector.H"
00037 #include "FArrayBox.H"
00038 #include "IntVectSet.H"
00039 #include <string>
00040 using std::string;
00041 using std::istream;
00042 #endif
00043
00044 #ifdef HDF5
00045
00046
00065 void
00066 WriteAMRHierarchyHDF5(const string& filename,
00067 const Vector<DisjointBoxLayout>& a_vectGrids,
00068 const Vector<LevelData<FArrayBox>* > & a_vectData,
00069 const Vector<string>& a_vectNames,
00070 const Box& a_domain,
00071 const Real& a_dx,
00072 const Real& a_dt,
00073 const Real& a_time,
00074 const Vector<int>& a_vectRatio,
00075 const int& a_numLevels);
00076
00077
00079
00098 void
00099 WriteAMRHierarchyHDF5(HDF5Handle& handle,
00100 const Vector<DisjointBoxLayout>& a_vectGrids,
00101 const Vector<LevelData<FArrayBox>* > & a_vectData,
00102 const Vector<string>& a_vectNames,
00103 const Box& a_domain,
00104 const Real& a_dx,
00105 const Real& a_dt,
00106 const Real& a_time,
00107 const Vector<int>& a_vectRatio,
00108 const int& a_numLevels);
00109
00110
00112
00126 void
00127 WriteAMRHierarchyHDF5(const string& filename,
00128 const Vector<DisjointBoxLayout>& a_vectGrids,
00129 const Vector<LevelData<FArrayBox>* > & a_vectData,
00130 const Box& a_domain,
00131 const Vector<int>& a_vectRatio,
00132 const int& a_numLevels);
00133
00134
00135
00137
00151 void
00152 WriteAMRHierarchyHDF5(HDF5Handle& handle,
00153 const Vector<DisjointBoxLayout>& a_vectGrids,
00154 const Vector<LevelData<FArrayBox>* > & a_vectData,
00155 const Box& a_domain,
00156 const Vector<int>& a_vectRatio,
00157 const int& a_numLevels);
00158
00159
00160
00161 #ifndef WRAPPER
00162
00163
00189 int
00190 ReadAMRHierarchyHDF5(const string& filename,
00191 Vector<DisjointBoxLayout>& a_vectGrids,
00192 Vector<LevelData<FArrayBox>* > & a_vectData,
00193 Vector<string>& a_vectNames,
00194 Box& a_domain,
00195 Real& a_dx,
00196 Real& a_dt,
00197 Real& a_time,
00198 Vector<int>& a_refRatio,
00199 int& a_numLevels,
00200 const IntVect& a_ghostVector = IntVect::TheZeroVector());
00201
00203
00229 int
00230 ReadAMRHierarchyHDF5(HDF5Handle& handle,
00231 Vector<DisjointBoxLayout>& a_vectGrids,
00232 Vector<LevelData<FArrayBox>* > & a_vectData,
00233 Vector<string>& a_vectNames,
00234 Box& a_domain,
00235 Real& a_dx,
00236 Real& a_dt,
00237 Real& a_time,
00238 Vector<int>& a_refRatio,
00239 int& a_numLevels,
00240 const IntVect& a_ghostVector = IntVect::TheZeroVector());
00241
00243
00265 int
00266 ReadAMRHierarchyHDF5(const string& filename,
00267 Vector<DisjointBoxLayout>& a_vectGrids,
00268 Vector<LevelData<FArrayBox>* > & a_vectData,
00269 Box& a_domain,
00270 Vector<int>& a_refRatio,
00271 int& a_numLevels,
00272 const IntVect& a_ghostVector = IntVect::TheZeroVector());
00273
00274
00276
00298 int
00299 ReadAMRHierarchyHDF5(HDF5Handle& handle,
00300 Vector<DisjointBoxLayout>& a_vectGrids,
00301 Vector<LevelData<FArrayBox>* > & a_vectData,
00302 Box& a_domain,
00303 Vector<int>& a_refRatio,
00304 int& a_numLevels,
00305 const IntVect& a_ghostVector = IntVect::TheZeroVector());
00306
00326 int
00327 ReadEBAMRASCII(const string& filename,
00328 Vector<DisjointBoxLayout>& a_vectGrids,
00329 Vector<LevelData<FArrayBox>* > & a_vectData,
00330 Vector<string>& a_vectNames,
00331 Box& a_domain,
00332 Vector<IntVectSet>& a_coveredCells,
00333 Vector<IntVectSet>& a_multiValuedCells,
00334 Vector<int>& a_refRatio,
00335 int& a_numLevels,
00336 const IntVect& a_ghostVector = IntVect::TheZeroVector());
00337
00338 #endif
00339
00341
00345 void
00346 writeFAB(const FArrayBox* a_dataPtr);
00347
00349
00354 void
00355 viewFAB(const FArrayBox* a_dataPtr);
00356
00358
00362 void
00363 writeFABname(const FArrayBox* a_dataPtr,
00364 const char* a_filename);
00365
00366
00368
00372 void
00373 writeLevel(const LevelData<FArrayBox>* a_dataPtr);
00374
00376
00381 void
00382 viewLevel(const LevelData<FArrayBox>* a_dataPtr);
00383
00385
00391 void
00392 viewLevelNoGhost(const LevelData<FArrayBox>* a_dataPtr);
00393
00394
00396
00400 void
00401 writeLevelname(const LevelData<FArrayBox>* a_dataPtr,
00402 const char* a_filename);
00403
00405
00424 void
00425 WritePartialAMRHierarchyHDF5(const string& filename,
00426 const Vector<DisjointBoxLayout>& a_vectGrids,
00427 const Vector<LevelData<FArrayBox>* > & a_vectData,
00428 const Vector<string>& a_vectNames,
00429 const Box& a_baseDomain,
00430 const Real& a_baseDx,
00431 const Real& a_dt,
00432 const Real& a_time,
00433 const Vector<int>& a_vectRatio,
00434 const Interval& a_levels);
00435
00436
00437
00438
00439
00440 #endif // HDF5
00441
00442
00443 extern void
00444 writeAFabASCII(std::ostream& os, const FArrayBox& fab);
00445
00446
00447 extern void
00448 readAFabASCII(istream& is, FArrayBox& fab);
00449
00450 void writeAFabASCII(std::ostream& os, const FArrayBox& fab);
00451
00452 void readAFabASCII(istream& is, FArrayBox& fab);
00453
00454
00472 void
00473 WriteAMRHierarchyASCII(const string& filename,
00474 const Vector<DisjointBoxLayout>& a_vectGrids,
00475 const Vector<LevelData<FArrayBox>* > & a_vectData,
00476 const Vector<string>& a_vectNames,
00477 const Box& a_domain,
00478 const Real& a_dx,
00479 const Real& a_dt,
00480 const Real& a_time,
00481 const Vector<int>& a_vectRatio,
00482 const int& a_numLevels);
00483
00484
00485
00509 int
00510 ReadAMRHierarchyASCII(const string& filename,
00511 Vector<DisjointBoxLayout>& a_vectGrids,
00512 Vector<LevelData<FArrayBox>* > & a_vectData,
00513 Vector<string>& a_vectNames,
00514 Box& a_domain,
00515 Real& a_dx,
00516 Real& a_dt,
00517 Real& a_time,
00518 Vector<int>& a_vectRatio,
00519 int& a_numLevels,
00520 const IntVect& ghostVector = IntVect::TheZeroVector());
00521
00522 #endif