OpenFOAM 13 リリースノート

提供:オープンCAEWiki OpenCAE Wiki
2026年8月11日 (火) 07:47時点におけるMmer547 (トーク | 投稿記録)による版 (ページの作成:「 =OpenFOAM 13 リリース= OpenFOAM Foundationは、CFD Directによって開発されたオープンソースCFDツールボックスOpenFOAMのバージョン13のリリースを発表しました。 バージョン13には、次のような機能が含まれています。動的な更新が可能で、より使いやすく堅牢になったメッシュゾーン機能の全面的な書き換え(使い勝手の悪かったtopoSetを置き換え)、既存コ…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

OpenFOAM 13 リリース

OpenFOAM Foundationは、CFD Directによって開発されたオープンソースCFDツールボックスOpenFOAMのバージョン13のリリースを発表しました。

バージョン13には、次のような機能が含まれています。動的な更新が可能で、より使いやすく堅牢になったメッシュゾーン機能の全面的な書き換え(使い勝手の悪かったtopoSetを置き換え)、既存コードをより柔軟で拡張性が高く効率的なものへ置き換える、65%まで完成したフィールドベースLagrangian機能、boundedness(有界性)を保証し、多相流などの計算を高速化するMULESの改良、物質移動モデルの全面的な書き換え、領域分割されたケースをParaViewで扱えるようにする機能、アニメーション用foamVTKSeries、改良されたfoamMonitorなどの可視化機能の向上、さらにマルチリージョン解析、ケース設定、メッシュ生成、Function Object、多相流、燃焼に関する多数の改良および機能追加です。

OpenFOAM 13には、以下の主要な変更が含まれています。

モジュラーソルバー: flow、thermophysics、modelsを無効化するためのスイッチを追加。

MULES: 反復計算の収束状態にかかわらずboundednessを保証。

多相流: multiphaseEulerソルバーによる解析を大幅に高速化。

輸送/熱物性: multiphaseEulerソルバーの物質移動モデルを全面的に書き換え。

燃焼: エンジン解析向けの点火モデルおよび火炎モデルを改良。

粒子: 65%まで完成したフィールドベースLagrangian機能。より柔軟、拡張可能、高効率など。

メッシュ: メッシュ生成、および複数メッシュ領域間の連成機能を強化。

メッシュゾーン: より堅牢で使いやすく、柔軟かつ高機能な代替システム。

マルチリージョン解析: NCC、メッシュスティッチング、マッピングを改良。

Function Object: scalarTransportを改良し、power、reaction rate、cutLayerAverageを追加。

モデル: propellerDiskモデルを追加し、fvFieldSourceを改良。

境界条件: 圧力、温度、物質拡散に関する条件を改良。

ケース設定: 新しいfoamMergeCaseツール。

可視化: ParaViewが領域分割されたケースを読み込み可能に。アニメーション用foamVTKSeriesを追加。

ケース: 単相流、多相流、非圧縮性流れ、圧縮性流れの新しい例題を追加。

その他: foamNewAppスクリプトで非CFDアプリケーションのスターターコードを作成可能。

約832件のコードcommit、約150件のissueを解決。

ISO/IEC 14882:2014(C++14): GCC v5.5以降、Clang v16以降でテスト済み(v10以降でも動作する見込み)。

OpenFOAM 13は、以下のプラットフォーム向けにパッケージ化されています。

Ubuntu Linux: Ubuntu 22.04、24.04、25.04向けのパッケージインストール。

Windows: Ubuntuパッケージを使用したWindows Subsystem for Linux(WSL)によるインストール。

macOS: Ubuntuパッケージを使用したCanonical Multipassによるインストール。

OpenFOAM 13 Source Packは、対応するLinuxプラットフォーム上でコンパイルできます。

モジュラーソルバー

一般: すべてのソルバーモジュールにflow、thermophysics、modelsスイッチが追加され、それぞれ流れ、熱物性、および追加モデルの計算を無効化できるようになりました [ commit c822a9b7 ]。

燃焼: XiFluidソルバーモジュールでは、XiモデルおよびそのサブモデルをcombustionPropertiesファイルから選択できるようになりました [ commit 8b46ef6b ]。

MULES

一般: MULESリミッターは、反復計算の収束状態にかかわらずboundednessを保証するようになりました [ commit e53e7618 ]。MULESの制御パラメータは、より単純なキーワードを持つ小さなサブディクショナリ内で指定するようになりました [ commit f57b6e05 ]。globalBoundsスイッチにより、隣接セルの値を用いて局所的に制限する代わりに、変数のグローバルな上下限値によって解を制限できるようになりました [ commit 025f14d4 ]。

半陰解法: semi-implicit MULES反復の収束は、固定反復回数を指定する代わりに、新しいtolerance制御によって管理できるようになりました [ commit adaa3f0b ]。

多相流: Volume of Fluidソルバーでは、サブサイクル数をCourant数の関数として指定できるようになりました [ commit bde0fa74 ]。multiphaseEulerソルバーでは、非常に長時間の解析において丸め誤差による解のドリフトが発生する問題に対応するため、相分率計算にオプションのclip処理が追加されました [ commit d3940e3f ]。相分率の境界条件が値を設定可能ではあるものの完全には固定されていない場合、境界でphase-fluxを制限できるようになり、inletOutlet条件でもリミッターを使用できるようになりました [ commit a71780cd ]。

MULESの改良についての詳細は「MULES in OpenFOAM in 2025」を参照してください。

多相流

ソルバー: multiphaseEulerソルバーでは、サブサイクルおよび補正ループ中の再計算を避け、圧力方程式との整合性を向上させるため、前回の反復計算からphase-pressure fluxをキャッシュするようになりました [ commit a8a84c78 ]。VoFソルバー向けに開発された相分率の解法アルゴリズムがmultiphaseEulerソルバーにも拡張され、高Courant数でより高速に計算できるようになりました [ commit fe950b90 ]。

運動量輸送: multiphaseEulerソルバーでは、相分率が小さい領域における圧力勾配力と表面張力を除外し、抗力と浮力のみを残すようになりました。これにより、相分率 → 0のとき、重い相は重力によって下降し、軽い相は上昇します [ commit 30fecbbb ]。

ドリフトフラックス: 工業的な分離プロセス、排水汚泥、鉱物スラリー向けのpackingDispersionModelsを追加しました [ commit 1f6ae5c8 ]。HerschelBulkley粘度モデルを追加しました [ commit 7962b54e ]。

粒子相: multiphaseEulerソルバーにおける粒子相の相分率について、新しいアルゴリズムを導入しました [ commit a56c4dd6 ]。

界面捕捉: VoFチュートリアルは、fvSolutionファイル内の相分率ソルバー制御でMULESサブディクショナリを使用するよう更新されました [ commit cb6641ee ]。圧縮性VoFソルバーでは、multiphaseEulerソルバーと同様に、基準圧力pRefを指定するオプションが追加されました [ commit a0c90e4b ]。

Population balance: Population Balance Methodでは、singleSizeGroupまたはdistributionSizeGroupオプションを使用して、境界または内部フィールドにsize group fractionを指定できるようになりました。両者は境界条件およびソース項として実装されています [ commit d1eacce5 ]。populationBalanceSetSizeDistribution関数は、指定された分布を積分して得られた値でsize-group fractionフィールドの値を上書きし、Population Balanceの粒径分布を設定します [ commit 8e4a1b8 ]。

輸送/熱力学

物質移動: multiphaseEulerソルバーにおける相変化過程は、熱伝達、蒸発、凝縮、溶解、キャビテーション、沸騰、均一核生成、反応駆動型移動を含む一連のfvModelsとして全面的に書き換えられました [ commit 1142ff22 ]。multiphaseEulerソルバーのblended forceモデルでは、力の符号(+/-)および固定flux境界の取り扱いに関する一般化が削除されました。これらは個々のモデル固有の処理であるためです [ commit 72b40725 ]。新しいadjustTimeStepToNucleation Function Objectでは、例えば凝縮や相分離におけるmultiphaseEulerソルバー内の液滴核生成の時間スケールに基づいてタイムステップを制御できます [ commit 8a1956f3 ]。

物質: 温度の対数の多項式関数として表される、新しい二成分拡散係数binaryDiffusionCoefficientが追加されました [ commit f9139b7a ]。

熱力学: incompressiblePerfectGas状態方程式はperfectGasと熱力学的に整合するようになりました。これにより、圧力変動は小さいものの、不要な圧力振動が問題となるケースに適したものとなっています [ commit f8d64ccb ]。

インターフェース: devTau/Sigma関数は、CFD計算と、力や動力などの後処理との整合性を維持するため、表面トラクション力(単位面積当たりの力)を返すようになりました [ commit 6592798c ]。

燃焼

点火: XiFluid向けにconstantIgnition fvModelを追加し、従来の個別実装コードを置き換えました [ commit 1cbf7525 ]。XiFluidによる1D、2D、3D解析向けの新しいignition fvModelsを追加しました [ commit 812e5fde ]。multiCycleConstantbXiIgnitionは、XiFluidソルバーを用いた排気再循環(EGR)モデルを含むマルチサイクル解析向けの新しい点火モデルです [ commit f7f9be71 ]。Weller b-Xi燃焼モデル向けの新しいbXiIgnited点火モデルを追加しました [ commit 7d7deec8 ]。

火炎速度: 層流火炎速度モデルの設定制御をより柔軟にしました [ commit d01d62ce ]。層流火炎速度モデルを全面的に見直しました [ commit a3586e16 ]。

火炎しわ: XiFluidソルバーに新しい平衡flame-wrinklingモデルを追加しました [ commit 4d77261d ]。初期火炎核成長向けの新しいflame-wrinkling補正モデルを追加しました [ commit 76c4d789 ]。Weller b-Xi燃焼モデル向けに、簡単な1D火炎伝播例を追加しました [ commit 17922670 ]。Weller b-Xi燃焼モデルにおけるflame wrinkling profileの新しいモデル構造を導入しました [ commit 19844bde ]。

エンジン解析: 新しいengine2Valve2Dサンプルケースでは、動きを伴う共役熱伝達、スライディングインターフェース、mesh-to-meshマッピングを含む簡単な2Dエンジン相当解析を提供します [ commit 342980ab ]。さらに吸気弁および排気弁、燃料噴射、Weller b-Xi燃焼モデルを用いた火花点火を含み、排気再循環にも対応しています [ commit 40732682 ]。

粒子

フィールドベースLagrangian: 新しいフィールドベースLagrangianライブラリを追加しました。完成後には、既存の粒子ベースLagrangianライブラリを置き換える予定です [ commit afdfb5bd ]。新しいライブラリはデータを個々の粒子ではなくフィールドとして保存するため、従来よりはるかに柔軟で拡張性が高く効率的であり、使いやすく、OpenFOAMのその他の部分との整合性も高くなっています。

トラッキング: 2次精度のLagrangianモデルの構築を支援するため、放物線トラッキングを追加しました [ commit 143443e6 ]。

反応: 反応性多相粒子では、singleMixtureFractionモデル係数における相の指定順序に解析結果が依存しないようになりました [ commit 436361e6 ]。

分布: 分布関数を以前の状態から再開し、同じサンプル列を複数回生成できるようになりました。これにより、サンプルの再ランダム化によって反復計算の収束が妨げられることがなくなりました [ commit 1e761950 ]。新しいmultiFixedValue分布モデルでは、それぞれに確率を設定した複数の値を指定できます [ commit d4f88d69 ]。

データ処理: cloudSurfaceDistribution Function Objectは、faceZone、faceSetまたはpatchを通過する粒子の値の分布をプロットします [ commit c6477cb4 ]。

新しいフィールドベースLagrangianについての詳細は「Field-Lagrangian in OpenFOAM」を参照してください。

メッシュ

一般: snappyHexMeshなどのメッシュ生成ツールは、デフォルトで既存のメッシュファイルを上書きするようになりました。-noOverwriteオプションを使用すると、polyMeshディレクトリを各時刻ディレクトリに書き込む従来のデフォルト動作になります [ commit 08b82b5c ]。

snappyHexMeshConfig: snappyHexMeshを設定するためのツールに、以下の新しいオプションが追加されました。-closedDomain、-minDimCells、-regions [ commit bce844a7 ]、blockMeshDictファイルの書き出しを抑制する-noBackground [ commit 45e69c59 ]、-insidePoints [ commit 87b48aff ]、およびsnappyHexMeshConfigが生成したメッシュ設定ファイルを削除する-rm [ commit 4c3ee7b7 ]。オプション引数の指定方法も簡略化され、過剰な括弧が不要になりました [ commit f21766be ]。

snappyHexMesh: snappyHexMeshおよびその他のユーティリティで使用される表面形状の指定構文を簡略化しました。不要であったsearchable接頭辞が削除され、例えばsearchableBoxはboxになりました [ commit 031e50e9 ]。また、OBJやSTL形式などの表面形状ファイルを指定する場合は、triSurfaceMeshではなくtriSurfaceを使用するようになりました [ commit 974c68a5 ]。レイヤー追加時にゾーンを保持する処理も全面的に書き換えられました [ commit 414f5f88 ]。

extrudeMesh: 新しいpath extrudeモデルを追加しました [ commit 4accaf6c ]。入力構文を標準化しました [ commit 7bdc653d ]。

変換: fluent3DMeshToFoamメッシュコンバーターについて、一部のface番号付けを変更することで改善しました [ commit 49427c76 ]。

その他: mergeMeshesはconstant/meshesサブディレクトリ内のメッシュも結合できるようになりました [ commit 8a07d26f ]。mapFieldsおよびmapFieldsParユーティリティは、non-conformal coupled(NCC)インターフェースを持つメッシュでも動作するようになりました [ commit 4a65ffb0 ]。

メッシュ移動: 新しいdisplacementLayeredMotionSolverは、向かい合うpatch間にあるメッシュレイヤーを移動します [ commit 74599a66 ]。メッシュ移動、細分化、分配、および2次時間スキーム間の相互運用性を改善しました [ commit f4eb5495 ]。

メッシュゾーン

概要: 新しい動的ゾーン生成システムが作成され、zoneGeneratorを設定することで、1つ以上のpointZone、cellZone、faceZoneから構成されるzoneSet(ゾーン集合)を生成できるようになりました [ commit da974812 ]。この新しい動的ゾーン生成システムには、ゾーンを作成・制御するための多数のzoneGeneratorが含まれています [ commits b4339ca4 ]、[ commits a578e1e8 ]。faceZoneではorientation flipMapがオプションになりました [ commit 5877765e ]。必要な場合は、flipMap zone generatorを用いて常に追加できます [ commit 32f9dd4f ]。

createZones: cell zoneを作成するためのtopoSetよりも簡単かつ強力な代替機能を提供します [ commit e4278233 ]。createZonesDictまたはzoneGeneratorファイルを読み込むことができます [ commit 1703c26e ]。

refineMesh: アプリケーション内部で生成した複数のゾーンを利用できるよう全面的に書き換え、簡略化しました。1回の実行で複数ゾーンを細分化できます [ commit 61e3bcb6 ]。さらにhexRef8細分化のオプションを備え、snappyHexMesh、動的細分化などによる追加の細分化にも対応します。このため、独立したrefineHexMeshユーティリティは不要になりました [ commit 1544cf9b ]。

subsetMesh: cellZoneを使用したサブセット化を可能にするよう全面的に書き換えられました。通常、このcellZoneはアプリケーション内部で生成され、subsetMeshDictで設定されます [ commit 7d90588d ]。

createPatch: メッシュのpatch順序を維持するようになりました [ commit 1527f1f2 ]。createPatchDictファイル内の設定から直接生成されたface zoneを用いてpatchを作成できるようになりました [ commit f05b6ee8 ]。また、設定ファイルではより簡潔なdictionary形式を使用します [ commit de7e4107 ]。

setFields: ファイル入力を簡略化し、setFieldsDictファイル内で直接設定したzoneを使用できるようになりました [ commit e12d83e7 ]。

剛体運動: 剛体とともに移動可能なpointZonesを含めることができるようになりました [ commit c184f81b ]。

ゾーンおよび関連ユーティリティについては、「Dynamic Zones in OpenFOAM」および「OpenFOAM User Guide: 5.6 Mesh zones」を参照してください。

マルチリージョン解析

マッピング: マルチリージョンケースでは、マッピング時に使用するメッシュ集合をmeshesサブディクショナリに含めることでmesh-to-meshマッピングを実行できるようになりました [ commit cbfa3627 ]。

メッシュ生成: 複数のregionを持つ解析では、-regionオプションを使用して個々のメッシュを生成・操作できるようになりました [ commit c0c636f6 ]。

Non-conformal coupling: non-conformal coupled(NCC)インターフェースに新しいmoveUpdateパラメータを追加しました。これは、交差/マッピングの更新タイミングをnever(静止メッシュ)、always(移動メッシュ)、detect(移動する場合と静止する場合があるメッシュ)から指定します [ commit ad8a5e82 ]。Mesh stitchingは、互いに近接して接続された複数のNCCインターフェースでも動作するようになりました [ commit d76d4047 ]。領域分割時におけるnon-conformal mapped wall patchの順序を修正しました [ commit 7220bc3b ]。non-conformal coupled interfaceのどちらのpatchをownerおよびneighbourにするかを、ユーザーが間接的に制御できるようになりました。owner patchはneighbour側へ投影されるため、ownerをより粗いメッシュ側に対応させることが合理的です [ commit e458c678 ]。

Mesh stitching: stitchMeshの堅牢性を改善しました [ commit 8a90693c ]。

Function Objects

一般: #includeFuncディレクティブが引数内でのマクロ展開に対応しました [ commit 2bb1fd47 ]。

スカラー輸送: scalarTransportおよびphaseScalarTransportを改良し、拡散係数をキャッシュして他の場所からも利用できるようにしました [ commit 92eef5ec ]。scalarTransport Function Objectは、タイムステップ内で収束したflux fieldを使用し、タイムステップの最後に輸送方程式を解くようになりました [ commit d4f3f480 ]。phaseScalarTransport Function Objectについても同様です [ commit 604b24e1 ]。

フィールド: 新しいpower Function Objectは、さまざまな動力フィールドを計算します [ commit 0cc6f26b ]。

反応: Reaction rate Function Objectに、反応速度フィールドを書き出すオプションを追加しました [ commit 1c19a34b ]。

グラフ: cutLayerAverage Function Objectは、指定方向に垂直な平面、または指定した距離フィールドの等値面ごとに体積平均したセル値のグラフを出力します [ commit 0d43f803 ]。

その他: Population BalanceのFunction Objectが、HZDRのfoamPostProcessでも動作するようになりました [ commit fe17ea77 ]。

データ出力: 新しいFunction1として以下が追加されました。関数をx軸方向に移動するshift、指定した周期/周波数で関数を繰り返すrepeat、積分値が1(またはさらに指定倍率)となるよう関数をスケーリングするnormalise [ commit 37638286 ]。Function1では、OpenFOAM形式のtableファイルから特定のデータ列を選択できるようになりました [ commit 662fe586 ]。

モデル

流体ソース: fvFieldSourceは、体積フィールド内の小領域だけでなく、体積フィールド全体に作用できるようになりました [ commit 6bb26587 ]。

運動量: 新しいrigidBodyPropellerDisk fvModelは、メッシュ移動に対応したpropellerDiskモデルを提供します [ commit d5b963ae ]。propellerDiskForceは、propellerDiskによる力およびモーメントと反対向きの力・モーメントを、プロペラが取り付けられている物体へ作用させます [ commit 6137b137 ]。この実装は後に修正されました [ commit d118afa2 ]。

一般境界条件

圧力: 基準圧力を使用する場合のwaveSurfacePressure境界条件を修正しました [ commit 53941b20 ]。

温度: externalTemperature境界条件は、外部放射率を指定する場合に、外部対流熱伝達率を同時に指定しなくても使用できるようになりました [ commit 4b4bcef1 ]。

一般: 物質拡散を計算する境界条件は、Lewis数を1と仮定するのではなく、実効拡散係数を使用するよう更新されました [ commit 4d52188c ]。

ケース設定

一般設定: チュートリアルでは、可能な場合にgetApplication関数およびcontrolDict内の関連するapplicationエントリが削除されました。デフォルトでfoamRunが使用されるためです [ commit 9971c8c5 ]。新しいfoamMergeCaseユーティリティは、既存ケースを基に小さな変更をマージし、新しいケースを作成できます [ commit 486df09c ]。PISO、PIMPLE、VoF、multiphaseEulerの相分率計算、populationBalance、scalarTransport、phaseScalarTransportにおけるcorrector数を指定する入力キーワードとして、nCorrectorsを一貫して使用するようになりました [ commit ef79c692 ]。

ケース初期化: 入力ファイル内のcoded entryで置換されるUxなどのキーワードパラメータは、パラメータ値で展開して書き出されるようになり、解析をrestartできるようになりました [ commit 52514ec4 ]。writeOptionalEntriesスイッチは、解析で使用されるデフォルト値を出力し、ユーザーがそれらを確認できるようにします [ commit 039e06cf ]。

単位: Avogadro数、Universal Gas constant、Faraday定数は、それぞれmol(モル)単位とkmol(キロモル)単位の2種類の変数として提供されます。NA、R、Fはmolを使用し、NNA、RR、FFはkmolを使用します [ commit 5e423f69 ]。次元を持つ定数の値は、単位系間で自動的に変換されるようになりました [ commit 84991fbe ]。

foamMergeCaseについての詳細は「OpenFOAM User Guide: 4.7.9. The foamMergeCase script」を参照してください。

可視化

アニメーション: 新しいfoamVTKSeriesスクリプトは.vtk.seriesファイルを生成します。これをParaViewで開くことで、OpenFOAMの後処理から生成された一連のVTKファイルを時系列データとして扱うことができます [ commit f7aac692 ]。

グラフ: foamMonitorツールを改良し、interactive modeでデフォルトのグラフィカルウィンドウを開き、正常に終了できるようにしました [ commit f6a6e48c ]。

ParaView reader: paraFoamスクリプトから起動するPVFoamReaderが、領域分割されたケースを読み込めるようになりました [ commit 81583278 ]。time selectorがsequence modeで停止したままになることがなくなり、常にケースの時刻を正しく表示します [ commit 737df51e ]。

foamVTKSeriesについての詳細は「OpenFOAM User Guide: 7.4.5. The foamVTKSeries script」を参照してください。

ケース

テンプレートケース: 新しいnonConformalCHTテンプレートケースは、流体領域と固体領域をnon-conformal coupled(NCC)インターフェースで結合した共役熱伝達(CHT)解析の作成を支援します [ commit 3ccd5c18 ]。

incompressibleFluid:

simpleRushtonMRF/NCCサンプルケースは、Rushton turbineを備えた円筒形タンクを提供します [ commit ff7962d1 ]。

cylinderは、パラメータ化されたblockMeshDictファイルを備えています [ commit f4dc4532 ]。

venturiTubeは、『Notes on CFD』に掲載されているVenturi tubeのサンプルです [ commit c25f3091 ]。

moodyChartは、単一の解析によってMoody chart上の点を生成します [ commit e7463c3a ]。

fluid:

roomHeatingは、『Notes on CFD』のroom heating例を基にしています [ commit 075d9d30 ]。

stackPlumeは、煙突からの流れを解析するケースです [ commit 988091a6 ]。

incompressibleVoF:

parshallFlumeは、ISO規格のParshall Flumeを通過する水流の解析ケースです [ commit 815067c1 ]。

multiphaseEuler:

aeratedStirredTankは、multiphaseEulerソルバーで実行する撹拌槽反応器の代表的なケースです [ commit 75400d6a ]。

shockFluid:

diffuserIntakeは、実験データを含むケースです [ commit 8f401d1f ]。

その他

その他の数値計算: N×N scalarSquareMatrixの固有値分解を実装しました [ commit 4ca8ea20 ]。慣性モーメントテンソルをsymmTensorを使用するよう変更しました [ commit cf85a155 ]。多角形の三角形分割をより堅牢にしました [ commit 7cf271cd ]。

フィールド: Field Operation and Manipulation(FOAM)の基本構成要素であるGeometricFieldのテンプレート引数を変更し、内部フィールドについてより柔軟なオプションを利用できるようにしました [ commit 3e98252e ]。新しいfvc::surfaceIntegrateExtrapolate関数を追加しました。この関数は境界値を含む完全なフィールドを生成します。一方、surfaceIntegrateおよびsurfaceSum関数は内部フィールドのみを返すようになりました [ commit 66a9057f ]。

データ管理: OpenFOAM内部の不要なdictionaryコピーを削除しました [ commit a512d3fc ]。

スターターコード: foamNewAppスクリプトに-plainオプションを追加し、単純な非CFDアプリケーション向けのスターターコードを作成できるようになりました [ commit 55568890 ]。