DNS 1-3 Storage Format: Difference between revisions
Line 96: | Line 96: | ||
The following section provides some examples on how to read the data using the h5py interface of python. A first example on how to open the dataset and read the node data and the inputs would be: | The following section provides some examples on how to read the data using the h5py interface of python. A first example on how to open the dataset and read the node data and the inputs would be: | ||
<pre class="brush: python"> | |||
import h5py | import h5py | ||
f = h5py.File('Statistics.h5','r') | f = h5py.File('Statistics.h5','r') | ||
xyz = np.array( f.get('03_Nodes').get('Nodes') ) | xyz = np.array( f.get('03_Nodes').get('Nodes') ) | ||
inp = np.array( f.get('02_Entries').get('Inputs') ) | inp = np.array( f.get('02_Entries').get('Inputs') ) | ||
f.close() | f.close() | ||
</pre> | |||
Then, to retrieve the gradients and the Reynolds stress tensor in an array (indices are these of the list above minus 1) would be: | Then, to retrieve the gradients and the Reynolds stress tensor in an array (indices are these of the list above minus 1) would be: | ||
<pre class="brush: python"> | |||
grad_velocity = inp[:,[17,21,25,18,22,26,19,23,27]].astype(np.double) | grad_velocity = inp[:,[17,21,25,18,22,26,19,23,27]].astype(np.double) | ||
Rij = inp[:,[10,11,13,11,12,14,13,14,15]].astype(np.double) | |||
Rij = inp[:,[10,11,13,11,12,14,13,14,15]].astype(np.double) | </pre> | ||
<br/> | <br/> | ||
---- | ---- |
Revision as of 16:20, 15 February 2021
Storage Format
The data provided is stored in HDF5 format. This can be easily read through the HDF5 library or python's h5py. The dataset consists of a master file which links a number of external files in the following way (in cursive the links to the external files):
- Statistics.h5, master file
- 01_Info
- Dimensions
- 02_Entries
- Inputs
- 01_Output
- AdditionalQuantities
- Convection
- Production
- TurbulentDiffusion01
- TurbulentDiffusion02
- PressureStrain
- Dissipation
- TripleCorrelation
- PressureVelocity
- 03_Nodes
- Nodes
- 01_Info
Each of these external files contain an array of a certain number of positions (1 if scalar, 3 if vectorial or 6 if tensorial with the exception of the velocity triple correlation).
Data file structure
This section provides information in how the data is structured for the different external files mentioned above. The list number minus 1 corresponds to the array position on python (since python starts counting on 0).
Inputs
Additional Quantities
- Taylor microscale
- Kolmogorov length scale
- Kolmorogov time scale
Triple Correlation
Pressure Velocity Correlation
Budget Equation Components
The components of the Reynolds stress budget equation come in the following order (for a generic budget component ):
Reading the data with python
The following section provides some examples on how to read the data using the h5py interface of python. A first example on how to open the dataset and read the node data and the inputs would be:
import h5py f = h5py.File('Statistics.h5','r') xyz = np.array( f.get('03_Nodes').get('Nodes') ) inp = np.array( f.get('02_Entries').get('Inputs') ) f.close()
Then, to retrieve the gradients and the Reynolds stress tensor in an array (indices are these of the list above minus 1) would be:
grad_velocity = inp[:,[17,21,25,18,22,26,19,23,27]].astype(np.double) Rij = inp[:,[10,11,13,11,12,14,13,14,15]].astype(np.double)
Contributed by: Oriol Lehmkuhl, Arnau Miro — Barcelona Supercomputing Center (BSC)
© copyright ERCOFTAC 2024