HDF5 Data Types
An HDF5 is a binary file, containing model and result data, in a Hierarchical Data Format.
In the database, the datasets are stored in a hierarchical structure, making it easy to add, remove, or update dataset in applications. The database supports high precision, compression, and unlimited amount of data. Its open format and multiple programming languages support make it ideal for FEA applications.
OptiStruct HDF5 output is available in a .h5 file format.
Supported Output Requests
For details regarding supported outputs, refer to the .h5 file.
Data Types
<typedef>
,
<group>
and <dataset>
. The following is
a brief overview of the structure of HDF5 data in OptiStruct.Supported Group Names
The data in an HDF5 file is hierarchically structured in the form of groups. The most basic form of data in the tree is called a dataset. The following tables summarize the currently supported groups and their relevant datasets.
OptiStruct INPUT Group
Data Set Name | Field | Type | Description |
---|---|---|---|
CORD1C | CID | integer | Coordinate system identification number |
G1 | integer | Grid point IDs to define the coordinate system | |
G2 | integer | ||
G3 | integer | ||
DOMAIN_ID | integer | Domain identifier | |
CORD1R | CID | integer | Coordinate system identification number |
G1 | integer | Grid point IDs to define the coordinate system | |
G2 | integer | ||
G3 | integer | ||
DOMAIN_ID | integer | Domain identifier | |
CORD1S | CID | integer | Coordinate system identification number |
G1 | integer | Grid point IDs to define the coordinate system | |
G2 | integer | ||
G3 | integer | ||
DOMAIN_ID | integer | Domain identifier | |
CORD2C | CID | integer | Coordinate system identification number |
RID | integer | Reference coordinate system identification number | |
A1 | double | Grid point IDs to define the coordinate system | |
A2 | double | ||
A3 | double | ||
B1 | double | ||
B2 | double | ||
B3 | double | ||
C1 | double | ||
C2 | double | ||
C3 | double | ||
DOMAIN_ID | integer | Domain identifier | |
CORD2R | CID | integer | Coordinate system identification number |
RID | integer | Reference coordinate system identification number | |
A1 | double | Grid point IDs to define the coordinate system | |
A2 | double | ||
A3 | double | ||
B1 | double | ||
B2 | double | ||
B3 | double | ||
C1 | double | ||
C2 | double | ||
C3 | double | ||
DOMAIN_ID | integer | Domain identifier | |
CORD2S | CID | integer | Coordinate system identification |
RID | integer | Reference coordinate system identification | |
A1 | double | Grid point IDs to define the coordinate system | |
A2 | double | ||
A3 | double | ||
B1 | double | ||
B2 | double | ||
B3 | double | ||
C1 | double | ||
C2 | double | ||
C3 | double | ||
DOMAIN_ID | integer | Domain identifier | |
TRANSFORMATION/IDENTITY | CID | integer | Coordinate system identification number |
TYPE | integer |
Type of coordinate system
|
|
IINDEX | integer | Represents the starting position of the I-data table | |
RINDEX | integer | Represents the starting position of the R-data table | |
DOMAIN_ID | integer | Domain identifier | |
TRANSFORMATION/RDATA | DATA | double |
For every twelve consecutive data values, the first three elements denote X, Y and Z coordinates of the origin in a CP coordinate system. The next nine elements denote the components of the transformation matrix in vector form. |
Data Set Name | Field | Type | Description |
---|---|---|---|
CBAR | EID | integer | Element identification number |
PID | integer | Property identification number | |
GA | integer | Grid point identification numbers of connection points | |
GB | integer | ||
FLAG | integer | Orientation vector option
|
|
X1 | double | Components of vector v, at end A, measured at end A, parallel to the components of the displacement coordinate system for GA, or the basic coordinate system, to determine (with the vector from end A to end B) the orientation of the element coordinate system for the BAR element. | |
X2 | double | ||
X3 | double | ||
G0 | integer | Grid point identification number to optionally supply X1, X2, X3 | |
PA | integer | Pin flag for bar end A | |
PB | integer | Pin flag for bar end B | |
W1A | double | Components of offset vectors wa and wb in displacement coordinate systems at points GA and GB, respectively, or in the element coordinate system. | |
W2A | double | ||
W3A | double | ||
W1B | double | ||
W2B | double | ||
W3B | double | ||
DOMAIN_ID | integer | Domain identifier | |
CBEAM | EID | integer | Element identification number |
PID | integer | Property identification number | |
GA | integer | Grid point identification numbers of connection points | |
GB | integer | ||
SA | integer | Currently unused | |
SB | integer | ||
X | double | Components of the orientation vector (from X1, X2 and X3) | |
G0 | integer | Grid point identification number to optionally supply X1, X2, X3 | |
F | integer | Flag to indicate the existence of G0
|
|
PA | integer | Pin flag for beam end A | |
PB | integer | Pin flag for beam end B | |
WA | double | Components of offset vectors, measured in the displacement coordinate systems at grid points A and B or in the element coordinate system, from the grid points to the end points of the axis of shear center. | |
WB | double | ||
DOMAIN_ID | integer | Domain identifier | |
CBUSH | EID | integer | Element identification number |
PID | integer | Property identification number | |
GA | integer | Grid point identification number of the first connection point | |
GB | integer | Grid point identification number of the second connection point | |
FLAG | integer | Orientation vector option
|
|
X1 | double | Components of the orientation vector from GA in the displacement coordinate system of GA | |
X2 | double | ||
X3 | double | ||
G0 | integer | Alternate method to supply orientation vector using grid point G0 | |
CID | integer | Element coordinate system identification number | |
S | double | Location of spring-damper as a fraction along the line segment between GA and GB | |
OCID | integer | Coordinate system identification for spring-damper offset | |
S1 | double | Components of the spring-damper offset in the OCID coordinate system | |
S2 | double | ||
S3 | double | ||
DOMAIN_ID | integer | Domain identifier | |
CELAS1 | EID | integer | Element identification number |
PID | integer | Property entry identification number | |
G1 | double | Geometric grid point or scalar point identification number | |
G2 | double | ||
C1 | double | Component number in the displacement coordinate system specified by the CD entry of the GRID data | |
C2 | double | ||
DOMAIN_ID | integer | Domain identifier | |
CELAS2 | EID | integer | Unique element identification number |
K | double | Spring stiffness | |
G1 | double | Geometric grid point or scalar point identification number | |
G2 | double | ||
C1 | double | Component number in the displacement coordinate system specified by the CD entry of the GRID data | |
C2 | double | ||
GE | double | Damping coefficient | |
S | double | Stress coefficient | |
DOMAIN_ID | integer | Domain identifier | |
CHEXA | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Grid point identification numbers of connection points | |
DOMAIN_ID | integer | Domain identifier | |
CPENTA | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Grid point identification numbers of connection points | |
DOMAIN_ID | integer | Domain identifier | |
CQUAD4 | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Grid point identification numbers of connection points | |
THETA | double | Material orientation angle in degrees | |
ZOFFS | double | Offset from the plane defined by element grid points to the shell reference plane | |
TFLAG | integer | Flag to indicate the existence of T
|
|
T | double | Thickness of the element at the grid points | |
MCID | integer | Material coordinate system identification number | |
DOMAIN_ID | integer | Domain identifier | |
CQUAD8 | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Grid point identification numbers of connection points | |
THETA | double | Material orientation angle in degrees | |
ZOFFS | double | Offset from the plane defined by element grid points to the shell reference plane | |
TFLAG | integer | Flag to indicate the existence of T
|
|
T | double | Thickness of the element at the grid points | |
MCID | integer | Material coordinate system identification number | |
DOMAIN_ID | integer | Domain identifier | |
CROD | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Grid point identification numbers of the connection points | |
DOMAIN_ID | integer | Domain identifier | |
CSHEAR | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Grid point identification numbers of the connection points | |
DOMAIN_ID | integer | Domain identifier | |
CTETRA | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Connected grid points identification number | |
DOMAIN_ID | integer | Domain identifier | |
CTRIA3 | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Connected grid points identification number | |
THETA | double | Material orientation angle in degrees | |
ZOFFS | double | Offset from the plane defined by element grid points to the shell reference plane | |
TFLAG | integer | Flag to indicate the existence of T
|
|
T | double | Thickness of the element at the grid points | |
MCID | integer | Material coordinate system identification number | |
DOMAIN_ID | integer | Domain identifier | |
CTRIA6 | EID | integer | Element identification number |
PID | integer | Property identification number | |
G | integer | Connected grid points identification number | |
THETA | double | Material orientation angle in degrees | |
ZOFFS | double | Offset from the plane defined by element grid points to the shell reference plane | |
TFLAG | integer | Flag to indicate the existence of T
|
|
T | double | Thickness of the element at the grid points | |
MCID | integer | Material coordinate system identification number | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
MAT1 | MID | integer | Material identification number |
E | double | Young's modulus | |
G | double | Shear modulus | |
NU | double | Poisson's ratio | |
RHO | double | Mass density | |
A | double | Thermal expansion coefficient | |
TREF | double | Reference temperature for thermal loading | |
GE | double | Structural element damping coefficient | |
ST | double | Stress limit in tension | |
SC | double | Stress limit in compression | |
SS | double | Stress limit in shear | |
MCSID | integer | Material coordinate system identification number | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
GRID | ID | integer | Grid identification number |
CP | integer | Coordinate system identification number | |
X | double | Location of the grid point in coordinate system CP | |
CD | integer | Coordinate system identification number in which the displacements, degrees-of-freedom, constraints, and solution vectors are defined at grid point. | |
PS | integer | Permanent single-point constraints associated with grid point | |
SEIDE | integer | Currently unused | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
PBAR | PID | integer | Property identification number |
MID | double | Material identification number | |
A | double | Area of cross sectiom | |
I1 | double | Area moment of inertia in plane 1 | |
I2 | double | Area moment of inertia in plane 2 | |
NSM | double | Area product of inertia | |
FE | double | Currently unused | |
C1 | double | Stress recovery coefficients | |
C2 | double | ||
D1 | double | ||
D2 | double | ||
E1 | double | ||
E2 | double | ||
F1 | double | ||
F2 | double | ||
K1 | double | Area factor for shear | |
K2 | double | ||
I12 | double | Area product of inertia | |
DOMAIN_ID | integer | Domain identifier | |
PBARL | PID | integer | Property identification number |
MID | integer | Material identification number | |
GROUP | character | Indicates if an arbitrary beam section definition is to be used | |
TYPE | character | Cross-section type | |
INFO_POS | integer | ||
INFO_LEN | integer | ||
DOMAIN_ID | integer | Domain identifier | |
PBEAM | PID | integer | Property identification number |
MID | integer | Material identification number | |
NSEGS | integer | Number of sections | |
CCF | integer | Currently unused | |
CWELD | integer | Currently unused | |
SECTION | BEAM_SECTION | This is a group of coefficients, which are used to define section property of beam. | |
K1 | double | Shear stiffness factor for plane 1 | |
K2 | double | Shear stiffness factor for plane 2 | |
S1 | double | Shear relief coefficients | |
S2 | double | ||
NSIA | double | Nonstructural mass moment of inertia per unit length about nonstructural mass center of gravity at end A | |
NSIB | double | Nonstructural mass moment of inertia per unit length about nonstructural mass center of gravity at end B | |
CWA | double | Warping coefficient for end A | |
CWB | double | Warping coefficient for end B | |
M1A | double | (y,z) coordinates of center of gravity of nonstructural mass at end A | |
M2A | double | ||
M1B | double | (y,z) coordinates of center of gravity of nonstructural mass at end B | |
M2B | double | ||
N1A | double | (y,z) coordinates of neutral axis at end A | |
N2A | double | ||
N1B | double | (y,z) coordinates of neutral axis at end B | |
N2B | double | ||
DOMAIN_ID | integer | Domain identifier | |
PBUSH | PID | integer | Property identification number |
K | double | Nominal stiffness values in directions 1 through 6 | |
B | double | Nominal damping coefficients in directions 1 through 6 | |
GE | double | Nominal structural damping constants in directions 1 through 6 | |
SA | double | Stress recovery coefficient in the translational component | |
ST | double | Stress recovery coefficient in the rotational component | |
EA | double | Strain recovery coefficient in the translational component | |
ET | double | Strain recovery coefficient in the rotational component | |
M | double | Nominal mass values in directions 1 through 6 | |
DOMAIN_ID | integer | Domain identifier | |
PELAS | PID | integer | Property identification number |
K | double | Elastic property value | |
GE | double | Damping coefficient | |
S | double | Stress coefficient | |
DOMAIN_ID | integer | Domain identifier | |
PSHEAR | PID | integer | Property identification number |
MID | integer | Material identification number | |
T | double | Thickness of shear panel | |
NSM | double | Nonstructural mass per unit area | |
F1 | double | Effectiveness factor for extensional stiffness along edges 1-2 and 3-4 | |
F2 | double | Effectiveness factor for extensional stiffness along edges 2-3 and 1-4 | |
DOMAIN_ID | integer | Domain identifier | |
PSHELL | PID | integer | Property identification number |
MID1 | integer | Material identification number for membrane | |
T | double | Membrane thickness | |
MID2 | integer | Material identification number for bending | |
BK | double | Currently unused | |
MID3 | integer | Material identification number for transverse shear | |
TS | double | Transverse shear thickness divided by the membrane thickness | |
NSM | double | Nonstructural mass per unit area | |
Z1 | double | Fiber distances for stress computation | |
Z2 | double | ||
MID4 | integer | Material identification number for membrane-bending coupling | |
DOMAIN_ID | integer | Domain identifier | |
PSOLID | PID | integer | Property identification number |
MID | integer | Material identification number | |
CORDM | integer | MID of material coordinate system | |
IN | integer | Integration network | |
STRESS | integer | Location selection for stress output | |
ISOP | integer | Integration schemes for elasto-plastic implicit nonlinear static analysis. | |
FCTN | character | Fluid element flag | |
DOMAIN_ID | integer | Domain identifier |
OptiStruct RESULTS Group
Dataset Name | Field | Type | Description |
---|---|---|---|
PRESSURE_CPLX | ID | integer | Point identification number |
PR | double | Sound Pressure (Real) | |
PRMSR | double | RMS Sound Pressure (Real) | |
DBR | double | Sound Pressure in dB (Real) | |
DBAR | double | Sound Pressure in dBA (Real) | |
PI | double | Sound Pressure (Imaginary) | |
PRMSI | double | RMS Sound Pressure (Imaginary) | |
DBI | double | Sound Pressure in dB (Imaginary) | |
DBAI | double | Sound Pressure in dBA (Imaginary) | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
BAR | EID | integer | Element identification number |
BM1A | double | Bending moment end A plane 1 | |
BM2A | double | Bending moment end A plane 2 | |
BM1B | double | Bending moment end B plane 1 | |
BM2B | double | Bending moment end B plane 2 | |
TS1 | double | Shear plane 1 | |
TS2 | double | Shear plane 2 | |
AF | double | Axial Force | |
TRA | integer | Torque | |
DOMAIN_ID | integer | Domain identifier | |
BEAM | EID | integer | Element identification number |
FORCE | integer | Element force structure for BEAM | |
DOMAIN_ID | integer | Domain identifier | |
BUSH | EID | integer | Element identification number |
FX | double | Force x | |
FY | double | Force y | |
FZ | double | Force z | |
MX | double | Membrane force in x | |
MY | double | Membrane force in y | |
MZ | integer | Bending moment in z-direction | |
DOMAIN_ID | integer | Domain identifier | |
CONROD/ROD | EID | integer | Element identification number |
AF | double | Axial Force | |
TRQ | double | Torque | |
DOMAIN_ID | integer | Domain identifier | |
ELAS1 | EID | integer | Element identification number |
F | double | Force | |
DOMAIN_ID | integer | Domain identifier | |
TRIA3/QUAD4 | EID | integer | Element identification number |
FORCE | double | Force | |
DOMAIN_ID | integer | Domain identifier | |
QUAD8 | EID | integer | Element identification number |
TERM | character | Character string | |
FORCE | double | Force | |
DOMAIN_ID | integer | Domain identifier | |
ROD | EID | integer | Element identification number |
AF | character | Axial Force | |
TRQ | double | Torque | |
DOMAIN_ID | integer | Domain identifier | |
SHEAR | EID | integer | Element identification number |
F41 | double | Force 4 to 1 | |
F21 | double | Force 2 to 1 | |
F12 | double | Force 1 to 2 | |
F32 | double | Force 3 to 2 | |
F23 | double | Force 2 to 3 | |
F43 | double | Force 4 to 3 | |
F14 | double | Force 1 to 4 | |
KF1 | double | Kick Force on 1 | |
S12 | double | Shear 1 2 | |
KF2 | double | Kick Force on 2 | |
S23 | double | Shear 2 3 | |
KF3 | double | Kick Force on 3 | |
S34 | double | Shear 3 4 | |
KF4 | double | Kick Force on 4 | |
S41 | double | Shear 4 1 | |
DOMAIN_ID | integer | Domain identifier | |
TRIA6 | EID | integer | Element identification number |
TERM | character | Location | |
FORCE | double | Data structure defined in typedef section | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
BAR | EID | integer | Element identification number |
X1A | double | SA1 | |
X2A | double | SA2 | |
X3A | double | SA3 | |
X4A | double | SA4 | |
X | double | Axial | |
MAXA | double | SA maximum | |
MINA | double | SA minimum | |
MST | double | Margin of Safety in Tension | |
X1B | double | SB1 | |
X2B | double | SB2 | |
X3B | double | SB3 | |
X4B | double | SB4 | |
MAXB | double | SB maximum | |
MINB | double | SB minimum | |
MSC | double | Margin of Safety in Compression | |
DOMAIN_ID | integer | Domain identifier | |
BAR_CPLX | EID | integer | Element identification number |
X1AR | double | SA1 (Real) | |
X2AR | double | SA2 (Real) | |
X3AR | double | SA3 (Real) | |
X4AR | double | SA4 (Real) | |
AXR | double | Axial (Real) | |
X1AI | double | SA1 (Imaginary) | |
X2AI | double | SA2 (Imaginary) | |
X3AI | double | SA3 (Imaginary) | |
X4AI | double | SA4 (Imaginary) | |
AXI | double | Axial (Imaginary) | |
X1BR | double | SB1 (Real) | |
X2BR | double | SB2 (Real) | |
X3BR | double | SB3 (Real) | |
X4BR | double | SB4 (Real) | |
X1BI | double | SB1 (Imaginary) | |
X2BI | double | SB2 (Imaginary) | |
X3BI | double | SB3 (Imaginary) | |
X4BI | double | SB4 (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
BEAM | EID | integer | Element identification number |
GRID | integer | Grid point identification numbers | |
SD | double | Station distance divided by length | |
XC | double | Longitudinal stress at point C | |
XD | double | Longitudinal stress at point D | |
XE | double | Longitudinal stress at point E | |
XF | double | Longitudinal stress at point F | |
MAX | double | Maximum stress | |
MIN | double | Minimum stress | |
MST | double | Margin of Safety (tension) | |
MSC | double | Margin of Safety (compression) | |
DOMAIN_ID | integer | Domain identifier | |
BEAM_CPLX | EID | integer | Element identification number |
GRID | integer | Grid point identification numbers | |
SD | |||
XCR | double | Longitudinal stress at point C (Real) | |
XDR | double | Longitudinal stress at point D (Real) | |
XER | double | Longitudinal stress at point E (Real) | |
XFR | double | Longitudinal stress at point F (Real) | |
XCI | double | Longitudinal stress at point C (Imaginary) | |
XDI | double | Longitudinal stress at point D (Imaginary) | |
XEI | double | Longitudinal stress at point E (Imaginary) | |
XFI | double | Longitudinal stress at point F (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
BUSH | EID | integer | Element identification number |
TX | double | Shear force in x-direction | |
TY | double | Shear force in y-direction | |
TZ | double | Shear force in z-direction | |
RX | double | Rotation in x-direction | |
MY | double | Rotation in y-direction | |
MZ | integer | Rotation in z-direction | |
DOMAIN_ID | integer | Domain identifier | |
CONROD/ROD | EID | integer | Element identification number |
AF | double | Axial Force | |
TRQ | double | Torque | |
DOMAIN_ID | integer | Domain identifier | |
ELAS1 | EID | integer | Element identification number |
S | double | Stress | |
DOMAIN_ID | integer | Domain identifier | |
HEXA | EID | integer | Element identification number |
CID | integer | Stress Coordinate System | |
CTYPE | character | Coordinate System Type (BCD) | |
NODEF | integer | Number of Active Points | |
SS | - | Grid stress structure | |
DOMAIN_ID | integer | Domain identifier | |
HEXA_CPLX | EID | integer | Element identification number |
CID | integer | Stress Coordinate System | |
CTYPE | character | Coordinate System Type (BCD) | |
NODEF | integer | Number of Active Points | |
SS | - | Grid stress structure (complex) | |
DOMAIN_ID | integer | Domain identifier | |
PENTA | EID | integer | Element identification number |
CID | integer | Stress Coordinate System | |
CTYPE | character | Coordinate System Type (BCD) | |
NODEF | integer | Number of Active Points | |
SS | - | Grid stress structure | |
DOMAIN_ID | integer | Domain identifier | |
PENTA_CPLX | EID | integer | Element identification number |
CID | integer | Stress Coordinate System | |
CTYPE | character | Coordinate System Type (BCD) | |
NODEF | integer | Number of Active Points | |
SS | - | Grid stress structure (complex) | |
DOMAIN_ID | integer | Domain identifier | |
ROD | EID | integer | Element identification number |
A | double | Axial stress | |
MSA | double | Axial Safety Margin | |
T | double | Total stress | |
MST | double | Margin of Safety in Tension | |
DOMAIN_ID | integer | Domain identifier | |
ROD_CPLX | EID | integer | Element identification number |
AR | double | Axial stress (Real) | |
AI | double | Axial stress (Imaginary) | |
TR | double | Total stress (Real) | |
TI | double | Total stress (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
SHEAR | EID | integer | Element identification number |
TMAX | double | Maximum Shear | |
TAVG | double | Average Shear | |
MS | double | Margin of Safety | |
DOMAIN_ID | double | Domain identifier | |
TETRA | EID | integer | Element identification number. |
CID | integer | Stress Coordinate System | |
CTYPE | character | Coordinate System Type (BCD) | |
NODEF | integer | Number of Active Points. | |
SS | GRID_SS | Grid strain and stress structure. | |
DOMAIN_ID | integer | Domain identifier | |
TRIA3 | EID | integer | Element identification number. |
AR | double | Axial stress (Real) | |
AI | double | Axial stress (Imaginary) | |
TR | double | Total stress (Real) | |
TI | double | Total stress (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
TRIA3_CPLX | EID | integer | Element identification numbers |
FD1 | double | Fiber distance (Z1) | |
X1R | double | Normal in X at Z1 (Real) | |
X1I | double | Normal in X at Z1 (Imaginary) | |
Y1R | double | Normal in Y at Z1 (Real) | |
Y1I | double | Normal in Y at Z1 (Imaginary) | |
TXY1R | double | Shear in XY at Z1 (Real) | |
TXY1I | double | Shear in XY at Z1 (Imaginary) | |
FD2 | double | Fiber distance (Z2) | |
X2R | double | Normal in X at Z2 (Real) | |
X2I | double | Normal in X at Z2 (Imaginary) | |
Y2R | double | Normal in Y at Z2 (Real) | |
Y2I | double | Normal in Y at Z2 (Imaginary) | |
TXY2R | double | Shear in XY at Z2 (Real) | |
TXY2I | double | Shear in XY at Z2 (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
TRIA6 | EID | integer | Element identification number. |
TERM | character | Location | |
GRID | integer | Grid identification numbers | |
FD1 | double | Fiber distance (Z1) | |
X1 | double | Normal in X at Z1 | |
Y1 | double | Normal in Y at Z1 | |
XY1 | double | Shear in XY at Z1 | |
FD2 | double | Fiber distance (Z2) | |
X2 | double | Normal in X at Z2 | |
Y2 | double | Normal in Y at Z2 | |
XY2 | double | Shear in XY at Z2 | |
DOMAIN_ID | integer | Domain identifier | |
TRIA6_CPLX | EID | integer | Element identification number |
TERM | character | Location | |
GRID | integer | Grid identification numbers | |
FD1 | double | Fiber distance (Z1) | |
X1R | double | Normal in X at Z1 (Real) | |
X1I | double | Normal in X at Z1 (Imaginary) | |
Y1R | double | Normal in Y at Z1 (Real) | |
Y1I | double | Normal in Y at Z1 (Imaginary) | |
XYIR | double | Shear in XY at Z1 (Real) | |
XY1I | double | Shear in XY at Z1 (Imaginary) | |
FD2 | double | Fiber distance (Z2) | |
X2R | double | Normal in X at Z2 (Real) | |
X2I | double | Normal in X at Z2 (Imaginary) | |
XY2R | double | Shear in XY at Z2 (Real) | |
XY2I | double | Shear in XY at Z2 (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
QUAD4 | EID | integer | Element identification number |
FD1 | double | Fiber distance (Z1) | |
X1 | double | Normal in X at Z1 | |
Y1 | double | Normal in Y at Z1 | |
XY1 | double | Shear in XY at Z1 | |
FD2 | double | Fiber distance (Z2) | |
X2 | double | Normal in X at Z2 | |
Y2 | double | Normal in Y at Z2 | |
XY2 | double | Shear in XY at Z2 | |
DOMAIN_ID | integer | Domain identifier | |
QUAD4_CPLX | EID | integer | Element identification number |
FD1 | double | Fiber distance (Z1) | |
X1R | double | Normal in X at Z1 (Real) | |
X1I | double | Normal in X at Z1 (Imaginary) | |
Y1R | double | Normal in Y at Z1 (Real) | |
Y1I | double | Normal in Y at Z1 (Imaginary) | |
TXY1R | double | Shear in XY at Z1 (Real) | |
TXY1I | double | Shear in XY at Z1 (Imaginary) | |
FD2 | double | Fiber distance (Z2) | |
X2R | double | Normal in X at Z2 (Real) | |
X2I | double | Normal in X at Z2 (Imaginary) | |
Y2R | double | Normal in Y at Z2 (Real) | |
Y2I | double | Normal in Y at Z2 (Imaginary) | |
TXY2R | double | Shear in XY at Z2 (Real) | |
TXY2I | double | Shear in XY at Z2 (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
QUAD8 | EID | integer | Element identification number |
TERM | character | Character string | |
GRID | integer | Grid identification numbers | |
FD1 | double | Fiber distance (Z1) | |
X1 | double | Normal in X at Z1 | |
Y1 | double | Normal in Y at Z1 | |
XY1 | double | Shear in XY at Z1 | |
FD2 | double | Fiber distance (Z2) | |
X2 | double | Normal in X at Z2 | |
Y2 | double | Normal in Y at Z2 | |
DOMAIN_ID | integer | Domain identifier | |
QUAD8_CPLX | EID | integer | Element identification number |
TERM | character | Character string | |
GRID | integer | Grid identification numbers | |
FD1 | double | Fiber distance (Z1) | |
X1R | double | Normal in X at Z1 (Real) | |
X1I | double | Normal in X at Z1 (Imaginary) | |
Y1R | double | Normal in Y at Z1 (Real) | |
Y1I | double | Normal in Y at Z1 (Imaginary) | |
XY1R | double | Shear in XY at Z1 (Real) | |
XY1I | double | Shear in XY at Z1 (Imaginary) | |
FD2 | double | Fiber distance (Z2) | |
X2R | double | Normal in X at Z2 (Real) | |
X2I | double | Normal in X at Z2 (Imaginary) | |
Y2R | double | Normal in Y at Z2 (Real) | |
Y2I | double | Normal in Y at Z2 (Imaginary) | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
APPLIED_LOAD | ID | integer | Grid identification number |
X | double | X component | |
Y | double | Y component | |
Z | double | Z component | |
RX | double | RX component | |
RY | double | RY component | |
RZ | double | RZ component | |
DOMAIN_ID | integer | Domain identifier | |
DISPLACEMENT | ID | integer | Grid identification number |
X | double | X component | |
Y | double | Y component | |
Z | double | Z component | |
RX | double | RX component | |
RY | double | RY component | |
RZ | double | RZ component | |
_nmd_5rb"> DOMAIN_ID | integer | Domain identifier | |
DISPLACEMENT_CPLX | ID | integer | Grid identification number |
XR | double | X component (Real) | |
YR | double | Y component (Real) | |
ZR | double | Z component (Real) | |
RXR | double | RX component (Real) | |
RYR | double | RY component (Real) | |
RZR | double | RZ component (Real) | |
XI | double | X component (Imaginary) | |
YI | double | Y component (Imaginary) | |
ZI | double | Z component (Imaginary) | |
RXI | double | RX component (Imaginary) | |
RYI | double | RY component (Imaginary) | |
RZI | double | RZ component (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
EIGENVECTOR | ID | integer | Grid identification number |
X | double | X component | |
Y | double | Y component | |
Z | double | Z component | |
RX | double | RX component | |
RY | double | RY component | |
RZ | double | RZ component | |
DOMAIN_ID | integer | Domain identifier | |
MPC_FORCE | ID | integer | Grid identification number |
X | double | X component | |
Y | double | Y component | |
Z | double | Z component | |
RX | double | RX component | |
RY | double | RY component | |
RZ | double | RZ component | |
DOMAIN_ID | integer | Domain identifier | |
SPC_FORCE | ID | integer | Grid identification number |
X | double | X component | |
Y | double | Y component | |
Z | double | Z component | |
RX | double | RX component | |
RY | double | RY component | |
RZ | double | RZ component | |
DOMAIN_ID | integer | Domain identifier |
Reading Data
Examples for reading in C and Python are available here.
- Python: h5py, numpy
- C: hdf5 and hdf5_hl library
Python Example 1: Reading displacement from .h5 file
# ******************************************************
# Example 1: Reading displacement from h5 file
# ******************************************************
import h5py
def ex1():
# file path
inp_file = "cbar_strstn_static.h5"
# open file in read-only mode
f = h5py.File(inp_file, "r")
# DISPLACEMENT path
disp_path = "/OPTISTRUCT/RESULT/NODAL/DISPLACEMENT"
# acquire DISP table
t = f[disp_path]
# print data
print('DISPLACEMENT:\n')
print(t[:])
f.close()
if __name__ == "__main__":
ex1()
Python Example 2: Reading specific data from displacement in .h5 file
# ******************************************************
# Example 2: Reading specific data from displacement in h5 file
# ******************************************************
# In this example, some senior functions would be used
# to show how to access specific data
import h5py
import numpy as np
def ex1_2():
# file path
inp_file = "cbar_strstn_static.h5"
# open file in read-only mode
f = h5py.File(inp_file, "r")
# DISPLACEMENT path
disp_path = "/OPTISTRUCT/RESULT/NODAL/DISPLACEMENT"
# acquire DISP table
t = f[disp_path]
# 1. query all field name in this table
print("All fields in DISP table:\n")
for name in t.dtype.fields.keys():
print(name, end=" ")
# 2. filter ID data
fn = 'ID'
ids = t[fn]
print("All ID:\n")
print(ids[:])
# 3. get disp of grid 17
# for this one, numpy is needed
id = 17
arr_ids = np.array(ids)
idx = np.where(arr_ids == id)
disp_17 = t[idx]
print("The DISP of grid 17: \n")
print(disp_17)
f.close()
if __name__ == "__main__":
ex1_2()
Python Example 3: Reading Stresses from .h5 file
# ******************************************************
# Example 3: Reading CHEXA stresses from h5 file
# ******************************************************
import h5py
def printbable(name, n):
if isinstance(n, h5py.Dataset):
# this is a dataset(table)
print("the data of {} is :\n".format(name))
print(n[:])
def ex2():
inp_file = "dang_van_tbl_smallshr.h5"
# open file in read-only mode
f = h5py.File(inp_file, 'r')
stress_path = '/OPTISTRUCT/RESULT/ELEMENTAL/STRESS'
# visit all table under STRESS group and print them out
g = f[stress_path]
g.visititems(printbable)
if __name__ == "__main__":
ex2()
fn = 'ID'
C Examples
#include "ex.h"
int main() {
ex2();
}
#ifndef CEXPFORH5_EX_H
#define CEXPFORH5_EX_H
int ex1();
int ex2();
#endif //CEXPFORH5_EX_H
C Example 1: Reading displacements and printing
# ******************************************************
# Example 1: Reading displacements and printing
# ******************************************************
#include "hdf5.h"
#include "hdf5_hl.h"
#include <stdlib.h>
#include "ex.h"
#define FILE "cbar_strstn_static.h5"
#define TABLE_NAME "/OPTISTRUCT/RESULT/NODAL/DISPLACEMENT"
typedef struct Disp {
long long id; // grid id
// double d[6]; // displacement
double x;
double y;
double z;
double rx;
double ry;
double rz;
long long domid; //domain_id
} Disp;
int ex1() {
herr_t re = 0;
size_t dst_size = sizeof(Disp);
size_t dst_offset[]= {
HOFFSET(Disp,id),
HOFFSET(Disp, x),
HOFFSET(Disp, y),
HOFFSET(Disp, z),
HOFFSET(Disp, rx),
HOFFSET(Disp, ry),
HOFFSET(Disp, rz),
HOFFSET(Disp,domid)
};
Disp disp;
size_t dst_sizes[] = {
sizeof(disp.id),
sizeof(disp.x),
sizeof(disp.y),
sizeof(disp.z),
sizeof(disp.rx),
sizeof(disp.ry),
sizeof(disp.rz),
sizeof(disp.domid)
};
//open file in read-only mode
hid_t file_id = H5Fopen(FILE,H5F_ACC_RDONLY,H5P_DEFAULT);
if (file_id < 0) {
printf("Error: file %s is not here\n",FILE);
return 0;
}
hsize_t nfields, nrecords;
/* Get table info */
if (H5TBget_table_info(file_id,TABLE_NAME,&nfields,&nrecords) < 0) {
printf("Error: Table %s is not here\n",TABLE_NAME);
goto endact;
}
if (nrecords == 0 || nfields == 0) {
printf("The nrecords or nfields of %s is 0, return\n",TABLE_NAME);
goto endact;
}
Disp* dst_buf = NULL;
dst_buf = (Disp*)malloc(nrecords * dst_size);
if (!dst_buf) {
printf("Error: malloc for rstbuf fail\n");
goto endact;
}
// read disp
if (H5TBread_table(file_id,TABLE_NAME,dst_size,dst_offset,dst_sizes,dst_buf) < 0) {
printf("Error: read table fail\n");
goto clearmem;
}
//print disp
for (int i = 0; i < nrecords;i++) {
printf("GRID %lld: %e, %e, %e, %e, %e, %e, %lld\n",
dst_buf[i].id,
dst_buf[i].x,
dst_buf[i].y,
dst_buf[i].z,
dst_buf[i].rx,
dst_buf[i].ry,
dst_buf[i].rz,
dst_buf[i].domid);
}
clearmem:
if (dst_buf!=NULL) free(dst_buf);
endact:
H5Fclose(file_id);
return 0;
}
C Example 2: Reading stresses from CHEXA element and printing
# ******************************************************
# Example 2: Reading stresses from CHEXA element and printing
# ******************************************************
#include "hdf5.h"
#include "hdf5_hl.h"
#include <stdlib.h>
#include "ex.h"
#define FILE "dang_van_tbl_smallshr.h5"
#define TABLE_NAME "/OPTISTRUCT/RESULT/ELEMENTAL/STRESS/HEXA"
typedef struct HEXA {
long long id; // grid id
long long cid;
char ctype[8];
long long nodef;
long long grid[9];
double x[9];
double y[9];
double z[9];
double rx[9];
double ry[9];
double rz[9];
long long domid; //domain_id
} HEXA;
int ex2 () {
herr_t re = 0;
size_t dst_size = sizeof(HEXA);
size_t dst_offset[]= {
HOFFSET(HEXA,id),
HOFFSET(HEXA,cid),
HOFFSET(HEXA,ctype),
HOFFSET(HEXA,nodef),
HOFFSET(HEXA,grid),
HOFFSET(HEXA, x),
HOFFSET(HEXA, y),
HOFFSET(HEXA, z),
HOFFSET(HEXA, rx),
HOFFSET(HEXA, ry),
HOFFSET(HEXA, rz),
HOFFSET(HEXA,domid)
};
HEXA hexa;
size_t dst_sizes[] = {
sizeof(hexa.id),
sizeof(hexa.cid),
sizeof(hexa.ctype),
sizeof(hexa.nodef),
sizeof(hexa.grid),
sizeof(hexa.x),
sizeof(hexa.y),
sizeof(hexa.z),
sizeof(hexa.rx),
sizeof(hexa.ry),
sizeof(hexa.rz),
sizeof(hexa.domid)
};
//open file in read-only mode
hid_t file_id = H5Fopen(FILE,H5F_ACC_RDONLY,H5P_DEFAULT);
if (file_id < 0) {
printf("Error: file %s is not here\n",FILE);
return 0;
}
hsize_t nfields, nrecords;
/* Get table info */
if (H5TBget_table_info(file_id,TABLE_NAME,&nfields,&nrecords) < 0) {
printf("Error: Table %s is not here\n",TABLE_NAME);
goto endact;
}
if (nrecords == 0 || nfields == 0) {
printf("The nrecords or nfields of %s is 0, return\n",TABLE_NAME);
goto endact;
}
HEXA* dst_buf = NULL;
dst_buf = (HEXA*)malloc(nrecords * dst_size);
if (!dst_buf) {
printf("Error: malloc for rstbuf fail\n");
goto endact;
}
// read disp
if (H5TBread_table(file_id,TABLE_NAME,dst_size,dst_offset,dst_sizes,dst_buf) < 0) {
printf("Error: read table fail\n");
goto clearmem;
}
//print disp
for (int i = 0; i < nrecords;i++) {
printf("HEXA %lld: %lld, %s, %lld, %lld\n",
dst_buf[i].id,
dst_buf[i].cid,
dst_buf[i].ctype,
dst_buf[i].nodef,
dst_buf[i].domid);
for (int j = 0; j < 9 ;j++) {
printf("\t %lld, %e, %e, %e, %e, %e, %e",
dst_buf[i].grid[j],
dst_buf[i].x[j],
dst_buf[i].y[j],
dst_buf[i].z[j],
dst_buf[i].rx[j],
dst_buf[i].ry[j],
dst_buf[i].rz[j]);
}
printf("\n");
}
clearmem:
if (dst_buf!=NULL) free(dst_buf);
endact:
H5Fclose(file_id);
return 0;
}