polyDualMesh を使う2011年6月25日 | |
はじめにデュアルメッシュ (いわゆるポリヘドラメッシュ) を作る polyDualMesh を使ってみる。 使用バージョン
ファイルSTL ファイル テトラメッシュの作成まずはテトラ (四面体) メッシュを用意する。STL ファイルから Netgen を使ってメッシュを作成する。 モデルの読み込み
メッシュの作成
あるいは単に "Generate Mesh" ボタン (メニュー [Mesh]-[Generate Mesh]) でよいかもしれない。 メッシュの細分化
メッシュの出力
constant ディレクトリができる。 境界名は createPatch で設定する (Netgen で設定してもよい)。 polyDualMesh を使うpolyDualMesh でテトラメッシュをデュアルメッシュに変換する。 $ polyDualMesh 130 オプションは特徴角度 (feature angle)。checkMesh でエラーが出ない値を探して設定した (ただし、パイプ同士の接合部がなまってしまっている)。 できたメッシュ。 ![]() ![]() メッシュ線を見てもなにがどうなったのかよくわからない。線を消してみるとポリヘドラメッシュっぽく見える。 セル数は、もとのテトラメッシュが 8,778、それに対してデュアルメッシュは 2,211 である。 計算デュアルメッシュで計算性能がどう変わるのか試しに計算してみた。 計算ケース![]() 左下の入り口を in1、右下の入り口を in2 とする。右上を出口 out とする。流体の動粘性係数を 0.01 とし、それぞれの入り口から流速 in1 = (1, 0, 0) m/s, in2 = (0, 0, 5) m/s で流入するものとする。 simpleFoam収束判定 convergence 1e-6 で計算。テトラメッシュでの計算回数が 150 回であったのに対し、デュアルメッシュのほうは 45 回であった。 pisoFoamdeltaT = 0.00005、endTime = 0.005 で計算。テトラメッシュは PISO パラメタ nCorrectors = 10 で計算できたのに対し、デュアルメッシュは nCorrectors = 2 で計算できた。 デュアルメッシュを使うと計算が安定するようである。ただし結果が変わるので注意 (メッシュが粗くなるせいか)。 パイプ接合部のなまりの問題パイプ接合部がなまっているのが気になっていたが、オプションを発見。 $ polyDualMesh 30 -concaveMultiCells これで feature angle = 30 でも checkMesh でエラーが出ないようになり、パイプ接合部のなまりをなくすことができた。 ![]() ![]() ポリヘドラメッシュの表示![]() ParaView 3.10.0-RC1 により表示。OpenFOAM 2.0.0 で ParaView 3.10.1 になったので、paraFoam で "Use VTKPolyhedron" を有効にすると表示できる。 | |
| PENGUINITIS | |