GMS構造ファイル

差分構造情報を記録したHDF5ファイルです。格子情報、物性情報が記録されています。

 

構造

IndexMesh: Group

<Mesh名>: 32-bit integer[<X方向サイズ>][<Y方向サイズ>][<Z方向サイズ>]

MultipleGrid: Group

<MultiformGrid>: Group

Dimension0: 32-bit float[X方向長さ]

Dimension1: 32-bit float[Y方向長さ]

Dimension2: 32-bit float[Z方向長さ]]

PhysicalProperty: Group

Key: 32-bit integer[<物性値の種類数>]

Property: 32-bit float[<物性値の種類数>][4]

AbsorpingBoundary: Group

<Region> : Group

<Direction>: Group

Thickness: 32-bit integer [長さ]

Power: 32-bit float[長さ]

FDMToolID: Group

This: 32-bit integer[16]

 

データ

MultipleGrid

不連続格子です。複数のMultiformGridの集合です。

MultiformGrid

不等間隔格子です。3個の間隔ベクトルの集合です。間隔ベクトルはDimension0,1,2の名前がついています。間隔とは対角応力成分の格子点を中心とした両隣の速度成分格子同士の距離です。

FDMToolID

GMSのユニークIDです。自分のIDを記録します。

IndexMesh

格子点上の物性番号の3次元配列です。

PhysicalProperty

Key

IndexMeshの物性番号とPropertyの添え字のマッピングを行います。通常、FDMakeが自動的に作成します。

Property

物性値の値を記録します。第1次元が物性値のインデックス、第2次元が物性の種類になっており、P波速度[m/s]、S波速度[m/s]、密度[kg/m^3]、Qの順になっています。

AbroptingBoundary

Region

 

 

解説

差分構造情報を記録したHDF5ファイルです。MultipleGridとIndexMeshのサイズは整合していなければなりません。また、IndexMesh内の数値はPhysicalPropetyのKey配列に格納されている数値のどれかでなくてはなりません。このファイルを読み込むAPIはstruct_readです。

 

この構造ファイルのIndexMesh部分は巨大になるため、通常zlibで圧縮されています。エンディアンの異なるマシンで作成されたファイルを読み込む場合、ファイルを作成したアプリケーションがHDF5チャンクサイズを適切に設定していないと、読み込み速度に深刻な影響を与えることがあります。チャンクサイズの第2次元、第3次元はIndexMeshの第2次元、第3次元と同じ値にするようにしてください。

 

参照

struct_read, struct_size