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 | |
MAT8 | MID | Integer | Material identification number. |
E1 | double | Modulus of elasticity in longitudinal direction | |
E2 | double | Modulus of elasticity in lateral direction | |
NU12 | double | Poisson's ratio | |
G12 | double | Inplane shear modulus | |
G1Z | double | Transverse shear modulus for shear in 1-Z plane | |
G2Z | double | Transverse shear modulus for shear in 2-Z plane | |
RHO | double | Mass density. | |
A1 | double | Thermal expansion coefficient in 1-direction | |
A2 | double | Thermal expansion coefficient in 2-direction | |
TREF | double | Reference temperature for the calculation of thermal loads | |
Xt | double | Allowable stresses or strains in the longitudinal and lateral directions | |
Xc | double | ||
Yt | double | ||
Yc | double | ||
S | double | Allowable for in-plane shear stresses or strains for composite ply failure calculations | |
GE | double | Structural Element Damping Coefficient | |
F12 | double | Tsai-Wu interaction term for composite failure. | |
STRN | double | Indicates whether Xt, Xc, Yt, Yc, and S are stress or strain allowables | |
ALPHA | double | Material-dependent Rayleigh Damping coefficient for the mass matrix | |
BETA | double | Material-dependent Rayleigh Damping coefficient for the stiffness matrix | |
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 | double | Torque | |
DOMAIN_ID | integer | Domain identifier | |
BAR CPLX | EID | integer | Element identification number |
BM1AR | double | Bending moment end A plane 1 (Real) | |
BM2AR | double | Bending moment end A plane 2 (Real) | |
BM1BR | double | Bending moment end B plane 1 (Real) | |
BM2BR | double | Bending moment end B plane 2 (Real) | |
TS1R | double | Shear plane 1 (Real) | |
TS2R | double | Shear plane 2 (Real) | |
AFR | double | Axial Force (Real) | |
TRAR | double | Torque (Real) | |
BM1AI | double | Bending moment end A plane 1 (Imaginary) | |
BM2AI | double | Bending moment end A plane 2 (Imaginary) | |
BM1BI | double | Bending moment end B plane 1 (Imaginary) | |
BM2BI | double | Bending moment end B plane 2 (Imaginary) | |
TS1I | double | Shear plane 1 (Imaginary) | |
TS2I | double | Shear plane 2 (Imaginary) | |
AFI | double | Axial Force (Imaginary) | |
TRAI | double | Torque (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
BEAM | EID | integer | Element identification number |
GRID | integer | Grid point identification numbers of connection points | |
SD | double | Ratio of distance between grid and original point of element coordinate system to the length of element | |
BM1 | double | Bending moment in plane 1 | |
BM2 | double | Bending moment in plane 2 | |
TS1 | double | Shear force in plane 1 | |
TS2 | double | Shear force in plane 2 | |
AF | double | Axial force | |
TTRQ | double | Total torque | |
WTRQ | double | Wrapping torque | |
DOMAIN_ID | integer | Domain identifier | |
BEAM CPLX | EID | integer | Element identification number |
GRID | integer | Grid point identification numbers of connection points | |
SD | double | Ratio of distance between grid and original point of element coordinate system to the length of element | |
BM1R | double | Bending moment in plane 1 (Real) | |
BM2R | double | Bending moment in plane 2 (Real) | |
TS1R | double | Shear force in plane 1 (Real) | |
TS2R | double | Shear force in plane 2 (Real) | |
AFR | double | Axial force (Real) | |
TTRQR | double | Total torque (Real) | |
WTRQR | double | Wrapping torque (Real) | |
BM1I | double | Bending moment in plane 1 (Imaginary) | |
BM2I | double | Bending moment in plane 2 (Imaginary) | |
TS1I | double | Shear force in plane 1 (Imaginary) | |
TS2I | double | Shear force in plane 2 (Imaginary) | |
AFI | double | Axial force (Imaginary) | |
TTRQI | double | Total torque (Imaginary) | |
WTRQI | double | Wrapping torque (Imaginary) | |
DOMAIN_ID | integer | Domain identifier | |
BUSH/WELD/FAST | 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 | |
ROD CPLX | EID | integer | Element identification number |
AFR | double | Axial Force (Real) | |
AFI | double | Axial Force (Imaginary) | |
TRQR | double | Torque (Real) | |
TRQI | double | Torque (Imaginary) | |
DOMAIN ID | integer | Domain identifier | |
ELAS1/ELAS2 | EID | integer | Element identification number |
F | double | Force | |
DOMAIN_ID | integer | Domain identifier | |
TRIA3/TRIA6/QUAD4/QUAD8/QUAD4_CN | EID | integer | Element identification number |
MX | double | Membrane force X | |
MY | double | Membrane force Y | |
MXY | double | Membrane force XY | |
BMX | double | Bending moment X | |
BMY | double | Bending moment Y | |
BMXY | double | Bending moment XY | |
TX | double | Shear force X | |
TY | double | Shear force Y | |
DOMAIN_ID | integer | Domain identifier | |
TRIA3_CPLX/ TRIA6_CPLX/ QUAD4_CPLX/ QUAD8_CPLX/ QUAD4_CN_CPLX | EID | integer | Element identification number |
MXR | double | Membrane force X (Real) | |
MYR | double | Membrane force Y (Real) | |
MXYR | double | Real Membrane force XY (Real) | |
BMXR | double | Bending moment X (Real) | |
BMYR | double | Bending moment Y (Real) | |
BMXYR | double | Bending moment XY (Real) | |
TXR | double | Shear force X (Real) | |
TYR | double | Shear force Y (Real) | |
MXI | double | Membrane force X (Imaginary) | |
MYI | double | Membrane force Y (Imaginary) | |
MXYI | double | Membrane force XY (Imaginary) | |
BMXI | double | Bending moment X (Imaginary) | |
BMYI | double | Bending moment Y (Imaginary) | |
BMXYI | double | Bending moment XY (Imaginary) | |
TXI | double | Shear force X (Imaginary) | |
TYI | double | Shear force Y (Imaginary) | |
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 | |
GAP | EID | integer | Element identification number |
COMP_X | double | Compressure force in X direction | |
SHEARY | double | Shear force in Y direction | |
SHEARZ | double | Shear force in Z direction | |
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/ELAS2 | 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 | |
X | double | Normal stress in X | |
Y | double | Normal stress in Y | |
Z | double | Normal stress in Z | |
TX | double | Shear stress in X | |
TY | double | Shear stress in Y | |
TZ | double | Shear stress in Z | |
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 | |
XR | double | Normal stress in X (Real) | |
YR | double | Normal stress in Y (Real) | |
ZR | double | Normal stress in Z (Real) | |
TXR | double | Shear Stress in X (Real) | |
TYR | double | Shear Stress in Y (Real) | |
TZR | double | Shear Stress in Z (Real) | |
XI | double | Normal stress in X (Imaginary) | |
YI | double | Normal stress in Y (Imaginary) | |
ZI | double | Normal stress in Z (Imaginary) | |
TXI | double | Shear stress in X (Imaginary) | |
TYI | double | Shear stress in Y (Imaginary) | |
TZI | double | Shear stress in Z (Imaginary) | |
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 | |
X | double | Normal stress in X | |
Y | double | Normal stress in Y | |
Z | double | Normal stress in Z | |
TX | double | Shear stress in X | |
TY | double | Shear stress in Y | |
TZ | double | Shear stress in Z | |
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. | |
X | double | Normal stress in X | |
Y | double | Normal stress in Y | |
Z | double | Normal stress in Z | |
TX | double | Shear stress in X | |
TY | double | Shear stress in Y | |
TZ | double | Shear stress in Z | |
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 | |
PYRA | EID | integer | Element identification number |
TERM | character | Character string | |
GRID | integer | Grid idenditfication 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 | |
PYRA_CPLX | EID | integer | Element identification number |
TERM | character | Character string | |
GRID | integer | Grid idenditfication 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 | |
TRIA3_COMP/TRIA6_COMP /QUAD4_COMP /QUAD8_COMP | EID | integer | Element identification number |
PLY | double | ID of ply if multiple plies applied in PCOMP/PCOMPG | |
X1 | double | Normal X composite stress | |
Y1 | double | Normal Y composite stress | |
T1 | double | Shear XY composite stress | |
L1 | double | Shear 1Z interlaminar Stress | |
L2 | double | Shear 2Z interlaminar Stress | |
DOMAIN_ID | integer | Domain identifier |
- These datasets are also applicable to the ELEMENTAL/STRAIN, ELEMENTAL/STRAIN_THER group.
- For ELEMENT_FORCE, STRESS and STRAIN group, for one dataset with several values, the first value is the ordinary results, the rest are CORNER/GAUSS results.
Dataset Name | Field | Type | Description |
---|---|---|---|
IDENT | IDENT | integer | IDENT identifier |
ELNAME | string | Element type name | |
ETOTAL | double | Total strain energy of all elements in subcase/mode | |
CVALRES | integer | C | |
ESUBT | double | Subtotal of Strain Energy in the Set identification number* | |
ETOTPOS | double | Total positive energy | |
ETOTNEG | double | Total negative energy | |
STRAIN_ELEM** | ID | integer | Grid identification number |
ENERGY | double | Strain energy | |
PCT | double | Strain energy percentage | |
DEN | double | Strain energy density | |
IDENT | double | Corresponding ID in IDENT dataset | |
DOMAIN_ID | integer | Domain identifier |
* Elemental energy results grouped by SETs are moved to OPTISTRUCT/RESULT/GROUP, ESUBT now equals ETOTAL.
** This form also applies to KINETIC_ELEM and DAMPING_ELEM dataset.
Dataset Name | Field | Type | Description |
---|---|---|---|
JDISP | ID | integer | JOINTG element identification number |
X | double | JOINTG displacement X component | |
Y | double | JOINTG displacement Y component | |
Z | double | JOINTG displacement Z component | |
RX | double | JOINTG displacement RX component | |
RY | double | JOINTG displacement RY component | |
RZ | double | JOINTG displacement RZ component | |
DOMAIN_ID | integer | Domain identifier | |
JFRCE | ID | integer | JOINTG element identification number |
FX | double | JOINTG force X component | |
FY | double | JOINTG force Y component | |
FZ | integer | JOINTG force Z component | |
MX | double | JOINTG moment X component | |
MY | double | JOINTG moment Y component | |
MZ | double | JOINTG moment Z component | |
DOMAIN_ID | integer | Domain identifier | |
RCFRCE | ID | integer | JOINTG element identification number |
FX | double | JOINTG reaction force X component | |
FY | double | JOINTG reaction force Y component | |
FZ | integer | JOINTG reaction force Z component | |
MX | double | JOINTG reaction moment X component | |
MY | double | JOINTG reaction moment Y component | |
MZ | double | JOINTG reaction moment Z component | |
DOMAIN_ID | integer | Domain identifier | |
ELFRCE | ID | integer | JOINTG element identification number |
FX | double | JOINTG elastic force X component | |
FY | double | JOINTG elastic force Y component | |
FZ | integer | JOINTG elastic force Z component | |
MX | double | JOINTG elastic moment X component | |
MY | double | JOINTG elastic moment Y component | |
MZ | double | JOINTG elastic moment Z component | |
DOMAIN_ID | integer | Domain identifier | |
VDFRCE | ID | integer | JOINTG element identification number |
FX | double | JOINTG viscous damping force X component | |
FY | double | JOINTG viscous damping force Y component | |
FZ | integer | JOINTG viscous damping force Z component | |
MX | double | JOINTG viscous damping moment X component | |
MY | double | JOINTG viscous damping moment Y component | |
MZ | double | JOINTG viscous damping moment Z component | |
DOMAIN_ID | integer | Domain identifier | |
SLST | ID | integer | JOINTG element identification number |
FX | double | JOINTG stop-lock status in X direction | |
FY | double | JOINTG stop-lock status in Y direction | |
FZ | integer | JOINTG stop-lock status in Z direction | |
MX | double | JOINTG stop-lock status in rotational X direction | |
MY | double | JOINTG stop-lock status in rotational Y direction | |
MZ | double | JOINTG stop-lock status in rotational Z direction | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
ESE* | GRP_TYPE | string | Group types that group energy is based on/INCL file name if based on include files |
ID | integer | Identifier of group | |
ENERGY | double | Strain energy | |
DEN | double | Strain energy density | |
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 | |
GRID_FORCE | ID | integer | Grid identification number |
EID | integer | Element identification number | |
ELNAME* | string | Grid force type or element type name | |
F1 | double | X component | |
F2 | double | Y component | |
F3 | double | Z component | |
M1 | double | RX component | |
M2 | double | RY component | |
M3 | double | RZ component | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
COMP_EIGEN | EIGEN-R | double | Complex Eigenvalue (Real) |
EIGEN-I | double | Complex Eigenvalue (Imaginary) | |
FREQ | double | Natural frequency | |
DAMP | double | Damping coefficiency | |
DOMAIN_ID | integer | Domain identifier |
Dataset Name | Field | Type | Description |
---|---|---|---|
SDISPLACEMENT* | ID | integer | Mode identifier |
SDISP | double | Reduced displacement | |
DOMAIN_ID | integer | Domain identifier | |
SDISPLACEMENT_CPLX* | ID | integer | Mode identifier |
SDISPR | double | Reduced displacement (Real) | |
SDISPI | double | Reduced displacement (Imaginary) | |
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;
}