Skip to main content

境界条件

気体および領域がロックされていると, 領域ツールのメニューが次のように変わります:

region-menu

【境界条件】を選ぶと, 境界条件ツールが起動します:

bc

ウィンドウの最上部に,ここで設定する領域・グループの名称が表示されています.

  • グループで境界条件を編集すると,配下のすべての領域の境界条件が一斉に更新されるので注意
    • 途中で【領域】ツールで別の領域を選択したり,【気体】ツールで別の成分気体を選択すると,それらの領域・気体の編集に変わります.
  • 壁面を選択するタイミングで,データ保存が行われます 
    → 編集後に別の壁面をクリックする必要がある
  • 未保存なのにツールを閉じようとすると文句を言われます.

壁面の選択

左側の図は,領域の各壁面を表しています.ABがX方向, ADがY方向, AEがZ方向です.WebMixでは,これら6壁面に

left(ADHE), right(BCGF), floor(ABFE), ceiling(DCGH), away(ABCD), home(EFGH)

という名前を付けています.壁面を選択するには, 図の下側のメニューから選ぶか, 図をクリックすれば選択されます.

  • 【未定義の壁面を選択】ボタンで,境界条件が未設定の壁面を一つ選択する手もある

気体の選択

DSMCでは, 境界条件を気体成分別に設定することができます.境界ツールで設定する境界条件は,気体ツールで選択されている気体成分に対するものです.気体ツールで全気体【*】を選択している場合,すべての気体成分に同一の境界条件が設定されます.

プリセット

WebMixの境界条件設定では,境界条件の「プリセット」を作成し,領域の各壁面に,いずれかのプリセットを割り当てていきます.プリセットの例としては

  • 一様な温度\(T_w\)の拡散反射壁面. \(T_w\)は変数ツールで設定したものである.
  • 周期条件. 周期は不明

といったものです.プリセットは壁面の方向とは無関係です.プリセットで設定する方法の利点は

  • 領域数が数百となる場合でも,システマティックに境界条件を変更することができる.

プリセット方式の欠点は

  • 一つの条件を変更すると,別の(時としてユーザーが想定していない)境界の条件が変更される

プリセット方式が好ましくない場合,壁面・気体成分ごとにプリセットを作成すれば回避できます.ただし,計算パラメータを変更するには,領域が\(n\)個,気体成分が\(m\)個であれば, \[6mn\]通りの設定を一つづつ設定する必要があります.1回1分かかるとして,\(n=100, m=2\)であれば,作業時間は休憩を除き1回もミスしないとして,20時間程度になります.

計算するべき問題に,何種類のプリセットが必要であるかを,あらかじめよく考えるべきでしょう.ほとんどの場合, 数通りしかないはずです.

壁面を選択すると, 境界条件が設定されていれば, 【適用中の条件】にプリセットの名称が表示されます. 気体種によって利用するプリセットがバラバラだったり,グループの境界条件を設定する際に,領域ごとに利用するプリセットが異なる場合には,【複数の条件が混合】と表示されます.プリセットが混合している場合,プリセットが特定できないので,壁面温度をはじめ,プリセットの各種の設定を変更することができません.領域別あるいは気体別に境界条件の設定を行ってください.

プリセットの作成

プリセットを作成するには, 【新しいプリセット】をクリックします.名称設定画面で名称を設定してください:

new-preset

プリセットの削除

プリセットは, それが用いられている壁面がなくなった場合, 自動的に削除されます.

プリセットの利用

壁面にプリセットを適用するには, まず壁面を選択し, 【適用中の条件】メニューでプリセットを選択します:

apply-preset

プリセットの編集

反射則

プリセットで適用する境界条件の種類は,【境界条件のタイプ】で変更できます.現在のところ

  • Maxwell-Gaede型条件 適応係数が,どういうわけか分子速度に依存しない,Maxwell型条件
    • 壁面に入射した分子の\(\alpha_d\)部分が「拡散反射」により壁面速度に相対的に等方的に散乱
    • 壁面に入射した分子の\(\alpha_s\)部分が「鏡面反射」により壁面に平行な速度成分を維持して反射
    • Maxwellは論文で \(\alpha_d, \alpha_s\)は入射分子の速度に依存する,でも計算大変だから,まあ試しに定数にしたら, ほら!こんな感じで雰囲気出るね〜と計算を示した.そしたら後世の馬鹿どもが「定数なんだこれ」と勘違いして,ほぼ全員が定数だと考えるようになった.現在では,「これ分子速度に依存するはず」などと口走ったら勉強不足扱いである.
    • ターボ分子ポンプ・分子ドラッグポンプの創始者であるWolfgang Gaedeは, 上記2つでは実験に合わないと考えていた.彼は, 壁面に入射した分子の\(\alpha_b\)部分が「バウンスバック反射」すると考えると良いとした.
    • 実験家であるGaedeの結果は,しかしながら100年の時を経て忘れられ, 誰も使っていない.
      • NASAあたりではGaedeの成果を知らずに「その手の影響が?」などと議論
      • Gaedeの成果を知らずに,なんか足りねえやとか言って数学者が難しい式を提案
      • 下手に使うとバカ扱いされることは間違いないので注意
    • バウンスバック反射は,要するに表面粗さの結果で,実験とは \(\alpha_b=0.1\)あたりが一番あう.
    • 通常 \(\alpha_s=0.1\) → \(\alpha_s=0.2, \alpha_b=0.1\)の方が良いのでは?と思うけど.
    • \(\alpha_d + \alpha_s + \alpha_b = 1\) が必要である.
  • 対称条件  指定した壁面を対称面とします.Specular条件とも呼びます.
  • 周期条件  周期条件の周期は,検定プロセスで自動設定されます.手動設定は不可能です.
  • 接続条件  他の領域に接続する条件です.接続先の領域は,検定プロセスで自動設定されます.手動設定は不可能です.
  • 一様流条件 流速 \(\boldsymbol v\), 数密度 \(n\), 温度 \(T\) の平衡状態で流入・流出します.
  • 界面  液体などの凝縮相上での蒸発・凝縮を伴う条件です. Maxwell-Gaede条件に加え, 蒸発部分が存在します.
    • 凝縮面から出る分子の\(\alpha_c\)部分は, 液体温度と飽和蒸気圧,液面速度に対応する平衡分布です.
    • 凝縮面から出る分子の\(1-\alpha_c\)部分は, Maxwell-Gaede条件と同じように入射分子が反射したものです.

が選択できます.

重要なものは【接触で貫通】オプションです.これがチェックされている場合, 隣り合わせに領域があれば,該当する部分だけに自動的に接続条件が用いられます.つまり,隣り合わせに領域がある部分には,自動的に穴が開けられます.もし壁面のどの部分でも,隣り合わせに領域がある場合,上記の境界条件は全く利用されず,全ての部分で接続条件が利用されます.

なお,全ての壁面に境界条件を設定する必要はありません.後に行う検定作業において,境界条件が未設定な壁面には次の境界条件が設定されます:

  • 隣り合う領域が存在しない部分:温度1の静止壁面の拡散反射
  • 隣り合う領域が存在する部分:接続条件

物理量の設定

反射則によっては, 壁面の物理量を与える必要があります. これは【四隅の物理量】をクリックして現れる設定画面

edit-preset

において編集します.

  • 【一様】では,壁面において値が一定であることを指定します.
    • 壁面の4つのコーナーのうち, 1つの点における速度や圧力を設定可能です.
  • 【X方向に変化】壁面において, 値がX辺方向に変化します.
    • 【コーナーを指定】で,壁面の4つのコーナーを選び,値を設定します.
    • 変化が表せるように,2つのコーナーにおける値を設定できます.それ以外のコーナー点を指定しようとすると,「それを言うなら,こっちだろ?」的指示が行われます.
    • Left, Right壁面に当てはめた場合,値が変化しません.LeftだとXの小側,RightだとXの大側の値で一様になります.いや? RightでもXの小側だという噂もある.どうなっているのか不明だ.
  • 【Y方向に変化】壁面において, 値がY辺方向に変化します.注意点は上から想定できます
  • 【Z方向に変化】壁面において, 値がZ辺方向に変化します.注意点はまあわかるでしょう.

各コーナー点の値は,

  • 【vx】【vy】【vz】無次元速度.一様流では気体の速度であり, 壁面の場合は壁面の速度.
    • 物理座標系の有次元速度 \( (v_X,v_Y,v_Z) \)に対し, 無次元速度を定義:\[ \left( \frac{v_X}{\sqrt{2\kappa T_0/m_0}},\frac{v_Y}{\sqrt{2\kappa T_0/m_0}},\frac{v_Z}{\sqrt{2\kappa T_0/m_0}} \right) = \sqrt{\frac{5}{6}}\left( \frac{v_X}{c_0}, \frac{v_Y}{c_0}, \frac{v_Z}{c_0}\right) \] \(m_0\): (基準)分子の重さ, \(c_0\): 基準温度における音速.
    • 壁面の場合, 速度 \( (v_X,v_Y,v_Z) \)は壁面に垂直な成分を持ってはなりません. 
    • BGK 線形変換の有無によらず,物理座標系の成分であることに注意.
    • BGK 線形変換を行っていると,上の2点合わせると,計算が大変である.どうしたものか・・・もしかすると,【FIT】ボタンを増設して,クリックすると計算座標系から変換してくれる?ダブルクリックすると線形変換ウィンドウが出現して計算できるとか?まあ少なくとも,計算座標系の数値をユーザーに入力させるわけにはいかないので,なにか対策しないと不便だ
  • 【T】無次元温度. 一様流では気体の温度であり, 固体壁面の場合は壁面の温度, 凝縮面では凝縮相の温度. なお, 有次元温度\(T\), 基準温度\(T_0\)の場合の無次元温度は\[\frac{T}{T_0}\]
  • 【p】無次元圧力. 固体壁面では入力できない(はず). 一様流では気体の圧力, 凝縮相では凝縮相温度に対応する飽和蒸気圧. 有次元圧力\(p\), 基準圧力\(p_0\)の場合の無次元圧力は\[\frac{p}{p_0}\]
  • 【Ad】適応係数\(\alpha_d\)
  • 【Ad】バウンスバック係数\(\alpha_b\)
  • 【Ac】蒸発係数\(\alpha_c\)

それぞれの値に対して2つの入力欄があります. 左側が変数の選択画面で, 変数ツールで定義した変数が一覧されます.

var-preset

変数を選択した場合, その物理量の値は「計算中に境界条件を適用した瞬間」における該当変数の値になります. 変数を選択しない場合は, 右側の入力欄に変数を記入します.

  • 変数ツールで定義するものは,時々刻々変化する変数だけではなく,定数も定義できます.
  • 多数のケースで境界条件をいちいち編集するのが面倒である場合,変数ツールで適当な定数を定義しておき,境界条件で変数を利用して記述すれば,パラメータを変化させる際に,変数ツールで一発で変更可能です.

物理量の2次係数

wmixでは, 【*方向に変化】する境界条件のオプションとして,その間で2次関数として変化することを可能としています.すなわち,座標Sが\(S_0\)の時に\(F_0\), \(S_1\)の時に\(F_1\)と定義されていた場合, デフォルトでは, 線形関係\[(S_1-S_0)F = (S_1-S)F_0+(S-S_0)F_1\]によって,\(S\)における値\(F\)を算出します. 実はこれは2次係数が0の場合の特例です.2次係数を0以外に設定すると,2点間を結ぶ2次式によってFの値を算出します.2次係数は座標Sのスケールに依存しますが,そこは,たしか,セル座標を用いていたような?いやまて,2点間の距離を1に規格化したんだったっけ?忘れた

スーパー周期条件

開発中です.おおよそ周期的なんだけど5段通過して圧力だけ違うみたいなやつ

可視化

検定後であれば, 実際にどんな境界条件が適用されるのかを可視化して検査することができます.

  • 領域間の接続に漏れがないか(穴が目詰まりしている, 封止が不完全など)
  • 周期条件が適用できたか

などを目視で確認することができます.これは, 【ツール】メニューから【表示】を選び,【表示対象】を【境界条件】にすると,設定に従って境界条件が可視化されます:

view

BGK 線形変換を行っていても無視されます.つまり,計算空間表示になってしまいます.

これでは表になっている境界しか確認できませんね.裏を見るためには,【表示対象】を【両面】から【裏面】にしましょう:

view-back

表面を描画しないため,裏面を確認することができます:

back-example

間違いの訂正

確認した結果,境界条件が間違っていた場合には,【プロパティ】メニューの【ケース】で,【状態】において,【検定済】と【境界ロック】をOFFにすると,境界条件の編集が可能になります.

unlock

編集後は,再度【検定】を行なってください.