OpenFOAM 11 リリースノート

OpenFOAM Foundationは、OpenFOAMオープンソースCFDツールボックスのバージョン11のリリースを発表します。バージョン11では、1993年のicoFoam以来OpenFOAMに不可欠な従来のアプリケーション・ソルバとは対照的に、クラスとして記述されたモジュラー・ソルバを導入しました。  モジュール型ソルバーは、メンテナンスと拡張がよりシンプルになり、多領域シミュレーション、例えば、共役伝熱(CHT)、多相流など、あらゆるタイプの流れに柔軟に対応します。すべてが後方互換性を持っています: 2) simpleFoamなどの古いアプリケーション・ソルバを起動すると、非圧縮流体モジュールを単一領域で実行するスクリプトが実行されます。

OpenFOAM 11には次のようなハイライトがあります。

  • モジュール式ソルバー:クラスベースのソルバーにより、多地域シミュレーションなどの柔軟性を向上。
  • Multiphase: multiphaseEulerモジュールの一貫性と保存性が大幅に改善されました。
  • 輸送:熱伝導率の異方性を追加。
  • 熱物理学:入力ファイルのキーワードにおけるプロパティ名の指定を標準化した。
  • 熱伝導:領域間の熱伝導のための簡略化された臨界境界条件
  • 粒子追跡:粒子のサイズ分布に対する一般化された統計分布。
  • 液体フィルム:質量を節約し、他のモデルに統合する完全な置換。
  • メッシュ:ダイナミック・メッシュ機能の再設計とNCCの統合。
  • ファンクションオブジェクト:フィールド平均化と可視化ファンクションオブジェクトの改良。
  • モデルと制約:多数の新しいモデルと制約。
  • 境界条件:マッピング条件を統合し、MRF条件を導入。
  • ケース設定:新しいfoamToCアプリケーションは、OpenFOAMのモデルとオプションをリストアップします。
  • プログラミング:新しい有限体積関数とアルゴリズムシーケンスの改良。
  • 964件のコードコミット、133件の問題解決。
  • ISO/IEC 14882:2011 (C++14): GCC v5.5+、Clang v16+でテスト済み(v10+でも動作するはず)。

ParaView 5.10.1には、LLVM/Galliumアクセラレーション付きのMesaが含まれており、(サポートされている)グラフィックカードがないシステムにも対応しています:

  • Ubuntu Linux: Ubuntu 20.04、22.04、23.04用のパッケージインストール;
  • その他のLinux:Dockerコンテナによるインストール、またはソースコードからのコンパイル;
  • Windows 10: Windows Subsystem for LinuxとUbuntuパックを使用したインストール;
  • macOS: Dockerコンテナによるインストール。

OpenFOAM 11 Source Packは、適切なLinuxプラットフォームでコンパイルできます。

モジュール式ソルバー

  • 一般的なアプリケーション: foamRunは新しいモジュラーソルバをロードする一般的なCFDアプリケーションです[ commit 968e60 ]。foamMultiRunアプリケーションは異なるメッシュ領域で異なるモジュラーソルバを実行することができ、共役熱伝導などの複雑な連成問題に対応する汎用ツールを提供します[ commit 968e60 ]。foamPostProcessユーティリティは新しいモジュラーソルバをサポートするpostProcessユーティリティの新しい一般的な置き換えです[ commit 4001d2 ]。
  • 非圧縮性および圧縮性ソルバー: 流体、isoThermalFluid、multicomponentFluid、solidモジュールソルバは、rhoSimpleFoam、rhoPimpleFoam、buoyantFoamからreactingFoamなど多くの従来のソルバーを複製します[ commit 968e60 ]。  非圧縮流体モジュールソルバは、pimpleFoam、pisoFoam、simpleFoamを複製します[ commit ca8918 ]。
  • 体積流体(VoF)を含む多相: compressibleVoFモジュラーソルバはcompressibleInterFoamを複製し[ commit f77119 ]、fvModelsを通してキャビテーションをシミュレートすることができます。非圧縮性二相流のための非圧縮性VoFモジュールソルバーは、interFoamを置き換えるもので、多領域シミュレーションに使用することができます[ commit 851c93 ]。VoFを使用した非圧縮性非混和流体用の非圧縮性MultiphaseVoFモジュラーソルバーはmultiphaseInterFoamを置き換え、マルチリージョンシミュレーションで使用することができます[ commit ffdb21 ]。compressibleMultiphaseVoF モジュラーソルバーは compressibleMultiphaseInterFoam を置き換えるもので、多領域シミュレーションで使用することができます [ commit 64e1e4 ]。
  • 他の混相ソルバー multiphaseEulerモジュールソルバーは、オプションのソース、パーティクル、フィルムモデリングなどを追加するためにfvModelsを使用し、multiphaseEulerFoamを置き換えます[ commit cec035 ]。  incompressibleDenseParticleFluidモジュラーソルバはdenseParticleFoamを置き換えます[ commit e40198 ]充填された領域の境界でパターンをずらすことなく、連続相の一貫した安定した速度を提供するために、面安定化で位相抗力を計算します[ commit 2b74f9 ]。新しい非圧縮DriftFluxモジュールソルバがdriftFluxFoamを置き換えます[ commit b949c2 ]。
  • 燃焼ソルバー XiFoamに代わって、圧縮性予混合/部分予混合燃焼のためのXiFluidモジュール式ソルバーが追加され、マルチリージョンシミュレーションで使用できるようになりました[ commit b7ea5f ]。
  • 衝撃の捕捉 rhoCentralFoamソルバーが再編成されました[ commit 3055b1 ]。オプションでメッシュトポロジーの変更、負荷分散、メッシュモーションを含む衝撃捕捉を伴う圧縮性流体用のshockFluidモジュールソルバーに置き換えられました[ commit fe5a99 ]。shockFluidモジュールはrhoUとrhoEを保存しながらrho、U、eを解きます[ commit 9fadb7 ]。
  • その他のソルバー movingMeshモジュラー・ソルバは、moveMeshの代わりにdynamicMeshDictファイルで指定されたmover、topoChanger、distributorを実行します。functionsモジュラー・ソルバーは、postProcessアプリケーションと-postProcessオプション、特にscalarTransportFoamソルバーを複製して、指定されたソルバーの関数オブジェクトを実行します[ commit 8de6cd ]。
  • 粒子ソルバー: particleFoamとrhoParticleFoamアプリケーションソルバーは、それぞれincompressibleFluidとisothermalFluidモジュラーソルバーの上で、fvModelでfunctionsモジュラーソルバーを実行することで複製されるようになりました[ commit fbda1d ]。
  • 固体ソルバー 固体応力解析のためのsolidDisplacementモジュール・ソルバは、solidDisplacementFoamとsolidEquilibriumDisplacementFoamを置き換えるもので、FSI[ commit 55be80 ]などの多領域シミュレーションで使用できます。
  • フィルムソルバ 新しいisothermalFilmソルバーモジュールは等温液体膜を保守的にシミュレーションし、標準モデリングとのインターフェイスを提供します[ commit dcbd54 ]。isothermalFilmから派生した新しいフィルムソルバモジュールは、エネルギーと熱伝導を計算し、共役熱伝導を計算するために既存の境界条件を使用することができます[ commit 796cfb ]。
  • 数値計算: isothermalFluidモジュラーソルバで浮力圧力の緩和不足が改善されました[ commit c22a5a ]。特殊なSRF(単一参照フレーム)ソルバーを使用したシミュレーションが、MRF(複数参照フレーム)機能を持つ標準ソルバーを使用して完全に再現できるようになりました[ commit 160ee6 ]。compressibleVoFモジュラーソルバに混合物温度の補正式が追加され、エネルギーを節約できるようになりました[ commit 74b302 ]。

多相

  • モデリング coupledMultiphaseTemperature境界条件は、共役伝熱のためのオイラー・オイラー混相シミュレーションの相温度を結合します[ commit a7d40a ]。圧縮性混相流のために、特定のtwoPhaseChangeModelコードがより一般的なVoFCavitation fvModelに置き換えられ、将来的に他の相変化モデルや界面操作モデルに拡張できるようになりました[ commit 9dc91e ]。multiphaseEulerソルバーに、例えば充填床での沸騰のための固定相のwallBoiling熱伝達モデルが追加されました[ commit 32edc4 ]。圧縮性VoFおよびmultiphaseEulerソルバー用の新しい斉藤キャビテーションモデルが、平面界面での蒸発/凝縮の理論に基づいた物質移動速度を使用するようになりました。[コミット 2f9f8b ]。
  • 多相反応(VTTフィンランドと): 新しいwallBoilingProperties関数オブジェクトが壁面沸騰に関連するデータを書き出します[ commit 0da491 ]。multiphaseEulerFoam の粒状材料のジョンソン-ジャクソン部分スリップ境界条件を修正しました。壁沸騰モデルからJayatilleke熱壁関数の重複を削除しました。壁面沸騰で温度外挿がより物理的になり、y+が低い領域でより安定になりました[ commit f6342a ]。壁面沸騰が改良され、境界温度をすべての相で均一に保つために流体相間で指定された熱流束を配分するuniformFixedMultiphaseHeatFlux境界条件が追加されました[ commit 377080 ]。混相流での沸騰がより安定し、エネルギーが節約され、正確になりました[ commit 132111 ]。
  • multiphaseEuler ソルバー multiphaseEulerソルバーのセルベースの運動量アルゴリズムが大幅に更新され、一貫性と保存性が改善されました。  陰解法による位相分率補正式に単一の拡散係数を追加し、位相分率の和が1になるようにしました[ commit e8078c ]。  ドラッグテーブルと仮想質量テーブルがオンデマンドで作成されるようになり、ストレージと計算コストが削減されました [ commit ede5ec ]。  抗力と伝熱係数の計算を改善しました[ commit f67445 ]。
  • チュートリアル 新しいfloatingObjectWavesケースは,waveForcing fvModelによって生成された平均流のない波による浮遊物体の運動を示します.多相シミュレーションのためのfvSchemesの仕様の簡素化 [ commit 1c2f61 ]。

輸送モデリング

  • MomentumTransportModels: lambdaThixotropic 粘性モデルには、オプションでBingham塑性降伏応力[ commit 3b1e46 ]が含まれています。
  • ThermophysicalTransportModels: 新しい solidThermophysicalTransportModel は固体の熱物理輸送モデルを提供し、異方的な熱伝導率をサポートします[ commit cdaaa6 ]。異方性熱伝導率を持つ境界での熱流束計算を修正しました[ commit 01d2c6 ]。異方性熱伝導率κにオプションのboundaryAlignedスイッチを追加し、κの主方向を固体境界に合わせるようにしました [ commit d26e0f ]。
  • 乱流: Jayatilleke wall functionの計算を改善しました。

熱物理モデリング

  • 熱力学: fvSolution, 境界条件などの入力ファイルキーワードにおける熱物性名の指定を簡略化し、標準化しました [ commit 87a0b8 ]。新しいconstSolidThermoが一様および非一様な熱物性値指定をサポートしました[ commit 714e13 ]。constSolidThermoを使用した特性は、非一様なフィールドとして表現するか、ゾーンに基づいて表現することによって、領域全体で変化させることができます[ commit a25f99 ]。
  • 輸送: 熱物理学的輸送を再設計し、領域間および外部境界の境界条件をよりシンプルに、拡張可能に、メンテナンスしやすくしました[ commit 5af541 ]。constAnisoSolidThermo熱物性クラスを使用して異方性熱伝導率を指定できるようになりました[ commit 5c296c ]。
  • 設定: 熱物性辞書の名前に正規表現が使えるようになりました [ commit 523333 ]。
  • 化学: 化学積分において、化学種ソースが質量を保存するようになりました[ commit 3d59ed ]。adjustTimeStepToChemistry関数とadjustTimeStepToCombustion関数は反応プロセスに合わせて時間ステップを調整します[ commit 7c684b ]。moleFraction関数は質量分率をモル分率に変換し、massFractionはその逆に変換します[ commit 1b80fd ]。

熱伝達

  • 数値計算 compressibleInterPhaseThermophysicalTransportModelは、compressibleVoFモジュラーソルバを使用した混相流による共役熱伝達を可能にします。
  • 境界条件: 臨界境界条件をよりシンプルで合理的な名前にすることで、熱伝導のシミュレーションがより簡単になります[ commit 5c01fe ]。
  • 例 新しいcircuitBoardCoolingチュートリアルケースは、3Dサーマルバッフル[ commit 3f33f3 ]による共役熱伝達への効果的なアプローチを示しています。

パーティクルとトラッキング

  • トラッキング: ラグランジュパーティクルの境界相互作用が制約境界で修正されました[ commit 6ccaf6 ]。メッシュ間のマッピングを使用してトポロジーが変更された場合にパーティクルがマッピングされるようになりました[ commit 03b061 ]。
  • 射出: 粒子(ラグランジュ)機能において、サブサイクルを削除し、インジェクションの動作を改善しました[ commit 06e29c ]。  統計分布が一般化され、パーティクルのサイズ分布に使用されるようになりました[ commit cae419 ]。  新しいuniformParcelSizeコントロールがパーティクルの固定数、体積、表面積にパーセルサイズを基づかせるようになりました[ commit 0d2fd7 ]。
  • 設定: 任意のシミュレーションに粒子をプラグインするのに役立つ、雲モデル用のサンプルfvModelsファイルを追加しました[ commit 399ea8 ]。
  • モデリング: MPPICの近似補正トラックを予測器-補正器スキームに置き換え、メモリ使用量を削減し、トラッキング時間と関連するパーセル特性へのアドホックな補正を回避しました[ commit ca0003 ]。
  • データ収集: 粒子のフラックス(数、体積、質量)はCloudFunctionObjects [ commit f69b9f ] で計算できます。

液体フィルム

  • 概要 isothermalFilmとフィルムソルバモジュールは、現在削除されているsurfaceFilmModelsライブラリを置き換えるものです。新しいアプローチはより柔軟で、ガス流、ラグランジュ雲、VoF、CHTなどの他の領域との結合が可能です。
  • フィルム-流体界面: filmVoFTransferとVoFFilmTransfer fvModelsはフィルムとVoF領域の間で動作し、フィルムが十分に厚い場合はフィルムをVoF相に移動させ、VoFフィルムが薄すぎる場合はその逆を行う[ commit 72b876 ]。
  • フィルムと粒子の相互作用: パーティクルは、流体 cloudProperties ファイルで cloudFilmTransfer surfaceFilmModel を指定し、filmCloudTransfer fvModel をフィルムに適用することで、表面のフィルムに移動することができます[ commit a2ad71 ]。filmCloudTransferのfvModelに、反転した表面や曲率分離からの滴下によってフィルムから粒子(パーセル)に流体を転送するオプションの排出モデルが追加されました[ commit 2cf8f6 ]。
  • 境界条件: mappedFilmPressure境界条件は流体領域からフィルム領域に圧力をマッピングします[ commit 12decc ]。  新しいfilmSurfaceVelocity境界条件は、隣接する流体領域によって課されるせん断からフィルム表面の速度を評価します[ commit 423fa5 ]。
  • 例 rivuletBoxのサンプルケースは、アルミニウムパネル、小滴を形成する流体の膜、自然対流で流れる周囲の空気の間の熱伝達を実証しています[ commit cee34f ]。

Meshes

  • 一般: allGeometryオプションを使用すると、checkMeshは非整形カップル(NCC)のカバレッジを書き出します[ commit 095f4b ]。
  • 生成: extrudeRegionToMesh ユーティリティで intrude オプションを使用してフィルムメッシュを生成できるようになりました [ commit f85026 ]。
  • 非形式結合: 非形式結合(NCC)は任意メッシュインターフェース(AMI)を置き換えるもので、回転する形状やメッシュの非整合領域などに対して、拘束された保守的な数値計算を提供します[ commit f4ac5f ]。メッシュ間のトポロジーの変更に対応するNon-conformal couplingを追加しました[ commit 3ec358 ]。createNonConformalCouples ユーティリティに -fields オプションを追加し、フィールドファイルに非整形カップルに関連するパッチエントリを追加するようにしました [ commit 2db562 ]。Non-Conformalカップルを "stitched "することで、Paraviewなどで補間されたフィールドデータを視覚化する際に不連続性を回避できるようになりました。メッシュからメッシュへのマッピングを含むケースで動作するようにNCCを修正しました[ commit 919972 ]。非共形結合が2次の時間スキームをサポート [ commit a4ca75 ]。多重回転フレーム(MRF)が非共形結合(NCC)と互換性を持つようになりました [ commit a430d0 ]。
  • その他 新しい rigidBodyPoints functionObject は剛体上の点の動きを追跡します [ commit 386588 ]。メッシュの動きとトポロジーの変更に伴う古いフィールドの更新と削除を一般化 [ commit 30eb5e ]。
  • マッピング: メッシュ間のマッピング機能が大幅にリファクタリングされました [ commit 582438 ]。メッシュの再配分がパーティクルを処理できるようになりました [ commit 8f7ae7 ]。共形および非共形インターフェースの両方に対するパッチ間マッピングのロバスト性が改善されました [ commit 020361 ]。メッシュ間マッピングと mapFieldsPar ユーティリティを合理化しました [ commit f95eb5 ]。
  • 分解と再配布: reconstructParユーティリティは分解されたメッシュをフィールドと同様に再構築するようになったので、reconstructParMeshユーティリティは必要なくなり削除されました[ commit c3ab70 ]。

機能オブジェクト

  • 一般: マルチリージョンシミュレーションでメッシュ領域に適用される関数オブジェクトが標準パスにファイルを書き込むようになりました[ commit 5b11f5 ]。新しいstopAtTimeStep関数オブジェクトが、時間ステップが指定したレベル以下になった場合にシミュレーションを停止するようになりました[ commit 4974cc ]。
  • サンプリング: triSurfaceAverage関数オブジェクトは、指定された三角形サーフェス上のフィールドの平均を計算します[ commit c5d70f ]。 cutPolyは、新しい多面体切断ルーチンと、既存のツールよりもロバストで高速な等値面アルゴリズムを提供します[ commit 723f52 ]。
  • メッシュ: 新しい checkMesh functionObject は動的メッシュの場合のメッシュの品質をレポートします [ commit 36e834 ]。
  • フィールド: fieldAverage 関数オブジェクトは構築時に存在しないフィールドを平均化できるようになり、メッシュのトポロジーが変化するケースでも再スタート時に動作するようになりました [ commit 3e8b97 ]。新しいvolAverageとvolIntegrateパッケージ関数オブジェクトはフィールドの体積加重平均と体積積分を便利に処理できます[ commit 5c7131 ]。

モデルと制約

  • 一般: fvModel 関数オブジェクトを使用して、controlDict ファイルから fvModel を設定できるようになりました [ commit 9f6eac ]。また、#includeModel および #includeConstraint ディレクティブは、controlDict ファイルの functions サブディクショナリから fvModel および fvConstraints をインクルードできるようになりました [ commit 3a269e ]。関数オブジェクト、fvModel、fvConstraint の名前と、関連する出力ディレクトリを name キーワードで指定できるようになりました [ commit dc85d5 ]。regionTypeとselectionModeに代わって、selectキーワードがセル、面、点のコレクションを指定するのに使われるようになりました[ commit 295223 ]。zeroDimensionalFixedPressure fvModelとfvConstraintがゼロ次元の場合の圧力拘束を維持するようになりました[ commit 9cdd2a ]。
  • fvModels: surfaceFilms fvModelは、surfaceFilm(単数)モデルを置き換えることで、潜在的に異なる仕様の複数のフィルムをサポートします[ commit b1de50 ]。新しいwaveForcing fvModelは、ドメインインレットで適用することなく、任意の方向に動くように設定できる表面波を生成します[ commit 562925 ]。densityConstraintSourceとpressureConstraintSource fvModelは0次元シミュレーションに膨張/収縮、または質量ソース/シンクを含めることができます[ commit 644a59 ]また、0次元シミュレーションを簡素化するために設定なしで単位立方体形状を生成するzeroDimensionalMeshユーティリティが追加されました[ commit 099505 ]。massSource fvModelは負の質量流量が指定された場合に質量を除去します[ commit d7e330 ]。heatTransfer fvModel が多相シミュレーションの個々の相に適用できるようになりました [ commit 3736bc ]。
  • fvConstraints: 新しい束縛fvConstraintは、スカラー・フィールドが指定された最小値以下になった場合にそのフィールドを束縛します[ commit 1a17ce ]。

一般的な境界条件

  • Pressure: waveSurfacePressure境界条件がisothermalFluidとfluid modularソルバーでポテンシャル自由表面流を解くように更新され、potentialFreeSurfaceFoamソルバーは廃止されました[ commit 897658 ]。
  • 速度  MRFslip 境界条件はMRF(多基準フレーム)またはSRF(単一基準フレーム)の場合に移動フレームと一緒に回転するスリップウォールに使用できます[ commit ef9566 ]。回転速度(rad/s)を表すomegaエントリは、ユーザーが1分あたりの回転数でデータを入力したい場合、rpmに置き換えることができます[ commit 2da5ed ]。
  • 一般: mappedPatch 境界条件は別のフィールドや別のパッチからのデータを適用します。新しい samePatch スイッチは同じパッチからのフィールドデータに対して単純化します [ commit 320e70 ]。autoMapとrmapに代わり、単一のmap関数が境界条件クラスでパッチ間のマッピングを行うようになりました [ commit 38e8e7 ]。

ケース構成

  • データ可視化: foamSequenceVTKFiles スクリプトは、異なる画像シーケンスで同じ名前のファイルを処理するようになりました [ commit 7f17fc ]。
  • ケースの初期化: 関数ソルバーは、別のソルバーによって初期化されたフィールドに基づいて関数オブジェクトを実行します。フィールドデータが読み込まれる時間は、controlDictファイルのsubSolverTimeエントリによって任意に設定できるようになりました[ commit 714291 ]。結果はcontrolDictで指定されたwriteIntervalの倍数で、開始時間またはオプションのbeginTime項目で設定された時間から書き出されます[ commit 0fa46e ]。新しいsnappyHexMeshConfigユーティリティがsnappyHexMeshでメッシュを作成するために入力ファイルを事前設定します[ commit c25529 ]。
  • コード入力: 特に#codeStreamディレクティブを使用した入力ファイルのキーワード値エントリを生成するのに便利です[ commit d1cb13 ]。codeStreamと#calcで構築された辞書エントリは型付き変数を便利に使用できるようになり、ベクトル、テンソル、リスト、フィールドなどでの計算が可能になりました [ commit b2d4f2 ]。新しい#calcIncludeディレクティブは、数学関数をインクルードするなど、#calc用のヘッダファイルをロードすることができます[ commit 0de23d ]。入力ファイル用の #calc ディレクティブで、代替の #{ ... #} 区切り文字を使用できるようになりました [ commit 8611db ]。calcによる複数行のエントリは、#codeStreamをエミュレートしつつ、よりシンプルな構文で、入力ファイルにより有用なコード化されたエントリを可能にします [ commit 441b60 ]。
  • モデルとオプションの検索: 新しいfoamToCアプリケーションは "目次 "を印刷し、報告し、ユーザーがモデルを見つけ、異なるモデルのオプションをリストアップすることを可能にします[ commit f978ff ]; それは正規表現検索に基づいた機能をリストアップすることができます[ commit db7ea4 ]。

プログラミング

  • その他の数値計算 新しいfvm::LaplacianCorrection関数により、熱輸送の実装がより効率的でシンプルになりました。熱物理学的輸送特性は輸送方程式を含まないため、時間ステップの最初に計算されるようになりました[ commit ce42eb ]。輸送方程式を解かない計算の場合、運動量輸送特性は時間ステップの最初に計算されるようになりました[ commit d9ba28 ]。fvc::flux()関数をテンプレート化し、ベクトル流束をサポート [ commit 42c35a ]。新しいfvm::divc関数は、指定されたフラックスの発散を含む明示的なソースを持つ行列と、fluxRequired設定に従ってキャッシュされたフラックスを返します[ commit 1182d3 ]。ddtCorrを多重回転フレーム(MRF)で拡張し、数値振動の原因となる圧力、速度、フラックス間のデカップリングを回避しました[ commit e98dcc ]。連続性を確保するためにフラックスを補正するCorrectPhi関数にいくつかの改良が加えられました; これらはVoFや他の多相ソルバーにとって特に重要です[ commit e66484 ]。
  • フィールド: GeometricField<Type、fvPatchField、volMesh>とGeometricField<Type、fvsPatchField、surfaceMesh>はよりシンプルなVolField<Type>とSurfaceField<Type>型定義に置き換えられました[ commits 73c562 ]。
  • functionObject、fvModel、fvConstraint を使用する場合、可能であれば関連するライブラリが自動的にロードされるようになりました [ commit 0b8c17 ]。