10. Specification of the HDF5 File Format#

10.1. General Conditions#

Data must be provided through an HDF5 file, structured as detailed below. When exporting an HDF5 file from NaxToPy, it will follow this same structure.

The HDF5 file distinguishes between two types of information: result data and metadata. Metadata can be either mandatory or optional. Although NaxToPy automatically fills them in during export, it is not required to include all of them when importing.

10.1.1. Conventions for Strings#

All string values in attributes and datasets must be stored as variable-length strings with UTF-8 encoding and NULL-terminated in HDF5:

  • HDF5 type: String, length = variable, cset = H5T_CSET_UTF8, padding = H5T_STR_NULLTERM.

  • Fixed-length strings are not allowed (avoid space-padding and truncation issues).

  • Applies to all textual attributes: SOFTWARE, DESCRIPTION, SUBTITLE, TYPE, PART, etc.

  • Reminder for PART: its value is a string with the exact format (<int>, '<text>').

Variable-length UTF-8 strings in HDF5 (NULL-terminated)

Fig. 1 Example of attributes DESCRIPTION and TYPE as String, length = variable, UTF-8, NULL-terminated.#


10.2. Root File Attributes /#

Attribute

Value

Description

SOFTWARE

"NAXTO" (Optional)

Indicates the software used to generate the file (NAXTO, NAXTOVIEW, NAXTOPY, etc.).

DESCRIPTION

Free text string (Optional)

General description of the HDF5 file content.

CREATION_DATE

"2024-11-29" (Optional)

File creation date.


Root file attributes

Fig. 2 Attributes of the root file /#

10.3. Hierarchical Group Structure#

The HDF5 file follows a hierarchical structure composed of several groups:

10.3.1. Root Group /#

10.3.1.1. NAXTO Group#

Main data container. This group must exist and must be named exactly as shown.

Attribute

Value

Description

VERSION

"2025R0.0" (Optional)

Version of the exported HDF5 schema.

ASSEMBLY

"3.0.25.1" (Optional)

Assembly version number.

NAXTO group attributes

Fig. 3 Attributes of the NAXTO group.#

10.3.2. RESULTS Group#

This group must exist with this exact name. It contains the load cases.

10.3.2.1. Load Case Group X#

This group represents the results corresponding to load case X.

Attribute

Value

Description

DESCRIPTION

"LOAD CASE" (Optional)

Generic description of the load case.

ID

X (Optional)

Numerical identifier of the load case.

SOLUTION_TYPE

101 (Required)

Solution type (e.g., linear static, such as Nastran SOL101). int type.

SUBTITLE

"LC1" (Required)

Load case subtitle.

Load Case attributes

Fig. 4 Attributes of the load case group X.#

10.3.2.2. Increments Y#

This group represents increment Y within the load case.

Attribute

Value

Description

DESCRIPTION

"INCREMENT" (Optional)

Free text.

ID

1 (Optional)

Increment number.

VALUE

3.225 (Required)

Increment value (float, 32 bits).

Increment attributes

Fig. 5 Attributes of increment Y.#

10.3.2.3. Results RESULT_NAME#

This group represents a type of result within an increment.

Attribute

Value

Description

DESCRIPTION

Free text string (Optional)

Result description.

TYPE

"ELEMENTS", "ELEMENT_NODAL", "NODES", "INTEGRATION_POINT" (Required)

Type of result.

Result attributes

Fig. 6 Attributes of result RESULT_NAME.#

Component Schema Consistency#

For any given RESULT_NAME, all child sections must expose datasets with an identical compound schema:

  • Same member names and order (e.g., ID ENTITY, XX, XY, YY, VON_MISES, MAX_PRINCIPAL, MIN_PRINCIPAL, and ID NODE when applicable).

  • Same base types and shapes (e.g., ID NODE must be int[4] in all sections if present).

  • Same floating-point precision for all component members (either all float32 or all float64).

Only the dataset row count and the dataset’s PART attribute may differ between sections. Files that violate this rule are invalid for that result.

All sections under a result share the same components

Fig. 7 Example: under STRESS_NEUBER_1D, sections POINT_A and POINT_B contain datasets with the exact same set of components. Under STRESS_NEUBER_2D, sections Z1 and Z2 also match.#

10.3.2.4. SECCION1 Group#

This group represents a specific result section. There will be as many groups SECCION1, SECCION2, … as there are result sections.

Attribute

Value

Description

DESCRIPTION

Free text string (Optional)

Description of the result set in this section.

Section attributes

Fig. 8 Attributes of the SECCION1 group.#

10.4. Dataset: Name "PART_NAME"#

Inside each section group (e.g., SECCION1), there is a dataset with an arbitrary name, such as PART_NAME.

When creating the dataset, it’s important to ensure that the correct value for the number of dimensions is set to 1. If it is defined as 2, the reading code may fail or misinterpret the structure.

Dimension of the dataset

Fig. 9 Number of dimensions of the dataset.#

Attribute

Value

Description

DESCRIPTION

Free text string (Optional)

Description of the data stored in the dataset.

PART

Free text string (Mandatory)

The value must be provided exactly in the following format: a tuple with two elements enclosed in parentheses, where the first element is an integer and the second is a string that must be enclosed in single quotes. For example: (0, ‘Part_1_1’). It is essential to use the parentheses and single quotes exactly as indicated. Alternative formats, such as using square brackets, double quotes, or omitting the quotes, are not valid.

Dataset attributes

Fig. 10 Attributes of the dataset.#

Column

Type

Description

ID ENTITY

integer (4 bytes)

Element identification number.

ID NODE

vector of 4 integers (4 bytes each)

Associated node ID (only if Type = ELEMENT_NODAL).

XX

scalar / 4 float vector (4 or 8 bytes)

XX result component.

XY

scalar / 4 float vector (4 or 8 bytes)

XY component.

YY

scalar / 4 float vector (4 or 8 bytes)

YY component.

VON_MISES

scalar / 4 float vector (4 or 8 bytes)

Von Mises stresses.

MAX_PRINCIPAL

scalar / 4 float vector (4 or 8 bytes)

Maximum principal stress.

MIN_PRINCIPAL

scalar / 4 float vector (4 or 8 bytes)

Minimum principal stress.

Important Note — Floating precision: All the component values must have the same format, either all as 4-byte or all as 8-byte floats. Mixing formats will result in errors loading the model.

Important Note — Consistency across sections: Within a single RESULT_NAME, the compound schema of all section datasets must be identical (member names, order, types/shapes, and float size). Mixed schemas across sections are not allowed and will be rejected by readers.

Dataset example

Fig. 11 Example of dataset PART_NAME.#

Dataset example - Element Nodal

Fig. 12 Example of dataset PART_NAME - Element Nodal.#