2011/09/02

AVSからVTKに追記

統計を見ているとAVSからVTKフォーマットへの変換法を探している方が多いようなので書いておきます。

AVSのフォーマットはよく知らないけど(セレンディピティ serendipityとは扱えるの?)

でもメッシュのデータはconnectivityと座標と各ノードやセルでの値を与えてやれば良いので変換プログラムならば簡単にかけると思う。

ただしVTKではAVSの他にもセルあたりのノード数(オフセット)とセルのIDを与える必要がある。

今度書いてみます。

簡単に擬似的なフォーマットを書くと

AVS



ノード数 エレメント数  変数の数
ID コネクティビティ
ID 座標
変数の数 変数の成分
スカラー データ
ベクトルデータ

そしてこれが例厳密には応力は2nd rankのテンソルなんだが

AVS


6 2 1 0 0
1 0.0 1.0 0.0
2 1.0 1.0 0.0
3 2.0 1.0 0.0
4 0.0 0.0 0.0
5 1.0 0.0 0.0
6 2.0 0.0 0.0
1 1 quad 4 5 2 1
2 1 quad 5 6 3 2
1 1
stress, si
1 0.0
2 50.0
3 20.0
4 0.0
5 0.0
6 0.0

VTK

ノード数 エレメント数
スカラーデータ
ベクトルデータ
コネクティビティ
オフセット値
セル ID

参考までに
<UnstructuredGrid><PUnstructuredGrid>

などというように変更して開ければ良い。詳しくは
www.vtk.org/VTK/img/file-formats.pdf のp16以降にに変更すべきタグについて書いてある。

VTK 旧形式


# vtk DataFile Version 3.0
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 4 float
0 1 1 1 1 1 0 0 1
1 0 1
CELLS 1 5
4 2 3 1 0

CELL_TYPES 1
9

CELL_DATA 1
SCALARS Material%20Id int
LOOKUP_TABLE default
1
POINT_DATA 4
SCALARS pressure float
LOOKUP_TABLE default
0 19 0 0
FIELD FieldData 1
velocity 3 4 float
1 0 0 0.4767 0.5721 0.6674 0 0 0
0 0 0

VTK XMLフォーマット

<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
<UnstructuredGrid>
<Piece NumberOfPoints=" 4 " NumberOfCells=" 1 ">
<PointData Scalars="pressure">
<DataArray type="Float32" Name="pressure" format="ascii">
0.000000
19.000000
0.000000
0.000000
</DataArray>
<DataArray type="Float32" Name="velocity" NumberOfComponents="3" format="ascii">
1.000000 0.000000 0.000000
0.4767 0.5721 0.6674
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
</DataArray>
</PointData>
<CellData Scalars="Material Id">
<DataArray type="Int32" Name="Material Id" format="ascii">
1
</DataArray>
</CellData>
<Points>
<DataArray type="Float32" Name="Points" NumberOfComponents="3" format="ascii">
0.000000 1.000000 1.000000
1.000000 1.000000 1.000000
0.000000 0.000000 1.000000
1.000000 0.000000 1.000000
</DataArray>
</Points>
<Cells>
<DataArray type="Int64" Name="connectivity" format="ascii">
2 3 1 0
</DataArray>
<DataArray type="Int64" Name="offsets" format="ascii" >
4
</DataArray>
<DataArray type="UInt8" Name="types" format="ascii">
9
</DataArray>
</Cells>
</Piece>
</UnstructuredGrid>
</VTKFile>





0 件のコメント:

コメントを投稿

まとめページ

      

リンク

The Wizard of Science
友達のブログ文化人類学とか難しい話をしております。あとホームページから自作ゲームも配布。