オープンフォーム

OpenFOAMは、フィールド(スカラー、ベクトル、テンソル)を使用した操作のための計算流体力学の無料配布ツールキットです。 今日では、FVM計算の「完全な」有名なアプリケーションの1つです。特に、このパッケージにより、対流熱伝達と重力の作用を考慮した非圧縮近似と圧縮近似の両方で、ニュートンおよび非ニュートン粘性流体の流体力学的問題を解決できます。 乱流をシミュレートするために、RANSモデル、LESおよびDNSメソッドを使用できます。 亜音速、遷音速、超音速の問題を解決することが可能です。
このパッケージは、空間および時間の両方で偏微分方程式のシステムを解くためのツールを提供する一連のライブラリに基づいています。 コードの作業言語はOOP C ++です。 この言語に関しては、方程式のプログラムコード(実行可能ファイルに変換される前)のほとんどの数学的微分およびテンソル演算子は、読み取り可能な形式で表すことができ、各演算子の離散化および解法は、計算プロセス中にユーザーが選択できます。 したがって、計算グリッド(離散化方法)、基本方程式の離散化、代数方程式を解く方法の概念は完全にカプセル化され、コードに分離されています。
挑戦する
無限の角柱の周りの流れの問題を解決します。
そのようなタスクについては、多くの実験データ。 したがって、最終的に数値モデリングの結果を比較できます。

ここで、U =(u、v)は無次元速度、pは無次元圧力、Reはレイノルズ数です。
計算ドメインをメッシュ化するために、ブロックグリッドが使用されます。 構築はOpenFOAMパッケージであるblockmeshユーティリティを使用して行われます。 この領域は、立方体の形をしたばらばらのセルに分割されます。 流れの平面に平行な「後部」領域の前部「前部」および後部境界での2次元性を考慮するために、特別な境界条件が使用されます。
ボーダー | 可変 | 境界条件のタイプ |
「フロント」、「バック」 | U p | 空っぽ |
「インレット」、「アウトレット」 | うん | 固定値 |
「インレット」、「アウトレット」 | p | 固定値 |
「下」、「上」 | うん | ZeroGradient |
「下」、「上」 | p | ZeroGradient |
「スクエア」 | うん | ZeroGradient |
「スクエア」 | p | 固定値 |
パーティションスキーム

無限の領域は、長方形の平行六面体であり、その中心に正方形の円柱が配置された制限された領域に置き換えられます。 3次元ソリューション領域の選択は、ソフトウェア機能に従って実行されます。 OpenFOAMは2Dの問題に対する解決策を提供しません。
このOpenFOAMコンピューティングパッケージの運動方程式系の離散化は、 FVM(有限体積法)有限体積法を使用して実行されます。 速度と圧力の離散値は、構築された計算グリッドのセル中心に局在します。

期間 | OpenFOAMパッケージの近似スキーム | 近似次数 |
時間微分 | オイラー | 最初に |
圧力勾配 | ガウス線形 | 2番目* |
対流用語 | ガウス限定CubicV 0.2 | 最初/ 2番目 |
ラプラシアン | ガウス線形補正 | 2番目* |
*-一部の地域では、グリッドの特性により精度の次数が低下する場合があります。
解決策
この問題は、 PISOアルゴリズムに基づいたicoFoamユーティリティを使用して解決されます。 主な手順は図に示されています。 反復手順は、速度と圧力の方程式の逐次解法に基づいています。

pの線形方程式を解くために、PCGソルバー(共役前勾配)を使用しました。 初期近似を設定するには、GAMGソルバー( Vサイクルを使用したマルチグリッド法 )を使用し、ガウスザイデル平滑化を使用しました。 Uの線形方程式を解くために、PBiCGソルバー(以前はビス共役勾配)を使用し、DILUソルバー(対角線incomplite-LU)を初期近似に使用しました。
挑戦する | 解決方法 | パラメータ |
圧力について | PCG | 前提条件GAMG、トレランス1e-6; relTol 0; |
前提条件 | ガム | より滑らかなガウスザイデル; 凝集器faceAreaPair; mergeLevels 1; relTol 0;
nCellsInCoarsestLevel 10; cacheAgglomeration true; |
スピードのために | Pbicg | ソルバーPbiCG、前提条件DILU。 許容差1e-06; relTol 0; |
前提条件-前提条件、
許容差-残留弾性率の最大許容値、
Smoother-スムージング方法、
凝集機-凝集機、
nCellsInCoarsestLevel-最も粗いグリッド上のセルの数。
計算ドメインの分解のドメイン分解方法が適用されます。 ソリューション領域は4つの小さなサブ領域に分割され、さまざまなプロセッサコアで計算されます。

結果

Cdのレイノルズ数への依存。
▲-OpenFOAM、∎-デイビス&ムーア(1982)-----シュシャンタドゥッタ(2008)∙∙∙∙∙ヘラ(2010)
私たちの結果は、他の研究者の結果とほぼ一致しました。 ただし、斜角メッシュの場合、結果は実験メッシュとは大きく異なります。
さて、フローの美しい写真。

その他の用途
OpenFOAMの公式ウェブサイト
PS habrahabrに関する私の最初の投稿