Actual source code: viewerhdf5impl.h

petsc-3.12.1 2019-10-22
Report Typos and Errors

  2: #ifndef __VIEWERHDF5IMPL_H

  5: #include <petscviewerhdf5.h>

  7: #if defined(PETSC_HAVE_HDF5)

  9: #define PetscStackCallHDF5(func,args) do {                        \
 10:     herr_t _status;                                               \
 11:     PetscStackPush(#func);_status = func args;PetscStackPop; if (_status) SETERRQ2(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error in HDF5 call %s() Status %d",#func,(int)_status); \
 12:   } while (0)

 14: #define PetscStackCallHDF5Return(ret,func,args) do {              \
 15:     PetscStackPush(#func);ret = func args;PetscStackPop; if (ret < 0) SETERRQ2(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error in HDF5 call %s() Status %d",#func,(int)ret); \
 16:   } while (0)

 18: typedef struct PetscViewerHDF5GroupList {
 19:   const char       *name;
 20:   struct PetscViewerHDF5GroupList *next;
 21: } PetscViewerHDF5GroupList;

 23: typedef struct {
 24:   char          *filename;
 25:   PetscFileMode btype;
 26:   hid_t         file_id;
 27:   hid_t         dxpl_id;   /* H5P_DATASET_XFER property list controlling raw data transfer (read/write). Properties are modified using H5Pset_dxpl_* functions. */
 28:   PetscInt      timestep;
 29:   PetscViewerHDF5GroupList *groups;
 30:   PetscBool     basedimension2;  /* save vectors and DMDA vectors with a dimension of at least 2 even if the bs/dof is 1 */
 31:   PetscBool     spoutput;  /* write data in single precision even if PETSc is compiled with double precision PetscReal */
 32: } PetscViewer_HDF5;

 34: #endif
 35: #endif