流体全般

流体全般

POLYFLOWのUDFサンプル(1)

    • FAQFAQ
      Participant

      ・POLYFLOW UDFサンプル(1) XY平面上に、原点を中心とした径方向温度分布をつけるUDF 式は T(半径) =(500-半径^2)で設定 (半径はX座標値とY座標値から算出する。) POLYDATAの設定(Thermal boundary conditionから) 1.UDFで温度分布を設定する境界面を選択しModifyをクリック 2.Temperature imposedをクリック 3.User Defined Functionをクリック 4.Modify function name をクリックし、関数名を入力 5.New valueに”XYZ”と入力しOKをクリック 6.Modify nd. of fields=0をクリックし、UDFで扱うパラメータ数を入力。 7.今回はX座標とY座標の2つを使用するので、New valueに”2″を入力してOkをクリック   Upper level menu の下に、以下の行が追加されます。 Change field X1 = X-Coordnate Change field X2 = X-Coordnate   今回のUDFは、X座標とY座標を使用して計算するUDFなので、   Change field X1は、設定変更なし 8.Change field X2 = X-Coordnateをクリック 9.Y-Coordnateを選択し、Upper level menuをクリック Modify function name = XYZ Modify nd. of fields = 2 Upper level menu Change field X1 = X-Coordnate Change field X2 = Y-Coordnate 10.上記のようになっていればPOLYDATA内のUDF設定は終了。 UDFの書き方 POLYFLOWのUDFの言語はCLIPSです。 UDFの作成の大まかな流れは”deffunction”でPOLYDATAとの関連ずけを行い、 その中の”bind”で計算をして、?○○でPOLYDATAで設定したUDFに戻すといった設定になります。 今回のUDFは、以下のように記述します (deffunction XYZ (?X1 ?Y1) (bind ?RR ( sqrt (+ (* ?X1 ?X1)(* ?Y1 ?Y1)))) (bind ?TT (- 500 (* ?RR ?RR))) ?TT) 1行目 (deffunction XYZ (?X1 ?Y1) deffunction の後ろの”XYZ”は、POLYDATAの設定の”5.”で入力した関数名と同じものを設定します。 XYZの後ろの(?X1 ?Y1)は、POLYDATAの設定の”7.~8.”で設定したパラメータが入ります。 ?X1 = X-Coordnate ?Y1 = Y-Coordnate 2行目 (bind ?RR ( sqrt (+ (* ?X1 ?X1)(* ?Y1 ?Y1)))) 1行目の?X1と?Y1から半径を計算しています。計算した結果は、”bind”で設定した”?RR”になります。 CLIPSの計算方法 1+1(+ 1 1) 1-1(- 1 1) 1*1(* 1 1) 1/1(/ 1 1) sqrt 1     (sqrt 1) 3行目 (bind ?TT (- 500 (* ?RR ?RR))) (500-半径^2)の計算を行い、計算した結果は、”bind”で設定した”?TT”になります。 4行目 ?TT) ?TTをPOLYDATAで設定した境界に返しています。 作成したUDFは、qaコマンドで確認することができます。 詳細は 2057431 のFAQをご覧ください。