更新日: 14/05/14

インデックス割当ルール

Tecplot では位置情報を XYZ のような直交座標 (Ordered Data) か有限要素 (Finite Element) のいずれかで指定します。

直交座標の場合、データを Tecplot に読み込む際に座標値 (X, Y, Z 等) とは別にインデックス情報 (I, J, K) を指定する必要があります。

まずは 2次元データでインデックス情報 (I, J, K) の指定方法をご説明します。

2次元サンプルデータ

X 軸方向 4点、Y 軸方向 3点、合計 12 点の測定点 (図中の赤丸) と、測定値 P (図中の数値) があります。

インデックス情報 (I, J, K) の値 (2次元)

  • インデックス K は常に 1 です。
  • インデックス I とインデックス J の値は座標軸方向のデータ数になります。

このサンプルデータの場合、X 軸方向の測定点の数「4」と、Y 軸方向の測定点の数「3」がインデックス I とインデックス J の値になります。つまりインデックス情報 (I,J,K) として (4,3,1) か (3,4,1) のいずれかを指定します。

このサンプルデータの場合、テキストデータを次のような行列 (全体を括る括弧は不要です) で表記します。(*1)

 

インデックス割当ルール (2次元)

  • まずテキストデータ (行列) の行をインデックス J の値で分割します。
    (J=3 の場合は 3 分割)


  • 次に分割された各グループの行をインデックス I の値で分割します。
    (I=4 の場合は 4 分割)



    結果としてインデックス情報 (I, J, 1) が全ての行に割り当てられます。(*2)

    つまり、テキストデータ (行列) は 1行目から順に (1,1,1) → (2,1,1) → {中略} → (I,1,1) → (1,2,1) → (2,2,1) → {中略} → (I,J,1) のインデックス情報 (I,J,1) が割り当てられます。

    そしてインデックス情報でエッジ (=外形) が決まります。
     (1,1,1) ~ (I,1,1) ~ (I,J,1) ~ (1,J,1) をエッジ (=外形) とします。
    正しい形状を表示するためには、インデックス情報 (I,J,1) に従ってテキストデータ (行列) の行を並べ替える (*3) 必要があります。

 

(例1) I=4, J=3, K=1と指定した場合

I=4, J=3, K=1 と指定した場合のインデックス割当は以下のようになります。

つまりテキストデータ (行列) の行を図中の青い破線の順に並べることになります。

I=4, J=3, K=1 に合わせて青い破線の順に、テキストデータ (行列) の行を並べ替えた結果

(例2) I=3, J=4, K=1 と指定した場合

I=3, J=4, K=1 と指定した場合のインデックス割当は以下のようになります。

つまりテキストデータ (行列) の行を図中のの破線の順に並べることになります。

I=3, J=4, K=1 に合わせて緑の破線の順に、テキストデータ (行列) の行を並べ替えた結果

(*1)
これは Tecplot では POINT フォーマットと呼ぶデータフォーマットです。
他にも BLOCK フォーマットがありますが、ここでは説明を割愛させていただきます。
BLOCK フォーマットについてはユーザーマニュアルを参照ください。

 

(*2)
各インデックス値の積 (=I*J*K) と同数のテキストデータが必要です。
次のようにテキストデータ (=測定点) が不足していると読み込めません。
逆にインデックスの数が不足している場合、読み込めますが正しい形状になりません。
(例1) のテキストデータ (行列) を I=3, J=3,K=1 と指定して読み込んだ結果
(交点の枠内の数字は I,J 黒線はエッジ (=外形)、赤線はメッシュ)

(*3)
テキストデータ (行列) の行は、インデックス情報 (I,J,K) に従って規則的に並べる必要があります。座標値のソートで並べて問題ない場合もありますが、形状によっては読み込めても正しい形状になりません。

 

(例3) 長方形データを座標値でソート

下図のような単純な形状 (長方形メッシュ) ならば、座標値のソートでテキストデータ (行列) の行を並べても問題ありません。

このテキストデータ (行列) を X値、Y値の順にソートし、

I=3, J=4, K=1 と指定した場合のインデックス割当は以下のようになります。

このテキストデータ (行列) を I=3, J=4, K=1 と指定して読み込んだ結果

(交点の枠内の数字は I,J 黒線はエッジ (=外形)、赤線はメッシュ)

しかしサンプルデータのような多角形の場合、座標値のソートでテキストデータ (行列) の行を並べると、内部にある筈の点がエッジ (=外形) からがはみ出す場合があります。

 

 (例4)  多角形データを座標値でソート

サンプルデータ (2D_sample_I3J4.txt) を X値、Y値の順にソートし、

I=3, J=4, K=1 と指定した場合のインデックス割当

このテキストデータ (行列) を I=3, J=4, K=1 と指定して読み込んだ結果

(交点の枠内の数字は I,J 黒線はエッジ(=外形)、赤線はメッシュ)

このサンプルデータの場合、ソートでは無く前述の (例1) か (例2) のように行を並べないと正しい形状は表示できません。

 

3次元サンプルデータ

X 軸方向 4点、Y 軸方向 3点、Z 軸方向 2点、合計 24 点の測定点 (図中の赤丸) と、測定値 P があります。

インデックス情報 (I, J, K) の値 (3次元)

  • インデックス I、インデックス J、インデックス K の値は座標軸方向のデータ数になります。

このサンプルデータの場合、X 軸方向の測定点の数「4」と、Y 軸方向の測定点の数「3」、Z 軸方向の測定点の数「2」がインデックス I、インデックス J、インデックス K の値になります。

つまりインデックス情報 (I,J,K) として (4,3,2)、(4,2,3)、(3,4,2)、(3,2,4)、(2,4,3)、(2,3,4) のいずれかを指定します。

インデックス割当ルール(3次元)

  • まずテキストデータ (行列) の行を K の値で分割します。
    (K=2 の場合は 2 分割)


  • 次に分割された各グループの行を J の値で分割します。
    (J=3 の場合は 3 分割)


  • 更に J で分割された各グループの行を I の値で分割します。
    (I=4 の場合は 4 分割)



    結果としてインデックス (I, J, K) が全ての点に割り当てられます。(*2)

    つまり、テキストデータ (行列) は 1行目から順に (1,1,1) → (2,1,1) → {中略} → (I,1,1) → (1,2,1) → {中略} → (I,J,1) → (1,1,2) → (2,1,2) → {中略} → (I,J,K) のインデックス情報が割り当てられます。

    そしてインデックス情報でエッジ(=外形) が決まります。
    (1,1,1)~(I,1,1)、(1,1,1)~(1,J,1)
    (I,1,1)~(I,J,1)、(1,J,1)~(I,J,1)
    (1,1,1)~(1,1,K)、(I,J,1)~(I,J,K)
    (I,1,1)~(I,1,K)、(1,J,1)~(1,J,K)
    (1,1,K)~(I,1,K)、(1,1,K)~(1,J,K)
    (I,1,K)~(I,J,K)、(1,J,1)~(I,J,K)
    をエッジ (=外形) とします。

    正しい形状を表示するためには、インデックス情報 (I,J,K) に従ってテキストデータ (行列) の行を並べ替える (*3) 必要があります。

 

 (例5) I=4, J=3, K=2 と指定した場合

I=4, J=3, K=2 と指定した場合のインデックス割当は以下のようになります。

つまりテキストデータ (行列) の行を図中のい破線の順に並べる必要があります。

テキストデータ (行列) の行を I=4, J=3, K=2 に合わせて青い破線の順に並べ替えた結果