トップページ about PHOENICS Advance Package  PHOENIICS特徴  inform

カスタマイズツール In-Form 「Input of data by way of Fomulae 」

1. はじめに

ユーザインターフェースが簡単、高機能になっても初期条件、 境界条件、物性値、出力等の条件設定で、全てのユーザの要望をか なえるために予め準備しておくのは困難である。そのため、ユーザ 自身が必要な設定をするために用意されているのがユーザカスタ マイズ機能である。

1.1 ユーザカスタマイズ機能の歴史
PHOENICSコードは、元来ユーザカスタマイズしやすい流体コードとして高い評価を受けてきた。理由は多種多様な境界条件、物性値、他コードの取り込みなどのテンプレートが豊富なことと、系統だったユーザルーチンの構成にあった。しかし昨今CFDコードが設計現場で使われるようになるに従いCFDプログラミング知識のみならずプログラミング言語自体を使用せずに現実的な計算結果を得ることが望まれるようになってきた。そこでPHOENICSでは1999年にPLANT機能というFortranユーザルーチンの翻訳機能を発表した。これは物性値、初期条件、境界条件などがそれぞれほぼ決められた形式で記述されることに着目して、式の入力を簡素化し、その式を元にPHOENICS自身がFortranコーディングに変換してくれるという画期的なものであった。しかし、操作は楽になっても主にコンパイル/ビルドが必要というコストの面から、あまり使用されなかった。そこでPLANTをさらに進めたIn-Form(インフォーム)が2004年に発表された。

1.2 In-Formの特長
入力データファイル内に関数式や定型文を記述することで実行モジュールがそれを翻訳するところまではPLANTと同じだが、In-Formはそのままコンパイル/ビルドなしで計算を実行してくれる。 このIn-Formは次のような特長を持つ。
・ 標準装備(追加オブション不要)
・ プログラミング言語知識不要
・ コンパイラー不要

2.いろいろな設定法

例えば、ガス密度に状態方程式(ρ=PW/RT)を使う場合の標準(VR-EditorとQ1file)とユーザカスタマイズ(User subroutineとIn-Form)での設定法の違いを次に示す

ここで

P=絶対圧(Pa)

 

W=モル質量(kg/mol)

 

R=気体定数(8.314J/mol.K)

 

T=絶対温度(K)

VR-Editor*1
リストから理想気体の状態方程式の番号を選択

Q1file*2
RHO1=GRND5、RHO1A=0.0、RHO1B=W/R

User subroutine*3
  do ji=1,nx
do jj=1,ny
ipls =ny*(ji-1)+jj
lftem =l0f(lbname(‘TEM1’))+ipls
lfp1 =l0f(P1)+ipls
lfden =l0f(DEN1)+ipls
  f(lfden) =(f(lfp1)+press0)*W/(R*(f(lftem)+temp0))
enddo
enddo


In-Form*4
  (property of RHO1 is (P1+press0)*W/(R*(TEM1+temp0))

*1) VR-Editorは、物性値データベースファイルに空気、二酸化炭素、一酸化炭素、ヘリウム、水素など多数のデータが用意されているが、そのテーブルになければ設定できない(ユーザがテーブルに付け足せば可能)
*2) Q1fileは係数(RHO1A、B等)の値を変えることでいろいろな物性に適用できるが、“状態式”や係数をそれぞれ設定するため手間がかかる、また領域指定もできない
*3) User subroutineは変数も式も係数も自由に使えるが、Fortranの知識、PHOENICSソルバー配列にアクセスするための約束事等を理解した上で上記のようなコーディング、コンパイル/ビルドを行い、実行モジュールを再構築することが必要
*4) In-FormはUser subroutineと同じような式を使うが、使用に際しての準備、約束事が非常に少ない。またFortranに変換する必要がないため、コンパイル/ビルド等も不要

3. 適用事例

In-Formを使った簡単な事例を示す。もちろんQ1ファイルに書き込むだけでコンパイル/リンクは必要ない。

3.1 物性値(オブジェクトによる指定)
下左図のように平板(SOLID、オブジェクト名BL)中央の発熱部分(HEATER、オブジェクト名HE)とそれ以外で熱伝導率を変えて計算した例を示す。(下右図は温度コンター図)

Inform9begin
(property of PRNDTL(TEM1) at BL is 0.4)
(property of PRNDTL(TEM1) at HE is 204.0)
Inform9end

in-form

3.2 物性値(時間で区切る)
物性値を時間で区切って変化させるには次のように設定する。

Inform9begin
(property of SPH1 is 1005 with if( TIM .LT. 5.0 ))
(property of SPH1 is 4181 with if( TIM .GE. 5.0 ))
Inform9end

withの後が条件文になる。この例では計算開始後5秒で、1005(J/kg)だった比熱を4181(J/kg)に変更している。

3.3 初期値(位置の関数)
3.1で使用したモデルで、温度初期値を平板中心からの距離関数として設定する。Tini=100.0-100.0/R*D

Inform11begin
(initial of TEM1 at BL is $
100.-235.85*((XG-0.5)^2+(ZG-0.5)^2)^0.5)
Inform11end

in-form
円の方程式を使って温度分布を計算している。式中のXG、ZGには各計算格子中心のX座標値、Z座標値が入る。

3.4 出力(任意位置の流量) 下左図の系で※印における流量分配を出力させる例を示す。
inform19begin
store(qvol)
(stored of qvol is w1*ahigh)
(make of qt1)
(make of qt2)
(make of qt3)
(make of qt4)
(store1 of qt1 at QCK1 is ssum(QVOL))
(store1 of qt2 at QCK2 is ssum(QVOL))
(store1 of qt3 at QCK3 is ssum(QVOL))
(store1 of qt4 at QCK4 is ssum(QVOL))
(print of FLOW_1 is qt1)
(print of FLOW_2 is qt2)
(print of FLOW_3 is qt3)
(print of FLOW_4 is qt4)
inform19end


in-form

(出力例)
in-form

4.関連資料
In-Formの多様な可能性を示すために、弊社web上でユーザ向けに公開されているIn-Form関連資料タイトルの一部を示す。

時間依存のINLET条件
時間依存の固体発熱条件
浮力の設定
圧力損失の設定
化学反応の設定
渦度の表示
非定常計算における時間幅の設定
物体の振動
多孔質体の設定
INLET速度をべき乗則で設定
水蒸気圧分布と相対湿度の計算
オブジェクト表面への旋回力の組込み
形態係数を使った輻射計算
導電性流体の磁場印加計算
INLETの速度分布と全圧条件
流入温度が時間依存
蒸発・凝縮のモデル化
全圧、動圧の計算と表示

 
©2005 Copyright Concentration Heat and Momentum Ltd. Welcome to this Web site ! since 8/Jan/1999