5. AVS/Express PCEにて利用できるデータファイルフォーマット¶
AVS/Express PCEで可視化を行う時に使用できるデータは、大きく分けて以下の2つのフォーマットが用意されています。
- AVS Field
2次元や3次元の構造格子のデータを扱うフォーマットです。
- AVS UCD
Unstructured Cell Dataの略で、非構造格子型のデータを扱うフォーマットです。
5.1. AVS Fieldデータフォーマット¶
AVS Fieldフォーマットはヘッダー部と物理量データ部、形状データ部の3つのパートで作成されます。 この3つのパートを1つのファイルとして取り扱うことができますが、作成するのに面倒なので、別ファイルとして取り扱うこともできます。 形状が等間隔直交メッシュの場合は、形状データは必要ありません。 データ部に書いてある内容をヘッダー部で説明するような形式になります。データ部はASCII形式でもバイナリ形式でも取り扱うことができます
5.1.1. ヘッダファイル・パラメータ¶
- ヘッダファイルのファイル名には必ず拡張子.fldが必要です。
- ヘッダファイルの最初の行は#AVSと書き込みます。
(2行目からの#はコメントですので#の後に続く文字は全て無視されます)
- ndim = 値(必須)
…フィールドの計算空間の次元数
- dim1 = 値(必須)
- dim2 = 値(必須、ndimの値に依存)
- dim3 = 値(必須、ndimの値に依存)
…各軸の次元サイズ
- nspace = 値(必須)
…物理空間の次元数。データが存在する空間が2次元(x、y平面)であるか、3次元(x,y,z)であるかを記述します。
- veclen = 値(必須)
…各フィールド要素のデータ数
- data = {byte,integer,float,doubleの中の1つが必須}
…各フィールド要素のデータ数
- data = {byte,integer,float,doubleの中の1つが必須}
…データ・タイプ
- field = {uniform,rectilinear,irregularの中の1つが必須}
…フィールドのタイプ
label = 文字列(オプション)
…各要素にタイトルを付ける
- unit = 文字列(オプション)
…各要素に単位を付ける
以下のvariable・coordにはサブパラメータがあります
- variable(必須)
…データファイルのフォーマットを指定
- coord(必須 但し uniformフィールドタイプには不要)
…座標情報のフォーマットを指定
varlable・coordのパラメータコマンド
5.1.1.1. パラメータ¶
- n
データ要素数.座標値数を指定
- file
データ又は座標値が人っているファイル名の指定
- filetype,ascii,unformatted,binary
5.1.1.2. コマンド¶
- skip = n
asciiファイルでは読み飛ばす行数を指定 unformatted,binary では読み飛ばすバイト数を指定(skipのデフォルトは0)
- offset = m
最初のデータを読み始める前に読み飛ばすカラム数を指定(asciiファイルの時のみ使用)(offsetのデフォルトは0)
- stride = p
次のデータを読み込むための読み飛ばすカラム数を指定 (binaryと書式なしの場合は p x データ・サイズ) (stride のデフォルトは1)
5.2. AVS Fieldデータ例¶
5.2.1. スカラーデータ例¶
次に示すデータのFieldデータを作成します。
小さい文字の数値は座標値で、イタリックの文字はノード上の物理量(スカラー値)です。 このデータの形状データおよび物理量のデータを以下に示します。
形状データ:scalar.geo
0.0 1.0 2.0 3.0 0.0 1.0 2.0 3.0 0.0 1.0 2.0 3.0
0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0
物理量データ:scalar.dat
50. 55. 60. 80. 57. 60. 65. 95. 70. 76. 88. 100.
上記のデータに対するAVS Fieldデータを以下に示します。
AVS Fieldデータ:scalar.fld
1 2 3 4 5 6 7 8 9 10 11 |
|
各行の意味は以下のようになっています。
1行目 1行目は必ず#AVSと書きます。
2行目 2次元格子データなので、ndim=2となります。
3、4行目 i方向の次元数が4、j方向の次元数が3なので、dim1=4,dim2=3となります。
5行目 2次元平面のデータなのでnspaceの値は2になります。
6行目 物理量が1種類だけなので、veclenの値は1になります。
7行目 物理量のデータが浮動小数点のデータなので、dataの指定はfloatになります。
8行目 このデータのタイプはuniformになりますが、各データのX,Y,Z座標値を与えるので、 irregular形式として取り扱います。
9行目 形状ファイルavs.geoの中に1行目から1レコードで書かれてあり読み飛ばす必要はないので、 skip=0,offset=0となります。
10行目 形状ファイルavs.geoの中に2行目から1レコードで書かれてあり始めの一行目だけを 読み飛ばすので、skip=1,offset=0 となります。
11行目 物理量のデータファイル avs.dat の中に、1行目から1レコードで書かれてあり 読み飛ばす必要はないので、skip=0,offset=0となります。
5.2.2. ベクトルデータ例¶
下記に示すデータのFieldデータを作成します。
小さい文字の数値は座標値で、イタリックの文字はノード上の物理量(ベクトル値)です。 このデータの形状データおよび物理量のデータを以下に示します。
形状データ:vedor.geo
0.0 1.0 1.0 0.0
0.0 0.0 1.0 1.0
物理量データ:vedor.dat
1.0 1.0 1.0 1.0
-1.0 0.0 0.5 1.0
上記のデータに対するAVS Fieldデータを以下に示します。
AVS Fieldデータ:vector.fld
1 2 3 4 5 6 7 8 9 10 11 12 |
|
各行の意味は以下のようになっています。(スカラーデータと違う部分に関してのみ説明します)
3,4行目 i方向の次元数が2、j方向の次元数が2なので、dim1=2,dim2=2となります。
6行目 物理量は、U,Vの組みなので、veclenの値は2になります。
11行目 物理量のデータファイルavs.datの中に、1行目から1レコードで書かれてあり 読み飛ばす必要はないので、skip=0,offset=0となります。
12行目 物理量のデータファイル avs.dat の中に、2行目から1レコードで書かれてあり 一行目だけを読み飛ばすのでskip=0,offset=0となります。
5.3. AVS UCDデータフォーマット¶
有限要素法等で計算された結果は、フィールドデータフォーマットと違い、構造格子状になっていません。 三角形や、四角形などの要素型になっています。 このようなデータは、UCDデータフォーマットで取り扱います。 UCDデータフォーマットはセル(要素)とノード(節点)で構成され、ノードにデータを与えたり、セルにデータを持たせることができます。
5.3.1. セル(要素)の種類¶
データに使用できるセルタイプには次のものがあります。各ノードに示されている番号は、ノードの接続の順番を示しています。
上に示すセルに対して、2次要素としてノード問に対しても情報を持つことができます。
5.3.2. データの形式¶
UCDのファイルフォーマットは、ノードの座標値、データ等の情報を次に示すようにアスキー形式で作成します。
#コメント
<ステップ数>
<サイクルタイプ>
step1 <コメント>
<節点数> <要素数>
<節点番号1> <X> <Y> <Z>
<節点番号2> <X> <Y> <Z>
:
<要素番号1> <マテリアル番号> <要素タイプ> <要素の構成>
<要素番号2> <マテリアル番号> <要素タイプ> <要素の構成>
:
:
<節点データ数> <要素データ数>
<節点データ成分数> <第1成分ベクトル長> <第2成分ベクトル長>
<第1成分名>, <第1成分単位名>
<第2成分名>, <第2成分単位名>
:
:
<節点番号1> <節点データ1> <節点データ1>
<節点番号2> <節点データ2> <節点データ2>
:
:
<要素データ成分数> <第1成分ベクトル長> <第2成分ベクトル長>
<第1成分名>, <第1成分単位名>
<第2成分名>, <第2成分単位名>
:
:
<要素番号1> <要素データ1> <要素データ2> …
:
:
step2 <コメント>
<節点数> <要素数>
<節点番号1> <X> <Y> <Z>
<節点番号2> <X> <Y> <Z>
:
:
<節点データ数> <要素データ数>
<要素データ成分数> <第1成分ベクトル長> <第2成分ベクトル長>
<第1成分名>, <第1成分単位名>
:
:
step3 <コメント>
:
:
ファイル形式の説明は次の通りです。
- # データに関する記述の前((2)の部分以前)に存在する#で始まる行は、コメント行として使用することができます。
- <ステップ数> ファイル内に書かれているデータのステップ数を記述します。
- <サイクルタイプ> 繰り返しのタイプ。data,geom,data_geomから指定します。geomが指定されたときは (4)~(7)の項目が繰り返され、dataが指定されたときは(4)から次のステップまでの項目が繰り返されます。 data-geomが指定されれば、(4)から次のステップまでの項目が繰り返されます。
- stepN 各ステップの先頭にはステップ番号を記述します。第1ステップはstep1,第2ステップはstep2…と記述する必要があります。ステップ番号の後には、そのステップに対するコメントを記述することができます。Read_UCDモジュールはこのコメントを出力するので、ビューワー・ウィンドウに表示させることも可能です。
- <節点数>,<要素数>節点数および要素数。サイクルタイプがgeomまたはdata_geomの場合はステップ毎に 記述されますが、geomの場合には、第1ステップと同じ値を第2ステップ以降に記述する必要があります。
- <節点番号>、
, , 節点番号と節点の座標値を全ての節点に関して記述します。節点番号は整数値です。連続した番号でなくても構いませんが、重複しないようにして下さい。 -
<要素番号>整数値です。連続した番号でなくても構いませんが、重複しないようにして下さい。
-
<マテリアル番号>
要素をグループ分けするのに用いる整数値です。
- <要素タイプ>
要素のタイプを指定します。要素にはコーナーのみに節点を持つ1次要素と中関節点を持つ2次要素があります。
- <要素の構成>
要素を構成する節点の番号を記述します。この番号は(6)で記述したものに対応しています。
以上について、すべての要素に関して記述します。
5.3.3. スカラーデータ例¶
下記に示すデータのFieldデータを作成します。 小さい文字の数値は座標値で、イタリックの細文字はノードの番号です。 イタリックの太文字はセル上の物理量,スカラー値)です。このデータは、節点上ではなく、要素上に物理量が存在する例です。この図のUCDデータを以下に示します。
scalar.inp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
各行の意味は以下のようになっています。
1行目 1ステップのデータなので、ステップ数は1となります。
2行目 ステップ数が1なので、この部分はdataでもgeomでもdata_geomでも構いません。
3行目 全ノード数が8、セル数が3になります。
5-12行目 ノード番号と、ノードのX,Y,Z座標値を示しています。
13-15行目 各セルのセル番号と、セルタイプ、ノードの接続順番を指定します。
16行目 このデータは、節点上ではなく、要素上に1種類の物理量が存在するデータなので、節点データ数は0、要素データ数が1となります。
17行目 1種類のスカラー値のため、データ成分数が1、第1成分ベクトル長は1となります。
18行目 成分名(任意の文字列:scalar)と、その単位名(任意の文字列:)。単位名は、つけなくても構いませんが、成分名の後のコンマ“,“は必ずつけて下さい。
19-21行目 要素番号、要素データを各要素毎に記述します。
5.3.4. ベクトルデータ例¶
下記に示すデータのFieldデータを作成します。 小さい文字の数値は座標値で、イタリックの細文字はノードの番号です。 イタリックの大文字はセル上の物理量,ベクトル値です。 このデータは、要素上ではなく、節点上に物理量が存在する例です。この図のUCDデータを以下に示します。
vector.inp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
各行の意味は以下のようになっています。
1行目 1ステップのデータなので、ステップ数は1となります。
2行目 ステップ数が1なので、この部分はdataでもgeomでもdata_geomでも構いません。
3行目 全ノード数が4、セル数が1になります。
5-8行目 ノード番号と、ノードのX,Y,Z座標値を示しています。
9行目 各セルのセル番号と、セルタイプ、ノードの接続順番を指定します。
10行目 このデータは、要素上ではなく、節点上に1種類のベクトル値が存在するデータなので、節点データ数は3、要素データ数が0となります。
11行目 1種類のベクトル値のため、データ成分数が1、第1成分ベクトル長は3となります。
12行目 成分名(任意の文字列:Vector-component)と、その単位名(任意の文字列J。単位名は、つけなくても構いませんが、成分名の後のコンマ“,“は必ずつけて下さい。
13-16行目 節点番号、節点データを各節点毎に記述します。