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