HDF5データタイプ
HDF5は、モデルと結果のデータが階層データフォーマットで含まれるバイナリファイルです。
データベースでは、データセットが階層構造で格納されているため、アプリケーションでのデータセットの追加、削除、または更新が容易です。データベースは、高精度、圧縮、および無制限のデータ量をサポートします。そのオープンなフォーマットと複数のプログラミング言語のサポートは、FEAアプリケーションにとって理想的です。
OptiStruct HDF5出力は、.h5ファイルフォーマットで利用できます。
サポートされている出力要求
サポートされている出力の詳細については、.h5ファイルをご参照ください。
データタイプ
データタイプスキーマを使用して、データベース構造とそのデータセットフォーマットを定義します。データベースは、データセットのノードからなるツリー構造をしています。各データセットでは、ツリー内のパスを識別子として使用し、構造データフォーマットを定義します。スキーマはXMLで、図 1. OptiStructのHDF5データの構造

<typedef>
、<group>
、<dataset>
などの要素があります。OptiStructのHDF5データの構造の簡単な説明を以下に示します。
サポートされているグループ名
HDF5ファイル内のデータは、グループの形式で階層的に構造化されています。最も基本的なツリー内のデータ形式をデータセットと言います。次の表に、現在サポートされているグループとその関連データセットをまとめます。
OptiStruct INPUTグループ
COORDINATE_SYSTEMグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
CORD1C | CID | integer | 座標系の識別番号 |
G1 | integer | 座標系を定義するための節点ID | |
G2 | integer | ||
G3 | integer | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CORD1R | CID | integer | 座標系の識別番号 |
G1 | integer | 座標系を定義するための節点ID | |
G2 | integer | ||
G3 | integer | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CORD1S | CID | integer | 座標系の識別番号 |
G1 | integer | 座標系を定義するための節点ID | |
G2 | integer | ||
G3 | integer | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CORD2C | CID | integer | 座標系の識別番号 |
RID | integer | 参照座標系の識別番号 | |
A1 | double | 座標系を定義するための節点ID | |
A2 | double | ||
A3 | double | ||
B1 | double | ||
B2 | double | ||
B3 | double | ||
C1 | double | ||
C2 | double | ||
C3 | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CORD2R | CID | integer | 座標系の識別番号 |
RID | integer | 参照座標系の識別番号 | |
A1 | double | 座標系を定義するための節点ID | |
A2 | double | ||
A3 | double | ||
B1 | double | ||
B2 | double | ||
B3 | double | ||
C1 | double | ||
C2 | double | ||
C3 | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CORD2S | CID | integer | 座標系ID |
RID | integer | 参照座標系ID | |
A1 | double | 座標系を定義するための節点ID | |
A2 | double | ||
A3 | double | ||
B1 | double | ||
B2 | double | ||
B3 | double | ||
C1 | double | ||
C2 | double | ||
C3 | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
TRANSFORMATION/IDENTITY | CID | integer | 座標系の識別番号 |
TYPE | 整数 |
座標系のタイプ
|
|
IINDEX | 整数 | Iデータテーブルの開始位置を表します | |
RINDEX | 整数 | Rデータテーブルの開始位置を表します | |
DOMAIN_ID | integer | ドメイン識別子 | |
TRANSFORMATION/RDATA | DATA | ダブル |
12個の連続するデータ値ごとに、先頭の3つの要素は、CP座標系の原点のX、Y、Z座標を示します。 その後の9個の要素は、変換マトリックスの成分をベクトル形式で示します。 |
ELEMENTグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
CBAR | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
GA | integer | 結合ポイントの節点識別番号 | |
GB | integer | ||
FLAG | integer | 方向ベクトルオプション
|
|
X1 | double | GAの変位座標系の成分に対して平行なベクトルvの成分、終点Aの成分、終点Aで測定した成分、または基本座標系。これにより、(終端Aから終端Bへのベクトルで)BAR要素の要素座標系の向きを決定します。 | |
X2 | double | ||
X3 | double | ||
G0 | integer | オプションでX1、X2、X3を指定するための節点識別番号 | |
PA | integer | バー終端Aのピンフラグ | |
PB | integer | バー終端Bのピンフラグ | |
W1A | double | ポイントGAとGBそれぞれにおける変位座標系内または要素座標系内のオフセットベクトルwaおよびwbの成分。 | |
W2A | double | ||
W3A | double | ||
W1B | double | ||
W2B | double | ||
W3B | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CBEAM | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
GA | integer | 結合ポイントの節点識別番号 | |
GB | integer | ||
SA | integer | 現在未使用 | |
SB | integer | ||
X | double | 方向ベクトルの成分(X1、X2、およびX3から) | |
G0 | integer | オプションでX1、X2、X3を指定するための節点識別番号 | |
F | integer | G0の存在を示すためのフラグ
|
|
PA | integer | ビーム終端Aのピンフラグ | |
PB | integer | ビーム終端Bのピンフラグ | |
WA | double | オフセットベクトルの成分。節点AおよびBの変位座標系または要素座標系において、節点から、せん断中心の軸の終了ポイントまでを測定します。 | |
WB | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CBUSH | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
GA | integer | 第1結合ポイントの節点識別番号 | |
GB | integer | 第2結合ポイントの節点識別番号 | |
FLAG | integer | 方向ベクトルオプション
|
|
X1 | double | GAの変位座標系内のGAを起点とする方向ベクトルの成分 | |
X2 | double | ||
X3 | double | ||
G0 | integer | 節点G0を使用して方向ベクトルを指定するための別の方法 | |
CID | integer | 要素座標系の識別番号 | |
S | double | GAとGB間の線分に沿った割合としてのスプリング-ダンパの位置 | |
OCID | integer | スプリング-ダンパオフセットの座標系ID | |
S1 | double | OCID座標系でのスプリング-ダンパオフセットの成分 | |
S2 | double | ||
S3 | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CELAS1 | EID | integer | 要素識別番号 |
PID | integer | プロパティエントリの識別番号 | |
G1 | double | 形状節点またはスカラーポイントの識別番号 | |
G2 | double | ||
C1 | double | GRIDデータのCDエントリによって指定される変位座標系上の成分番号 | |
C2 | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
CELAS2 | EID | integer | 固有の要素識別番号 |
K | double | スプリングの剛性 | |
G1 | double | 形状節点またはスカラーポイントの識別番号 | |
G2 | double | ||
C1 | double | GRIDデータのCDエントリによって指定される変位座標系上の成分番号 | |
C2 | double | ||
GE | double | 減衰係数 | |
S | double | 応力係数 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CHEXA | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合ポイントの節点識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CPENTA | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合ポイントの節点識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CQUAD4 | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合ポイントの節点識別番号 | |
THETA | double | 材料方向角(度単位) | |
ZOFFS | double | 要素節点によって定義された平面からシェル基準面までのオフセット | |
TFLAG | integer | Tの存在を示すためのフラグ
|
|
T | double | 節点における要素の厚さ | |
MCID | integer | 材料座標系の識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CQUAD8 | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合ポイントの節点識別番号 | |
THETA | double | 材料方向角(度単位) | |
ZOFFS | double | 要素節点によって定義された平面からシェル基準面までのオフセット | |
TFLAG | integer | Tの存在を示すためのフラグ
|
|
T | double | 節点における要素の厚さ | |
MCID | integer | 材料座標系の識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CROD | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合ポイントの節点識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CSHEAR | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合ポイントの節点識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CTETRA | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合された節点の識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CTRIA3 | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合された節点の識別番号 | |
THETA | double | 材料方向角(度単位) | |
ZOFFS | double | 要素節点によって定義された平面からシェル基準面までのオフセット | |
TFLAG | integer | Tの存在を示すためのフラグ
|
|
T | double | 節点における要素の厚さ | |
MCID | integer | 材料座標系の識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CTRIA6 | EID | integer | 要素識別番号 |
PID | integer | プロパティ識別番号 | |
G | integer | 結合された節点の識別番号 | |
THETA | double | 材料方向角(度単位) | |
ZOFFS | double | 要素節点によって定義された平面からシェル基準面までのオフセット | |
TFLAG | integer | Tの存在を示すためのフラグ
|
|
T | double | 節点における要素の厚さ | |
MCID | integer | 材料座標系の識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 |
MATERIALグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
MAT1 | MID | integer | 材料識別番号 |
E | ダブル | ヤング率 | |
G | ダブル | せん断係数 | |
NU | ダブル | ポアソン比 | |
RHO | ダブル | 質量密度 | |
A | double | 熱膨張係数 | |
TREF | ダブル | 熱荷重の参照温度 | |
GE | double | 構造要素の減衰係数 | |
ST | double | 引張での応力限界 | |
SC | ダブル | 圧縮での応力限界 | |
SS | ダブル | せん断での応力限界 | |
MCSID | 整数 | 材料座標系の識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 |
NODEグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
GRID | ID | integer | グリッド識別番号 |
CP | integer | 座標系の識別番号 | |
X | double | 座標系CP内の節点の位置 | |
CD | integer | 節点において変位、自由度、制約条件、およびソリューションベクトルが定義される座標系の識別番号。 | |
PS | integer | 節点に関連付けられた永続的な単点拘束 | |
SEIDE | integer | 現在未使用 | |
DOMAIN_ID | integer | ドメイン識別子 |
MATERIALグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
PBAR | PID | integer | プロパティ識別番号 |
MID | double | 材料識別番号 | |
A | double | 断面の面積 | |
I1 | double | 平面1の断面2次モーメント | |
I2 | double | 平面2の断面2次モーメント | |
NSM | double | 断面相乗モーメント | |
FE | double | 現在未使用 | |
C1 | double | 応力リカバリー係数 | |
C2 | double | ||
D1 | double | ||
D2 | double | ||
E1 | double | ||
E2 | double | ||
F1 | double | ||
F2 | double | ||
K1 | double | せん断の面積係数 | |
K2 | double | ||
I12 | double | 断面相乗モーメント | |
DOMAIN_ID | integer | ドメイン識別子 | |
PBARL | PID | integer | プロパティ識別番号 |
MID | integer | 材料識別番号 | |
GROUP | character | 任意のビーム断面定義を使用するかどうかを示します | |
TYPE | character | 断面のタイプ | |
INFO_POS | integer | ||
INFO_LEN | integer | ||
DOMAIN_ID | integer | ドメイン識別子 | |
PBEAM | PID | integer | プロパティ識別番号 |
MID | integer | 材料識別番号 | |
NSEGS | integer | 断面の数 | |
CCF | integer | 現在未使用 | |
CWELD | integer | 現在未使用 | |
SECTION | BEAM_SECTION | これは、ビームの断面プロパティを定義するために使用される係数のグループです。 | |
K1 | double | 平面1のせん断剛性係数 | |
K2 | double | 平面2のせん断剛性係数 | |
S1 | double | せん断リリーフ係数 | |
S2 | double | ||
NSIA | double | 終端Aにおける非構造質量重心周りの単位長さあたりの非構造質量慣性モーメント | |
NSIB | double | 終端Bにおける非構造質量重心周りの単位長さあたりの非構造質量慣性モーメント | |
CWA | double | 終端Aの反り係数 | |
CWB | double | 終端Bの反り係数 | |
M1A | double | 終端Aにおける非構造質量の重心の(y,z)座標 | |
M2A | double | ||
M1B | double | 終端Bにおける非構造質量の重心の(y,z)座標 | |
M2B | double | ||
N1A | double | 終端Aにおける中立軸の(y,z)座標 | |
N2A | double | ||
N1B | double | 終端Bにおける中立軸の(y,z)座標 | |
N2B | double | ||
DOMAIN_ID | integer | ドメイン識別子 | |
PBUSH | PID | integer | プロパティ識別番号 |
K | double | 方向1~6の公称剛性値 | |
B | double | 方向1~6の公称減衰係数 | |
GE | double | 方向1~6の公称構造減衰定数 | |
SA | double | 並進成分の応力リカバリー係数 | |
ST | double | 回転成分の応力リカバリー係数 | |
EA | double | 並進成分のひずみリカバリー係数 | |
ET | double | 回転成分のひずみリカバリー係数 | |
M | double | 方向1~6の公称質量値 | |
DOMAIN_ID | integer | ドメイン識別子 | |
PELAS | PID | integer | プロパティ識別番号 |
K | double | 弾性プロパティ値 | |
GE | double | 減衰係数 | |
S | double | 応力係数 | |
DOMAIN_ID | integer | ドメイン識別子 | |
PSHEAR | PID | integer | プロパティ識別番号 |
MID | integer | 材料識別番号 | |
T | double | せん断パネルの厚み | |
NSM | double | 単位面積あたりの非構造質量 | |
F1 | double | エッジ1-2および3-4に沿った引張剛性の有効係数 | |
F2 | double | エッジ2-3および1-4に沿った引張剛性の有効係数 | |
DOMAIN_ID | integer | ドメイン識別子 | |
PSHELL | PID | integer | プロパティ識別番号 |
MID1 | integer | 膜の材料識別番号 | |
T | double | 膜厚 | |
MID2 | integer | 曲げの材料識別番号 | |
BK | double | 現在未使用 | |
MID3 | integer | 横せん断の材料識別番号 | |
TS | double | 横せん断厚を膜厚で割った値 | |
NSM | double | 単位面積あたりの非構造質量 | |
Z1 | double | 応力計算用の板厚方向距離 | |
Z2 | double | ||
MID4 | integer | 膜-曲げ連成の材料識別番号 | |
DOMAIN_ID | integer | ドメイン識別子 | |
PSOLID | PID | integer | プロパティ識別番号 |
MID | integer | 材料識別番号 | |
CORDM | integer | 材料座標系のMID | |
IN | integer | 統合ネットワーク | |
STRESS | integer | 応力出力の位置選択 | |
ISOP | integer | 弾塑性陰的非線形静解析の積分スキーム。 | |
FCTN | character | 流体要素フラグ | |
DOMAIN_ID | integer | ドメイン識別子 |
OptiStruct RESULTSグループ
ACOUSTICグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
PRESSURE_CPLX | ID | integer | ポイント識別番号 |
PR | ダブル | 音圧(実数) | |
PRMSR | ダブル | RMS音圧(実数) | |
DBR | ダブル | dB単位の音圧(実数) | |
DBAR | ダブル | dBA単位の音圧(実数) | |
PI | ダブル | 音圧(虚数) | |
PRMSI | ダブル | RMS音圧(虚数) | |
DBI | ダブル | dB単位の音圧(虚数) | |
DBAI | ダブル | dBA単位の音圧(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 |
ELEMENTAL/ELEMENT_FORCEグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
BAR | EID | integer | 要素識別番号 |
BM1A | double | 終端A平面1における曲げモーメント | |
BM2A | double | 終端A平面2における曲げモーメント | |
BM1B | double | 終端B平面1における曲げモーメント | |
BM2B | double | 終端B平面2における曲げモーメント | |
TS1 | double | 平面1におけるせん断 | |
TS2 | double | 平面2におけるせん断 | |
AF | double | 軸力 | |
TRA | integer | トルク | |
DOMAIN_ID | integer | ドメイン識別子 | |
BEAM | EID | integer | 要素識別番号 |
FORCE | integer | BEAMの要素力構造 | |
DOMAIN_ID | integer | ドメイン識別子 | |
BUSH | EID | integer | 要素識別番号 |
FX | double | 力x | |
FY | double | 力y | |
FZ | double | 力z | |
MX | double | 膜力x | |
MY | double | 膜力y | |
MZ | integer | z方向の曲げモーメント | |
DOMAIN_ID | integer | ドメイン識別子 | |
CONROD/ROD | EID | integer | 要素識別番号 |
AF | double | 軸力 | |
TRQ | double | トルク | |
DOMAIN_ID | integer | ドメイン識別子 | |
ELAS1 | EID | integer | 要素識別番号 |
F | double | 力 | |
DOMAIN_ID | integer | ドメイン識別子 | |
TRIA3/QUAD4 | EID | integer | 要素識別番号 |
FORCE | double | 力 | |
DOMAIN_ID | integer | ドメイン識別子 | |
QUAD8 | EID | integer | 要素識別番号 |
TERM | character | 文字列 | |
FORCE | double | 力 | |
DOMAIN_ID | integer | ドメイン識別子 | |
ROD | EID | integer | 要素識別番号 |
AF | character | 軸力 | |
TRQ | double | トルク | |
DOMAIN_ID | integer | ドメイン識別子 | |
SHEAR | EID | integer | 要素識別番号 |
F41 | double | 力4→力1 | |
F21 | double | 力2→力1 | |
F12 | double | 力1→力2 | |
F32 | double | 力3→力2 | |
F23 | double | 力2→力3 | |
F43 | double | 力4→力3 | |
F14 | double | 力1→力4 | |
KF1 | double | 1のキック力 | |
S12 | double | せん断1 2 | |
KF2 | double | 2のキック力 | |
S23 | double | せん断2 3 | |
KF3 | double | 3のキック力 | |
S34 | double | せん断3 4 | |
KF4 | double | 4のキック力 | |
S41 | double | せん断4 1 | |
DOMAIN_ID | integer | ドメイン識別子 | |
TRIA6 | EID | integer | 要素識別番号 |
TERM | character | 位置 | |
FORCE | double | typedefセクションで定義されるデータ構造 | |
DOMAIN_ID | integer | ドメイン識別子 |
ELEMENTAL/STRESSグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
BAR | EID | integer | 要素識別番号 |
X1A | double | SA1 | |
X2A | double | SA2 | |
X3A | double | SA3 | |
X4A | double | SA4 | |
X | double | 軸 | |
MAXA | double | SA最大 | |
MINA | double | SA最小 | |
MST | double | 引張の安全余裕度 | |
X1B | double | SB1 | |
X2B | double | SB2 | |
X3B | double | SB3 | |
X4B | double | SB4 | |
MAXB | double | SB最大 | |
MINB | double | SB最小 | |
MSC | double | 圧縮の安全余裕度 | |
DOMAIN_ID | integer | ドメイン識別子 | |
BAR_CPLX | EID | integer | 要素識別番号 |
X1AR | ダブル | SA1(実数) | |
X2AR | ダブル | SA2(実数) | |
X3AR | ダブル | SA3(実数) | |
X4AR | ダブル | SA4(実数) | |
AXR | ダブル | 軸(実数) | |
X1AI | ダブル | SA1(虚数) | |
X2AI | ダブル | SA2(虚数) | |
X3AI | ダブル | SA3(虚数) | |
X4AI | ダブル | SA4(虚数) | |
AXI | ダブル | 軸(虚数) | |
X1BR | ダブル | SB1(実数) | |
X2BR | ダブル | SB2(実数) | |
X3BR | ダブル | SB3(実数) | |
X4BR | ダブル | SB4(実数) | |
X1BI | ダブル | SB1(虚数) | |
X2BI | ダブル | SB2(虚数) | |
X3BI | ダブル | SB3(虚数) | |
X4BI | ダブル | SB4(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
BEAM | EID | integer | 要素識別番号 |
GRID | 整数 | 節点識別番号 | |
SD | ダブル | ステーションの距離を長さで割った値 | |
XC | ダブル | ポイントCにおける縦方向応力 | |
XD | ダブル | ポイントDにおける縦方向応力 | |
XE | ダブル | ポイントEにおける縦方向応力 | |
XF | ダブル | ポイントFにおける縦方向応力 | |
MAX | ダブル | 最大応力 | |
MIN | ダブル | 最小応力 | |
MST | double | 安全余裕度(引張) | |
MSC | double | 安全余裕度(圧縮) | |
DOMAIN_ID | integer | ドメイン識別子 | |
BEAM_CPLX | EID | integer | 要素識別番号 |
GRID | 整数 | 節点識別番号 | |
SD | |||
XCR | ダブル | ポイントCにおける縦方向応力(実数) | |
XDR | ダブル | ポイントDにおける縦方向応力(実数) | |
XER | ダブル | ポイントEにおける縦方向応力(実数) | |
XFR | ダブル | ポイントFにおける縦方向応力(実数) | |
XCI | ダブル | ポイントCにおける縦方向応力(虚数) | |
XDI | ダブル | ポイントDにおける縦方向応力(虚数) | |
XEI | ダブル | ポイントEにおける縦方向応力(虚数) | |
XFI | ダブル | ポイントFにおける縦方向応力(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
BUSH | EID | integer | 要素識別番号 |
TX | double | x方向のせん断力 | |
TY | double | y方向のせん断力 | |
TZ | double | z方向のせん断力 | |
RX | double | x方向の回転 | |
MY | double | y方向の回転 | |
MZ | integer | z方向の回転 | |
DOMAIN_ID | integer | ドメイン識別子 | |
CONROD/ROD | EID | integer | 要素識別番号 |
AF | double | 軸力 | |
TRQ | double | トルク | |
DOMAIN_ID | integer | ドメイン識別子 | |
ELAS1 | EID | integer | 要素識別番号 |
S | double | 応力 | |
DOMAIN_ID | integer | ドメイン識別子 | |
HEXA | EID | integer | 要素識別番号 |
CID | integer | 応力座標系 | |
CTYPE | character | 座標系タイプ(BCD) | |
NODEF | integer | アクティブポイントの数 | |
SS | - | 節点応力構造 | |
DOMAIN_ID | integer | ドメイン識別子 | |
HEXA_CPLX | EID | integer | 要素識別番号 |
CID | integer | 応力座標系 | |
CTYPE | character | 座標系タイプ(BCD) | |
NODEF | integer | アクティブポイントの数 | |
SS | - | 節点応力構造(複素数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
PENTA | EID | integer | 要素識別番号 |
CID | integer | 応力座標系 | |
CTYPE | character | 座標系タイプ(BCD) | |
NODEF | integer | アクティブポイントの数 | |
SS | - | 節点応力構造 | |
DOMAIN_ID | integer | ドメイン識別子 | |
PENTA_CPLX | EID | integer | 要素識別番号 |
CID | integer | 応力座標系 | |
CTYPE | character | 座標系タイプ(BCD) | |
NODEF | integer | アクティブポイントの数 | |
SS | - | 節点応力構造(複素数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
ROD | EID | integer | 要素識別番号 |
A | double | 軸応力 | |
MSA | double | 軸の安全余裕度 | |
T | double | 合計応力 | |
MST | double | 引張の安全余裕度 | |
DOMAIN_ID | integer | ドメイン識別子 | |
ROD_CPLX | EID | integer | 要素識別番号 |
AR | ダブル | 軸応力(実数) | |
AI | ダブル | 軸応力(虚数) | |
TR | ダブル | 合計応力(実数) | |
TI | ダブル | 合計応力(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
SHEAR | EID | integer | 要素識別番号 |
TMAX | double | 最大せん断 | |
TAVG | double | 平均せん断 | |
MS | double | 安全余裕度 | |
DOMAIN_ID | double | ドメイン識別子 | |
TETRA | EID | integer | 要素識別番号。 |
CID | integer | 応力座標系 | |
CTYPE | character | 座標系タイプ(BCD) | |
NODEF | integer | アクティブポイントの数。 | |
SS | GRID_SS | 節点のひずみと応力の構造。 | |
DOMAIN_ID | integer | ドメイン識別子 | |
TRIA3 | EID | integer | 要素識別番号。 |
AR | ダブル | 軸応力(実数) | |
AI | ダブル | 軸応力(虚数) | |
TR | ダブル | 合計応力(実数) | |
TI | ダブル | 合計応力(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
TRIA3_CPLX | EID | integer | 要素識別番号 |
FD1 | double | 繊維距離(Z1) | |
X1R | ダブル | Z1におけるX方向の法線(実数) | |
X1I | ダブル | Z1におけるX方向の法線(虚数) | |
Y1R | ダブル | Z1におけるY方向の法線(実数) | |
Y1I | ダブル | Z1におけるY方向の法線(虚数) | |
TXY1R | ダブル | Z1におけるXY方向のせん断(実数) | |
TXY1I | ダブル | Z1におけるXY方向のせん断(虚数) | |
FD2 | double | 繊維距離(Z2) | |
X2R | ダブル | Z2におけるX方向の法線(実数) | |
X2I | ダブル | Z2におけるX方向の法線(虚数) | |
Y2R | ダブル | Z2におけるY方向の法線(実数) | |
Y2I | ダブル | Z2におけるY方向の法線(虚数) | |
TXY2R | ダブル | Z2におけるXY方向のせん断(実数) | |
TXY2I | ダブル | Z2におけるXY方向のせん断(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
TRIA6 | EID | integer | 要素識別番号。 |
TERM | character | 位置 | |
GRID | 整数 | 節点識別番号 | |
FD1 | double | 繊維距離(Z1) | |
X1 | double | Z1におけるX方向の法線 | |
Y1 | double | Z1におけるY方向の法線 | |
XY1 | double | Z1におけるXY方向のせん断 | |
FD2 | double | 繊維距離(Z2) | |
X2 | double | Z2におけるX方向の法線 | |
Y2 | double | Z2におけるY方向の法線 | |
XY2 | double | Z2におけるXY方向のせん断 | |
DOMAIN_ID | integer | ドメイン識別子 | |
TRIA6_CPLX | EID | integer | 要素識別番号 |
TERM | character | 位置 | |
GRID | 整数 | 節点識別番号 | |
FD1 | double | 繊維距離(Z1) | |
X1R | ダブル | Z1におけるX方向の法線(実数) | |
X1I | ダブル | Z1におけるX方向の法線(虚数) | |
Y1R | ダブル | Z1におけるY方向の法線(実数) | |
Y1I | ダブル | Z1におけるY方向の法線(虚数) | |
XYIR | ダブル | Z1におけるXY方向のせん断(実数) | |
XY1I | ダブル | Z1におけるXY方向のせん断(虚数) | |
FD2 | double | 繊維距離(Z2) | |
X2R | ダブル | Z2におけるX方向の法線(実数) | |
X2I | ダブル | Z2におけるX方向の法線(虚数) | |
XY2R | ダブル | Z2におけるXY方向のせん断(実数) | |
XY2I | ダブル | Z2におけるXY方向のせん断(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
QUAD4 | EID | integer | 要素識別番号 |
FD1 | double | 繊維距離(Z1) | |
X1 | double | Z1におけるX方向の法線 | |
Y1 | double | Z1におけるY方向の法線 | |
XY1 | double | Z1におけるXY方向のせん断 | |
FD2 | double | 繊維距離(Z2) | |
X2 | double | Z2におけるX方向の法線 | |
Y2 | double | Z2におけるY方向の法線 | |
XY2 | double | Z2におけるXY方向のせん断 | |
DOMAIN_ID | integer | ドメイン識別子 | |
QUAD4_CPLX | EID | integer | 要素識別番号 |
FD1 | double | 繊維距離(Z1) | |
X1R | ダブル | Z1におけるX方向の法線(実数) | |
X1I | ダブル | Z1におけるX方向の法線(虚数) | |
Y1R | ダブル | Z1におけるY方向の法線(実数) | |
Y1I | ダブル | Z1におけるY方向の法線(虚数) | |
TXY1R | ダブル | Z1におけるXY方向のせん断(実数) | |
TXY1I | ダブル | Z1におけるXY方向のせん断(虚数) | |
FD2 | double | 繊維距離(Z2) | |
X2R | ダブル | Z2におけるX方向の法線(実数) | |
X2I | ダブル | Z2におけるX方向の法線(虚数) | |
Y2R | ダブル | Z2におけるY方向の法線(実数) | |
Y2I | ダブル | Z2におけるY方向の法線(虚数) | |
TXY2R | ダブル | Z2におけるXY方向のせん断(実数) | |
TXY2I | ダブル | Z2におけるXY方向のせん断(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
QUAD8 | EID | integer | 要素識別番号 |
TERM | character | 文字列 | |
GRID | 整数 | 節点識別番号 | |
FD1 | double | 繊維距離(Z1) | |
X1 | double | Z1におけるX方向の法線 | |
Y1 | double | Z1におけるY方向の法線 | |
XY1 | double | Z1におけるXY方向のせん断 | |
FD2 | double | 繊維距離(Z2) | |
X2 | double | Z2におけるX方向の法線 | |
Y2 | double | Z2におけるY方向の法線 | |
DOMAIN_ID | integer | ドメイン識別子 | |
QUAD8_CPLX | EID | integer | 要素識別番号 |
TERM | character | 文字列 | |
GRID | 整数 | 節点識別番号 | |
FD1 | double | 繊維距離(Z1) | |
X1R | ダブル | Z1におけるX方向の法線(実数) | |
X1I | ダブル | Z1におけるX方向の法線(虚数) | |
Y1R | ダブル | Z1におけるY方向の法線(実数) | |
Y1I | ダブル | Z1におけるY方向の法線(虚数) | |
XY1R | ダブル | Z1におけるXY方向のせん断(実数) | |
XY1I | ダブル | Z1におけるXY方向のせん断(虚数) | |
FD2 | double | 繊維距離(Z2) | |
X2R | ダブル | Z2におけるX方向の法線(実数) | |
X2I | ダブル | Z2におけるX方向の法線(虚数) | |
Y2R | ダブル | Z2におけるY方向の法線(実数) | |
Y2I | ダブル | Z2におけるY方向の法線(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 |
注: これらのデータセットは、ELEMENTAL/STRAINグループにも適用できます。
NODALグループ内のデータセットを以下に示します。
データセット名 | フィールド | タイプ | 説明 |
---|---|---|---|
APPLIED_LOAD | ID | integer | グリッド識別番号 |
X | double | X成分 | |
Y | double | Y成分 | |
Z | double | Z成分 | |
RX | double | RX成分 | |
RY | double | RY成分 | |
RZ | double | RZ成分 | |
DOMAIN_ID | integer | ドメイン識別子 | |
DISPLACEMENT | ID | integer | グリッド識別番号 |
X | double | X成分 | |
Y | double | Y成分 | |
Z | double | Z成分 | |
RX | double | RX成分 | |
RY | double | RY成分 | |
RZ | double | RZ成分 | |
_nmd_5rb"> DOMAIN_ID | integer | ドメイン識別子 | |
DISPLACEMENT_CPLX | ID | integer | グリッド識別番号 |
XR | ダブル | X成分(実数) | |
YR | ダブル | Y成分(実数) | |
ZR | ダブル | Z成分(実数) | |
RXR | ダブル | RX成分(実数) | |
RYR | ダブル | RY成分(実数) | |
RZR | ダブル | RZ成分(実数) | |
XI | ダブル | X成分(虚数) | |
YI | ダブル | Y成分(虚数) | |
ZI | ダブル | Z成分(虚数) | |
RXI | ダブル | RX成分(虚数) | |
RYI | ダブル | RY成分(虚数) | |
RZI | ダブル | RZ成分(虚数) | |
DOMAIN_ID | integer | ドメイン識別子 | |
EIGENVECTOR | ID | integer | グリッド識別番号 |
X | double | X成分 | |
Y | double | Y成分 | |
Z | double | Z成分 | |
RX | double | RX成分 | |
RY | double | RY成分 | |
RZ | double | RZ成分 | |
DOMAIN_ID | integer | ドメイン識別子 | |
MPC_FORCE | ID | integer | グリッド識別番号 |
X | double | X成分 | |
Y | double | Y成分 | |
Z | double | Z成分 | |
RX | double | RX成分 | |
RY | double | RY成分 | |
RZ | double | RZ成分 | |
DOMAIN_ID | integer | ドメイン識別子 | |
SPC_FORCE | ID | integer | グリッド識別番号 |
X | double | X成分 | |
Y | double | Y成分 | |
Z | double | Z成分 | |
RX | double | RX成分 | |
RY | double | RY成分 | |
RZ | double | RZ成分 | |
DOMAIN_ID | integer | ドメイン識別子 |
データの読み取り
ここでは、CとPythonでの読み取りの例を示します。
最小要件は次のとおりです:
- Python: h5py、numpy
- C: hdf5およびhdf5_hlライブラリ
Pythonの例1:.h5ファイルからの変位の読み取り
この例は、.h5ファイルからの変位データを読み取ります。
# ******************************************************
# 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の例2:.h5ファイル内の変位からの特定データの読み取り
この例では、変位の特定データへのアクセス方法を示します。ここでは、データがフィルタリングされ、節点17の変位が取得されます。
# ******************************************************
# 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の例3:.h5ファイルからの応力の読み取り
この例では、.h5ファイル(dang_van_tbl_smallshr.h5)からのCHEXA応力結果の読み取りを示します。
# ******************************************************
# 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の例
メイン関数は次のように与えられます:
#include "ex.h"
int main() {
ex2();
}
#ifndef CEXPFORH5_EX_H
#define CEXPFORH5_EX_H
int ex1();
int ex2();
#endif //CEXPFORH5_EX_H
Cの例1:変位の読み取りと出力
この例では、.h5ファイル(cbar_strstn_static.h5)からのCHEXA応力の読み取りを示します。
# ******************************************************
# 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の例2:CHEXA要素からの応力の読み取りと出力
この例は、.h5ファイル(dang_van_tbl_smallshr.h5)内の配列を操作する手順の理解にも役立ちます。
# ******************************************************
# 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;
}