ステージング

先頭へ  前へ  次へ

 

 

FlexPDEはパラメータ値の分析を支援するための“ステージング”と呼ばれる機能をサポートしています。この機能を使うと一つ、あるいは1群のパラメータに関し、ある範囲内の種々の値に対し問題を繰り返し実行させることができます。

 

このようなステージングされた形でFlexPDEを実行するにはパラメータ値を STAGED という形で宣言します。

 

DEFINITIONS

Name = STAGED(<value1>,<value2>,...)

 

この場合、STAGEDパラメータリスト中の値を順に一つずつ取り出し、それをパラメータ"name"にセットする形で繰り返し実行が行われます。

 

STAGEDパラメータがドメインの形状に影響を与えない場合には、それぞれのランでは直前のランにおける実行結果とメッシュを初期条件として利用する形で実行が行われます。

 

Note:

この手法は非線形性の強い問題にアプローチする際にも利用できます。すなわち、まず線形系からスタートし、徐々に非線形要素の重みを増加させて行けば良いわけです。

 

STAGEDパラメータがドメインの形状定義の中で使用されている場合には、それぞれのランはドメイン定義から始まるため、それ以前のランからの解の継承は行われません。

 

後述する時間依存型の問題の場合、 HISTORYプロットの機能を使うと任意の量がステージ間でどう変化したかを表示させることができます。ステージングランの場合にはHISTORYプロットにステージ番号が付加されます。

 

先の例でinsulatorの熱伝導率を変化させたとき、insulator下端の温度がどう変化するかをヒストリとしてプロットさせてみましょう。なお、STAGEDの設定はある名称が最初に定義されたときでないと行えない点に注意してください。リージョン内でパラメータ値が再設定された段階ではSTAGEDの指定は行えません。

 

DEFINITIONS

Kins = STAGED(0.01, 0.1, 1, 10)

{ Notice that the STAGED specification must appear at the initial declaration of a name.  In cannot be used in a regional redefinition. }

...

REGION 2        'blob'        { the embedded blob }

K = Kins

START(R,0) ARC(CENTER=0,0) ANGLE=360

...

HISTORY(Phi) AT (0,-R)

 

 

スクリプトに対しこの変更を加えてFlexPDEを実行すると次のようなHISTORYプロットが出力されます。

 

ex1s05_004

 

ステージングランの場合、PLOTS、及びMONITORSで指定された項目はそれぞれのステージごとに出力されます。

 

その他の制御項目

 

実行すべきステージの数をグローバルセレクタSTAGESによって制御することもできます。このセレクタの指定はDEFINITIONSセクションにおけるSTAGEDリストの設定に優先します(リスト長がSTAGESの値よりも短かった場合にはエラーが報告されます)。これは同時にSTAGEというグローバル名称を定義することになるので、数式中で使用することもできます。詳細はコマンドリファレンスマニュアルを参照してください。
 
デフォルトの設定では一つのステージが終わるとすぐ次のステージが開始されます。しかしプロットをチェックするために次のステージの実行を一旦中断させることもできます。SELECTセクション中にAUTOSTAGE=OFFというコマンドを設定してください。