Simcenter STAR-CCM+ STAR-CCM+ で 2次元テーブルでの補間処理を実施する方法

2022-08-08T20:11:09.000-0400
Simcenter STAR-CCM+ CAD Clients Simcenter STAR-CCM+ Simcenter STAR-CCM+ Virtual Reality Teamcenter Share Simcenter STAR-CCM+ Viewer Simcenter STAR-CCM+ Application Specific Solutions

サマリ

Simcenter STAR-CCM+ には、表形式のデータ(テーブルデータ)をフィールド関数として補間する機能が組み込まれています。この機能は、1 つの独立変数に対して従属変数を補間するためのものです。この記事では、テーブルの従属変数を 2 つの独立変数に対して補間する処理に使用できる方法を示し、また、自動化スクリプトを提供します。


詳細

Simcenter STAR-CCM+ には、表形式のデータをフィールド関数として補間する機能が組み込まれています。
この機能は、1 つの独立変数に対して従属変数を補間するためのものです。この記事では、2つの独立変数に対して表の従属変数を補間する処理に使用できる自動化スクリプトを提供します。デモンストレーション用に簡単な例を選んでいます。

 

Simcenter STAR-CCM+ には、表形式のデータ(テーブルデータ)をフィールド関数として補間する機能が組み込まれています。
この機能は、1 つの独立変数に対して従属変数を補間することを目的としています。
この記事では、2 つの独立変数に対してテーブルの従属変数を補間する処理を行う方法を示し、自動化スクリプトについても提供します。
本記事では、デモンストレーション用に簡単な例を選択しています。

1次元テーブルの補間:
1 次元テーブルの補間は、interpolateTable関数を使用して STAR-CCM+ 内で処理できます。
以下に示すような、変数 A と D の1次元テーブルがあるとします。
フィールド関数値 "$A" を使用して、"D" の値を "A" の値に対して線形補間することに着目します。

1次元テーブル(テーブル名を table-1とする)

AD
12
24
36
48

この場合、次のようなフィールド関数の構文を使用して処理できます:
 interpolateTable(@Table("<tablename>"), "<x-column>", {LINEAR | STEP | SPLINE}, "<phi-column>", <scalar_expression>)

この例では、次のようになります:
 interpolateTable(@Table("table-1"), "A", LINEAR, "D", $A)

 

2次元テーブルの補間:
ここで、従属変数「D」が 2つの独立変数に依存しているとします。
1 番目の独立変数「A」と 2 番目の独立変数「B」は、下の表とグラフに示されています。ここでは、表から D の値を「$A」と「$B」という 2 つのフィールド関数に対して補間することに着目します。

2次元テーブル

A/B300320340360
12468
246810
3681012
48101214

   
2D Table Plot


このような 2Dテーブルの補間を処理するには、この2D テーブルを以下に示すように一連の 1D テーブルに変換します。 

1次元テーブル : B=300 の場合

AD
12
24
36
48

 

1次元テーブル : B=320 の場合

AD
14
26
38
410

  ※同様に、B=340、B=360の場合のテーブルも用意します。

2 番目の独立変数「B」の各値に対応する 1次元テーブルをインポートします。
以下に示すように、フィールド関数 $A を使用して、従属変数 D の値を各 1 番目の独立変数 A に対して補間する 1次元補間のフィールド関数 (FF) を記述します。
 

フィールド関数名 : A_at_B_300
フィールド関数の定義 : interpolateTable(@Table("1D Table - at B=300"), "A", LINEAR, "D", $A)

フィールド関数名 : A_at_B_320
フィールド関数の定義 : interpolateTable(@Table("1D Table - at B=320"), "A", LINEAR, "D", $A)

フィールド関数名 : A_at_B_340
フィールド関数の定義 : interpolateTable(@Table("1D Table - at B=340"), "A", LINEAR, "D", $A)

フィールド関数名 : A_at_B_360
フィールド関数の定義 : interpolateTable(@Table("1D Table - at B=360"), "A", LINEAR, "D", $A)

ここで、1 番目の独立変数 A とのこれらの補間を使用して、以下に示すように、2 番目の独立変数 B と線形補間する別のフィールド関数を記述します。

フィールド関数名 : final_interp_FF
フィールド関数の定義 :
$B<=300 ? $A_at_B_300 :
$B>300 && $B<=320 ? (($A_at_B_320-$A_at_B_300)/(320-300))*($B-300) + $A_at_B_300 :
$B>320 && $B<=340 ? (($A_at_B_340-$A_at_B_320)/(340-320))*($B-320) + $A_at_B_320 :
$B>340 && $B<=360 ? (($A_at_B_360-$A_at_B_340)/(360-340))*($B-340) + $A_at_B_340 :
$B>=360 ? $A_at_B_360 : 0

本記事に添付されているサンプルのsimファイルには、フィールド関数の実装例が組み込まれています。
フィールド関数のユーザー入力値 $A = 3.5、$B=350 の場合、2次元テーブルの補間値は 12.0 になります。

   Result_2DTablePlot.png 

自動化:

これらのフィールド関数を記述するのは大変な作業です。すべての補間フィールド関数を記述するためのマクロをご用意しています。
マクロはユーザー入力の詳細な説明を提供し、理解しやすいようにコメントを追記しています。

添付の圧縮ファイルには、この記事で示したサンプル データを含む 2 つのサンプル sim ファイルが含まれています。「Example_final.sim」には既に実装されているフィールド関数が含まれております。
「Example_start.sim」は、このファイルを使用してマクロを実行し、フィールド関数が自動的に生成できることを確認できます。

 

KBアーティクルID# KB000053997_JA

目次

サマリ詳細

関連するコンポーネント

Simcenter STAR-CCM+ Clients