Nektar++
Class Class Reference

Detailed Description

HDF5 data source using H5 reader utilities.

on HDF5-based FLD files.

This class implements a HDF5 reader/writer based on MPI/O that is designed to operate on a single file across all processors of a simulation. The definition follows vaguely similar lines to XML output but is stored somewhat differently to accommodate parallel reading and writing. At a basic level metadata is organised as follows:

We then define five data sets to contain field data:

The ordering is defined according to the DECOMPOSITION dataset. A ‘decomposition’ in this class is essentially a single field definition with its accompanying data. Data are written into each dataset by the order of each decomposition. Each decomposition contains the following seven integers that define it per field definition per processor:

The number of decompositions is therefore calculated as the field size divided by #MAX_DCMPS which allows us to calculate the offsets of the data for each field definition within the arrays.

XML data source using TinyXML.

on XML FLD files.

This class is the default for Nektar++ output. It reads and writes one XML file per processor that represents the underlying field data. For serial output, the format of an XML file obeys the following structure:

<NEKTAR>
<Metadata>
...
</Metadata>
<ELEMENT FIELDS="..." ...> data1 </ELEMENT>
<ELEMENT FIELDS="..." ...> data2 </ELEMENT>
...
</NEKTAR>

In parallel, each process writes its contributions into an XML file of the form P0000001.fld (where 1 is replaced by the rank of the process) inside a directory with the desired output name. These files only include the ELEMENT data. Metadata are instead stored in a separate Info.xml file, which contains the Metadata and additional tags of the form

<Partition FileName="P0000000.fld"> ID list </Partition>

The ID list enumerates all element IDs on each partition's contribution. For large parallel jobs, this is used to avoid each process reading in every single partition in order to load field data.