00001 #ifndef _MY_HDF5OrthoWriter_ 00002 #define _MY_HDF5OrthoWriter_ 00003 #include "hdf5writer.h" 00004 #include "orthomesh.h" 00005 #include "stackvector.h" 00006 #include "hdf5orthoinfo.h" 00012 class HDF5OrthoWriter : public HDF5Writer 00013 { 00014 private: 00015 void collapseCellBlock(OrthoMesh::Cell_It &cell,unsigned blX,unsigned blY,unsigned blZ,StackVector<8,unsigned> &verts); 00016 unsigned adjustBlockSize(unsigned nElems,unsigned blkSize); 00017 std::string _defaultMesh; 00018 bool _supress_output; 00019 protected: 00020 static HDF5OrthoWriter *ptr; 00021 HDF5OrthoWriter(); 00022 ~HDF5OrthoWriter(); 00023 00024 00025 public: 00026 static HDF5OrthoWriter& getHDF5OrthoWriter(); 00027 void writeMesh(string meshName,OrthoMesh &mesh); 00028 void writeDataSet(const VecDouble &vec, std::string datasetName, std::string triaId); 00029 void writeScalarField(const VecDouble &vec, std::string fieldName, std::string triaId=""); 00030 void writeCoarseMesh(string triaName,OrthoMesh &mesh,unsigned blkX,unsigned blkY,unsigned blkZ); 00031 void writeCoarseMeshWithWells(string triaName,OrthoMesh &mesh,unsigned blkX,unsigned blkY,unsigned blkZ); 00032 void createGroup(std::string str); 00033 void close(); 00034 void supressOutput(); 00035 }; 00036 00037 #endif