・PASOLと流入,流出境界の関係
・まえがき
前回,CONWIZを使おう!の後日談.あれから結局,CONWIZを使っても収束しない例が出てきた.こう言うときは余り極端な条件を設定するのではなく,「なぜ収束しないのか」に立ち返って原因から調べるのが吉である.現在計算させているのは以下のような系.
大気へ噴流を放出するラバルノズル
前も紹介した,解放系におけるノズルからの噴流の計算である.いつもやっている加工用ノズルと同じ要領なので楽勝!と高をくくっていたのだが甘かった.今回はノズル内部の流れが重要なので,きちんとLaval nozzleの形状ファイルを作ったためPhoenicsの問題が発覚した.あと,Parallel PhoenicsでPASOL=onが使えるようになったのはVersion3.6.1からと,比較的最近だったため以下に述べるような問題の発覚が遅れたのだった.
第一,Phoenics3.6.1では計算できていたのになあ. ※ちなみに,Single solverならPhoenics2006でも収束する.
まず,Parallel Phoenics 2006で何が起こっているのか,計算がストールする直前で終了するようにループ回数を決めて,計算結果をダンプしてみた.
・Case01-オリジナル
まずは何も考えずに作った系から評価する.系は上の図のように直方体の領域にノズルを置き,流入側境界意外は全て流出境界で定義している(Zmax以外の流出パッチは透明化してある).ノズルは,シュラウドを固体で定義して,その中にノズル形状を埋め込みdomain fluidで定義.流入境界はノズルの上流側境界面と同じ形状のパッチを作り貼っている.
オリジナルの流入境界
計算ストール直前で終了,系全体の温度,圧力,流速などを調査.すると,上流側,流入境界のPASOLセルで異常に高温のセルがあることを発見する.
上流側partial solidセルの異常高温.白く抜けている部分がシュラウド,内側がdomain
fluidで定義したノズル.
・Case02-上流側境界を正方形で定義
上の実験結果から,流入境界が丸く,Partial solidと接しているのが問題の原因と推測される.ならば,流入境界を四角くして,ノズルから離してみよう.ノズルより小さな正方形のパッチを作り,"Object affects grid"をonにして上流に貼り付ける.ノズル境界と流入境界の間に空白が生まれるが,これはPhoenicsの定義により「対称境界」となる.ガスの流入/出は無いので,今回の系では全く問題ない.厳密に言えば,吐出ガスの流速分布,乱流エネルギーに影響を与えるが,今回は目をつぶろう.
流入境界を正方形のパッチで定義
計算はまた異常終了した.原因を調査したところ,今度は流出境界で異常高温が発生していることが判明.
流出境界の異常高温
この系は側面は全て流出境界なのだが,シュラウドの直径は系の(x,y)と一致しているので,シュラウドが1点で流出境界と接していることになる.つまり,流出境界がPartial solidと接している,ということだ.これもやはり異常高温の原因となるらしい.
・Case03-流出境界を下流にのみ定義
当然,次の一手は,流出境界とシュラウドを離すことだ.二つの方法が考えられるが今回は流出境界を下流に移動する.この場合,ノズル側面は「対称境界」となり,現実的な解釈では,ノズルは四角い,薄い枠の中から顔を出している,と言う仮定になる.これも,ノズルからの噴流にはほとんど影響を与えないものと考えられる.結果は....
Case03の流出境界条件.
Case03の計算結果
完璧です.なお,このケースではCONWIZの設定は全てデフォルト.whole domain
の補正係数は1,000ループ程度でほぼ一定の値に収束しており,%errorも3,000ループあたりでほぼ収束,と判断してよい水準だ.一応9999ループまで回してみたが,圧力の収束だけが10の桁を下回ることは無かった.
※グラフは,Outputオプションにて「全領域の最大補正量」を表示するように指定したが,表示を見る限りではデフォルトの「マーカー位置の物理量」にしか見えない.Parallel
Phoenicsではこのオプションは効かないらしい.だったら「効かない」って言ってよ.紛らわしい.
Case03計算結果より,圧力分布.
上の図は圧力分布.過膨張に伴うノズル出口の衝撃波が補足されている.メッシュ密度はz方向にたったの130だからこいつは大したものだ.この,少ないメッシュで現象の本質に迫れる精度,ロバスト性はPhoenicsの最大の特徴だと思う.
・Case04-流入境界を円形パッチに変更
最後に,残った疑問,上流のパッチで温度が暴走した理由は何かについて検証を行った.Case01において上流パッチはpartial solidに接していることと,形状がメッシュに乗っていない事の二つが問題の原因と考えられるが,どちらが原因かはわからない.そこで,上流の流入パッチを正方形から円板に変更,"object affects grid"をoffにして計算させてみた.
Case04の流入境界条件.流出境界は示されていないがCase03と同じ.
3,000ループまでがんばったのだが,あえなく撃沈.収束性もCase03に比べれば非常に悪く,Case01,02ほどでは無いにしても何か問題が起こっていることを窺わせる.
Case04の計算結果.このあとすぐ撃沈.
例によって原因を調査する.ストールする直前,異常高温セルがあることがわかるが,それは流入境界では無かった.
Case04の異常高温セル.
今度はノズルのスロート上流側,真ん中へんの側壁.なぜ,ここが異常高温になるかの理由は不明.Case03との違いは流入境界条件だけなのに...
・Case05-Case03の正方形パッチの大きさを変更
Case03は素晴らしい収束性を示したが,パッチの形が正方形なのが気に入らない.正方形の大きさを小さくしたら非等方性が少なくなるだろうか.やってみた.
計算できない....
パッチの大きさを幾つか変えて見た.
|
結局,Case03は「たまたま」上手くいったに過ぎない,ということが判明.これで振り出しに戻ってしまった.
・Case06-Case04の上流に蓋をする
Case03,04,05の結果を総合すると,どうやらPASOLは最上流に流入境界があると問題をおこすらしい,ということがわかる.では,流入境界を最上流から浮かせたらどうなるだろうか.Case04(上手くいかなかった円形パッチのケース)のオブジェクト全てを0.5mm下流に移動し,上流に定義領域いっぱいの平板を置いた.
円形流入境界の上流に平板オブジェクトを置く.
今度は収束する.
|
inputパッチの大きさは任意に許されるが,ノズル外壁に触れてはいけない,というルールが明らかになる.なんだか,Phoenicsを相手に化かし合いをしているようだ.
・まとめ