Femtet2026.0ヘルプ/マニュアル
 

FemtetのVTU出力データ構成

このページでは、Femtetが出力するVTU(VTK XML UnstructuredGrid)ファイルの基本構成と、各データの意味を説明します。

Femtetは解析結果フィールドをVTU形式で出力することができます。ParaviewなどのVTK対応可視化ソフトやPythonでのデータ処理などで利用できます。

出力方法は下記の2通りあります。

  • [ツール]タブの[結果フィールドのVTU出力]
  • FemtetマクロのCFemtet.OutputResultFieldVTU関数
ポイント
VTUはメッシュデータ形式です。節点座標、要素接続、節点結果、要素結果、ボディID、材料名などを格納します。

1. 全体構成

注意:解析で2次要素を使用している場合でも、VTU出力ではメッシュは1次要素として出力されます。中間節点はVTUファイルには含まれません。

FemtetのVTU出力は、主に次のブロックで構成されます。

ブロック 内容
FieldData ファイル全体のメタ情報、ボディ属性名テーブル、材料名テーブルを格納します。
Points 節点座標を格納します。
Cells 要素の接続情報、要素区切り、要素タイプを格納します。
PointData 節点に紐づく結果値を格納します。
CellData 要素に紐づく結果値、ボディIDなどを格納します。
<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian">
  <UnstructuredGrid>
    <Piece NumberOfPoints="1008" NumberOfCells="458">
      <FieldData> ... </FieldData>
      <Points> ... </Points>
      <Cells> ... </Cells>
      <PointData> ... </PointData>
      <CellData> ... </CellData>
    </Piece>
  </UnstructuredGrid>
</VTKFile>

2. FieldData:ファイル全体のメタ情報

FieldDataには、節点や要素に直接紐づかない情報を格納します。

DataArray名 意味
Producer VTUファイルの出力元です。例:Femtet
FileVersion Femtet VTU出力仕様のバージョンです。
BodyAttrNameTable BodyIDに対応するボディ属性名のテーブルです。
MaterialNameTable BodyIDに対応する材料名のテーブルです。
<FieldData>
  <DataArray type="String" Name="Producer" 
 
 
 NumberOfTuples="1" format="ascii">
    Femtet
  </DataArray>
  <DataArray type="String" Name="FileVersion" 
 
 
 NumberOfTuples="1" format="ascii">
    1.0.0
  </DataArray>
  <DataArray type="String" Name="BodyAttrNameTable" 
 
 
 NumberOfTuples="2" format="ascii">
    VOL1
    VOL2
  </DataArray>
  <DataArray type="String" Name="MaterialNameTable" 
 
 
 NumberOfTuples="2" format="ascii">
    002_金Au
    500_SUS301
  </DataArray>
</FieldData>
例では、BodyID=0VOL1 / 002_金AuBodyID=1VOL2 / 500_SUS301に対応します。

3. Points:節点座標

Pointsには節点座標を格納します。NumberOfComponents="3"のため、1節点あたりx y zの3値です。

<Points>
  <DataArray type="Float32" NumberOfComponents="3" 
 
 
 format="ascii">
    5 20 50
    5 17.5 50
    ...
  </DataArray>
</Points>
項目 説明
type="Float32" 座標値を32bit浮動小数点で格納します。
NumberOfComponents="3" 1節点が3成分(X, Y, Z)を持つことを示します。
NumberOfPoints="1008" この例では1008個の節点があります。

4. Cells:要素接続

Cellsには、各要素を構成する節点IDと要素タイプを格納します。

DataArray名 意味
connectivity 各要素を構成する節点IDの並びです。節点IDはPoints内の節点番号を参照します。
offsets connectivityのどこまでが1要素かを示す累積オフセットです。
types VTKの要素タイプです。例の10は四面体要素(VTK_TETRA)を表します。
<Cells>
  <DataArray type="Int32" Name="connectivity" 
 
 
 format="ascii">
    983 979 952 961 ...
  </DataArray>
  <DataArray type="Int32" Name="offsets" 
 
 
 format="ascii">
    10
    20
    ...
  </DataArray>
  <DataArray type="UInt8" Name="types" 
 
 
 format="ascii">
    10
    10
    ...
  </DataArray>
</Cells>

5. PointData:節点に紐づく結果

PointDataには、節点ごとの値を格納します。温度や電位など、節点値として扱うスカラー結果と変位、変位後の座標が出力されます。

<PointData Scalars="WATT_TEMPERATURE[deg]-Scalar-Mode0">
  <DataArray type="Float32" Name="WATT_TEMPERATURE[deg]-Scalar-Mode0" 
 
 
 format="ascii">
    100
    100
    ...
  </DataArray>
</PointData>
内容
WATT_TEMPERATURE[deg]-Scalar-Mode0 節点温度です。
PointDataの各配列は、節点数NumberOfPointsと同じ個数の値を持ちます。

6. CellData:要素に紐づく結果とBodyID

CellDataには、要素ごとの値を格納します。熱流束、温度勾配などのベクトル結果、応力などのテンソル結果、要素が所属するBodyIDが出力されます。

<CellData Vectors="WATT_HEAT_CURRENT[W/m2]-Vector-Mode0">
  <DataArray type="Float32" Name="WATT_HEAT_CURRENT[W/m2]-Vector-Mode0" 
 
 
 NumberOfComponents="3" format="ascii">
    1.1641532e-10 -1.1641532e-10 -630000
    0 5.8207661e-11 -630000
    ...
  </DataArray>
  <DataArray type="Int32" Name="BodyID" 
 
 
 format="ascii">
    0
    0
    ...
    1
    1
  </DataArray>
</CellData>
DataArray名 内容
WATT_HEAT_CURRENT[W/m2]-Vector-Mode0 要素ごとの熱流束ベクトルです。NumberOfComponents="3"のため、X/Y/Z成分を持ちます。
WATT_TEMPERATURE_GRADIENT[deg/m]-Vector-Mode0 要素ごとの温度勾配ベクトルです。
BodyID 要素が属するボディを表すIDです。FieldData内の名称テーブルと対応します。
CellDataの各配列は、要素数NumberOfCellsと同じ個数の値を持ちます。

7. BodyIDと名称テーブルの対応

BodyIDは要素ごとに出力されます。ボディ属性名と材料名はFieldData内のテーブルで管理されます。

BodyID BodyAttrNameTable MaterialNameTable
0 VOL1 002_金Au
1 VOL2 500_SUS301

たとえば、ある要素のBodyID1の場合、その要素はボディ属性名VOL2、材料名500_SUS301に対応します。

8. 結果名の読み方

Femtetの結果名は、概ね次のような形式です。

"解析タイプ_物理量"の各種ラベル名は「ユーザー定義フィールドの定義」と同じものです。

解析タイプ_物理量[単位]-データ種別-モード番号
意味
WATT_TEMPERATURE[deg]-Scalar-Mode0 熱伝導解析の温度スカラー結果、単位はdeg、モード番号が0(過渡解析の場合0sの結果)です。
WATT_HEAT_CURRENT[W/m2]-Vector-Mode0 熱伝導解析の熱流束ベクトル結果、単位はW/m2、モード番号が0(過渡解析の場合0sの結果)です。
-Scalar- 1成分のスカラー値です。
-Vector- 3成分のベクトル値です。ParaViewではMagnitude表示になることがありますが、内部的にはX/Y/Z成分を保持しています。
-Tensor- 9成分のテンソル値です。成分順は通常 xx, xy, xz, yx, yy, yz, zx, zy, zz です。

9. ParaViewでの確認方法

BodyIDで色分けする

  1. ParaViewでVTUファイルを開きます。
  2. Applyを押します。
  3. ColoringのプルダウンからBodyIDを選択します。

BodyIDで一部のボディだけ表示する

  1. 対象データを選択します。
  2. FiltersThresholdを選択します。
  3. ScalarsにBodyIDを指定します。
  4. 表示したいBodyIDの範囲を指定します。例:0だけ表示する場合は下限・上限とも0にします。

ベクトル成分を確認する

ParaViewでは、ベクトルを色表示すると初期状態でMagnitude(大きさ)が表示される場合があります。X/Y/Z成分を確認したい場合は、Coloring設定で対象ベクトルの成分を選択してください。

注意
FieldDataにあるBodyAttrNameTableMaterialNameTableは、ParaViewの通常のColoringやThresholdには直接表示されません。色分けや抽出にはCellDataBodyIDを使用します。

10. データ数の対応関係

データ 値の個数
Points NumberOfPoints個。この例では1008個です。
PointData NumberOfPoints個。この例では各配列1008個です。
Cells/types NumberOfCells個。この例では458個です。
CellData NumberOfCells個。この例では各配列458個です。
FieldData ファイル全体の情報です。節点数・要素数とは直接対応しません。