To demonstrate how HDF5 backend is working in Damaris, a few examples have been developed. These examples could be found under the examples/storage folder. Below, you can find a brief description of each example code.
vector: In this example, a one-dimensional array is stored to the HDF5 format using some processes. The example has been developed in such a way to support domains, i.e. each process may write multiple times during an iteration.
2dmesh: Like the vector example, but in a 2D grid. This example is the most complete sample among HDF5 samples. The use of ghost zones and also domains has been demonstrated in this example as well.
3dmesh: This example demonstrates how a 3D mesh could be saved in the HDF5 format.
blocks-hdf5: This example shows how the VisIt blocks sample could be instrumented to save the simulation results to HDF5 format.
mandelbulb-hdf5: Like the previous VisIt example, mandelbulb-hdf5 shows how the mandelbulb example of VisIt could store its dataset in HDF5 format.
To run an example, first make sure that all parameters and values of XML file of the example (number of dedicated cores, size, domains, etc.) are set properly. Afterwards:
- Open the run.sh bash script file.
- Update the value of LD_LIBRARY_PATH and PATH variables in line 2 and 3.
- Uncomment the preferred line to run an specific sample.
- Run the bash file to run the sample.
As a rule of thumb, if you change the number of dedicated cores or the number of client processes (size) in the XML file, make sure that the related value in bash file (the value after -np switch of mpirun) is updated as well. The number of processes that is passed to mpirun should be the sum of dedicated cores and the number of clients (size).
To go to the documentation for the HDF5 backend please follow this link