:orphan:
# PetscViewerHDF5Open
Opens a file for HDF5 input/output as a `PETSCVIEWERHDF5` `PetscViewer`
## Synopsis
```
#include "petscviewerhdf5.h"
PetscErrorCode PetscViewerHDF5Open(MPI_Comm comm, const char name[], PetscFileMode type, PetscViewer *hdf5v)
```
Collective
## Input Parameters
- ***comm -*** MPI communicator
- ***name -*** name of file
- ***type -*** type of file
## Output Parameter
- ***hdf5v -*** `PetscViewer` for HDF5 input/output to use with the specified file
## Options Database Keys
- ***-viewer_hdf5_base_dimension2 -*** turns on (true) or off (false) using a dimension of 2 in the HDF5 file even if the bs/dof of the vector is 1
- ***-viewer_hdf5_sp_output -*** forces (if true) the viewer to write data in single precision independent on the precision of PetscReal
## Notes
Reading is always available, regardless of the mode. Available modes are
```none
FILE_MODE_READ - open existing HDF5 file for read only access, fail if file does not exist [H5Fopen() with H5F_ACC_RDONLY]
FILE_MODE_WRITE - if file exists, fully overwrite it, else create new HDF5 file [H5FcreateH5Fcreate() with H5F_ACC_TRUNC]
FILE_MODE_APPEND - if file exists, keep existing contents [H5Fopen() with H5F_ACC_RDWR], else create new HDF5 file [H5FcreateH5Fcreate() with H5F_ACC_EXCL]
FILE_MODE_UPDATE - same as FILE_MODE_APPEND
```
In case of `FILE_MODE_APPEND` / `FILE_MODE_UPDATE`, any stored object (dataset, attribute) can be selectively overwritten if the same fully qualified name (/group/path/to/object) is specified.
This PetscViewer should be destroyed with PetscViewerDestroy().
## See Also
[](sec_viewers), `PETSCVIEWERHDF5`, `PetscViewerASCIIOpen()`, `PetscViewerPushFormat()`, `PetscViewerDestroy()`, `PetscViewerHDF5SetBaseDimension2()`,
`PetscViewerHDF5SetSPOutput()`, `PetscViewerHDF5GetBaseDimension2()`, `VecView()`, `MatView()`, `VecLoad()`,
`MatLoad()`, `PetscFileMode`, `PetscViewer`, `PetscViewerSetType()`, `PetscViewerFileSetMode()`, `PetscViewerFileSetName()`
## Level
beginner
## Location
src/sys/classes/viewer/impls/hdf5/hdf5v.c
## Examples
src/dm/impls/plex/tutorials/ex5.c
src/dm/tutorials/ex10.c
src/dm/tutorials/ex9.c
src/ksp/ksp/tutorials/ex27.c
src/tao/tutorials/ex3.c
src/vec/vec/tutorials/ex10.c
src/vec/vec/tutorials/ex19.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/classes/viewer/impls/hdf5/hdf5v.c)
[Index of all Viewer routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)