Dynamic meshing in Fluent

Dynamic Mesh

  1. Setup > General > Transient
  2. Setup > Dynamic Mesh > tick "Dynamic Mesh"
  3. Setup > Dynamic Mesh > "Create/Edit..."

Mesh Methods

Smoothing

Node の数を変えずに、位置のみ動かす方法のこと。まずこれを smoothing と呼ぶのが非常にわかりづらくて、マニュアル見るまで意味わかってなかった。Deformation の方がわかりやすくないか…?

メッシュスムージングでは,一般に回転よりも平行移動による境界運動の方がはるかに良好な結果を得ることができる.

とのこと。

  • Spring/Laplace/Boundary Layer
  • Diffusion
  • Linearly Elastic Solid

の3つの方法がある。

Diffusion か Solid で周期運動の場合は、TUI から基準位置を指定することで、サイクル間のメッシュ品質の一貫性を向上できるらしい。

Spring/Laplace/Boundary Layer

メッシュの node 間をつなぐ edge をバネとみなして、移動境界により変形するバネ群の釣り合いを反復計算によりで解いて、メッシュ位置を求める。Diffusion 法に比べると高速だが低品質で、基本的に tetra mesh にしか使えない(使うべきではない)。下の "Parameters" で、"Spring Constant Factor" から "Laplace Node Relaxation" までが有効になる。

Spring Constant Factor はデフォルトが1だが、これだと node が物体境界を超えることがあるらしい…(そういう図がマニュアルに載っている。どうみてもダメすぎる)。0だとそれはない。ということは基本は0から始めて小さめの値を目指すべきか。実際、チュートリアルでは 0.3 にしろとある。

Spring は tetra/triangle mesh 向きで、デフォルトでは "Elements" が "Tet in Tet Zones" になっている。もし tetra 以外も変形させたい場合は "All" を選べるが、多面体では特定の条件の下でないと「バネ」の仮定がうまくいかずにセルが大きく歪むことがあるらしい(条件はマニュアルに書いてある)。したがって、tetra 以外(多面体)には Diffusion が推奨されるとのこと。

Diffusion

拡散方程式を解いてメッシュを決める。Spring 法に比べると、計算負荷が高いが高品質。

下の "Parameters" で、"Diffusion Function" と "Diffusion Parameter" が有効になる。

マニュアルにいきなり

変形境界における境界条件は,メッシュが境界の接線方向に運動するよう定められる(つまり,垂直速度成分は消失する) [English] On deforming boundaries, the boundary conditions are such that the mesh motion is tangent to the boundary (that is, the normal velocity component vanishes)

と書いてある。なんだこれは…?意味が分かりづらいが、さすがに流れの境界条件を勝手に変えるという意味ではないと思うので、メッシュ (node) 位置を決めるための「拡散方程式を解くときの境界条件としては」ってことじゃないかと思う。

拡散率の指定には2種類あり、Diffusion Function から選ぶ。

  1. boundary-distance: Diffusion Parameter は 0 から 2 の範囲で指定する(上限は3だが0から2がよいとマニュアルにある)。デフォルトの0だと全体のメッシュが一様に変形する。1など大きくするにつれて、運動している境界付近では初期メッシュ形状が維持されて、運動境界から遠い場所でより大きなメッシュの変形が生じるようになる。回転境界運動の場合は1.5が推奨されている。
    • 標準境界距離(デフォルト):移動境界から最も近い "wall" boundary までの距離に応じて拡散係数が決まる
    • 一般化境界距離(TUIで設定可能):移動境界から最も近い boundary (any type) までの距離に応じて拡散係数が決まる
  2. cell-volume: Diffusion Parameter を1よりも大きくすると、「大きなセルほどより多く変形する(多くの変形を吸収する)」ようになる。なんかこっちの方が良さそうな気がするが、どうかな…。上限は3(それ以上を入れると怒られるので初めて分かる…)。

TUIからいくつかの設定が可能。

  • /define/dynamic-mesh/controls/smoothing-parameters/verbosity を 1 にするとスムージング残差が表示されるようになる
  • /define/dynamic-mesh/controls/smoothing-parameters/max-iteration で最大反復回数を変更できる。デフォルトは30になっている(バージョンによるかも)
  • /define/dynamic-mesh/controls/smoothing-parameters/relative-convergence-tolerance で相対残差許容量を変更できる。デフォルトはマニュアルには1.0e-4とあるが実際には1.0e-10になっていた(バージョンによるかも)。当然こんなに落ちるには多くの iteration が必要になる。適当にやったテスト計算では、30回では1e-5とか1e-7くらいまでしか落ちていないこともあった。もっとも、そこまで smoothing に気を使うよりも、変形が大きいなら remeshing しないとどうしようもないような気もするが…。

境界層 smoothing とは併用できない。

Linear Elastic Solid

メッシュを固体とみなして、境界移動にともなう弾性変形からメッシュ位置を求める(FEMを解くらしい)。下の "Parameters" で、"Poisson's Ratio" のみが有効になる。ポアソン比は -1.0 から 0.5 の間で指定可能。他に、TUIから最大反復回数と相対許容残差が指定できる。

Diffusion より更に計算負荷が高いが、場合によってはより高品質になるらしい。ただし、拡散の場合は距離やセル体積に応じて非一様な分布が実現できたのに対して、こちらは物性値を一定とみなしている。そのためだと思われるが、

回転境界運動と尖った角を伴うケースでは,境界距離に依存する拡散による拡散スムージングを使用した方が有利

とのこと。

これも境界層 smoothing とは併用できない。

Layering

Remeshing

Options