OpenFOAM 14 リリースノート

提供:オープンCAEWiki OpenCAE Wiki
2026年8月11日 (火) 07:50時点におけるMmer547 (トーク | 投稿記録)による版 (ページの作成:「=OpenFOAM 14 リリース= OpenFOAM Foundationは、CFD Directによって開発されたオープンソースCFDツールボックスOpenFOAMのバージョン14のリリースを発表しました。 バージョン14には、次のような機能が含まれています。setFieldsのような前処理ユーティリティを使用せずに、非一様フィールドおよび固定値境界条件を初期化するためのfield functionsおよびfunctionalFixedV…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

OpenFOAM 14 リリース

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

バージョン14には、次のような機能が含まれています。setFieldsのような前処理ユーティリティを使用せずに、非一様フィールドおよび固定値境界条件を初期化するためのfield functionsおよびfunctionalFixedValue境界条件、入力パラメータの標準機能としての単位系(新しいfoamUnitsユーティリティおよび名前付き次元(named dimensions)によってサポート)、coded file input(dynamic code)フレームワークの全面的な改良と複数の新しいディレクティブ(#codeDict、#stream、#printなど)の追加、既存コードをより柔軟で拡張性が高く効率的なものへ置き換えるmodular Lagrangianのさらなる開発、MULESを用いた多相流アプローチによるXiFluid燃焼ソルバーの新しい全面的な書き換えなど、多数の機能が含まれています。

CFD Directでは、OpenFOAM v14のトレーニングも提供されています。

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

モジュラーソルバー: isothermalFilmおよびisothermalFluidソルバーを改良。

多相流: multiphaseEulerソルバーにおける壁面沸騰および凝縮を改良。

輸送/熱物性: 液体、混合物、液膜、相の取り扱いを改良。

燃焼: XiFluidをMULESを用いた二相流ソルバーとして全面的に書き換え。

Modular Lagrangian: 80%まで完成した、柔軟で拡張性が高く効率的な代替機能。

メッシュ: メッシュ生成、ゾーン、NCC、メッシュ移動、surfaceに関する改良および機能追加。

Function Object: 渦の可視化およびflux計算を改良し、sectional forceを追加。

フィールド/境界初期化: 新しいfield functionsおよびfunctionalFixedValue境界条件

境界条件: 熱境界条件を改良し、field functionsを使用して条件を簡略化。

Coded Case Configuration: coded file input用ディレクティブを改良および追加。

単位と次元: 単位を標準機能とし、新しいfoamUnitsユーティリティを追加。

その他のケース設定: 表面波の初期化などを簡略化。

可視化: 不正な入力ファイルを読み込んだ際にParaViewがクラッシュしにくいよう改良。

ケース: 熱放射、Joule heatingを伴う熱伝導などの新しい例題を追加。

その他: coded file inputを記述しやすくするため、プログラミング関連の機能を多数強化。

約938件のコードcommit、約130件のissueを解決。

ISO/IEC 14882:2014(C++14): GCC v5.5以降、Clang v14以降でテスト済み。

OpenFOAM 14は、x86 64bit(IntelおよびAMD CPUなど)およびARM 64bitハードウェアアーキテクチャ向けに、以下のプラットフォーム用パッケージとして提供されています。

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

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

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

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

モジュラーソルバー

一般: モジュラーソルバーを誤って選択した場合のエラーメッセージを改善しました [ commit b2a4dbe5 ]。

液膜: isothermalFilmソルバーについて、固定速度境界条件において体積fluxを拘束するよう修正しました [ commit 521783a6 ]。また、体積fluxが速度と整合し、fixed-flux条件において液膜体積が保存されるよう修正しました [ commit aa7d0397 ]。

: isothermalFluidおよびその派生ソルバーについて、入口における超音速流れの取り扱いを改善しました [ commit 34ce8aaf ]。

CFD DirectのProgramming CFDコースではモジュラーソルバーの作成方法を扱っており、すべてのコースでモジュラーソルバーを使用しています。

多相流

ソルバー: multiphaseEulerソルバーにおけるPopulation Balanceについて、コード構造および入力ファイルの構文を簡略化しました [ commit fcf0025e ]。multiphaseEulerソルバーでは、surfaceScalarFieldにzeroFixedValue境界条件を使用できるようになりました。これにより、壁面で相fluxフィールドをゼロに保ち、適切なflux balanceを維持する際にも変更されないようにできます [ commit 1526d1b7 ]。

物質移動(VTT Finlandからの貢献を含む): multiphaseEulerソルバーにwallCondensationおよびphaseSurfaceCondensationモデルを追加しました [ commit 7be080d2 ]。新しいalphatPhaseChangeWallFunction境界条件を使用することで、単一のpatch上で壁面沸騰と凝縮を同時に扱えるようになりました [ commit bc4d03d4 ]。wallCondensationのチュートリアル例 [ commit 08770d7e ] およびcondenserのチュートリアルケース [ commit eadb0749 ] を追加しました。

粒子相: 多相流におけるhomogeneous nucleationモデルをリファクタリングおよび改良し、CFDアルゴリズム上で最適なタイミングに更新計算を行うようにしました [ commit 3f45a68f ]。

Population Balance: Population Balanceモデルにおける合体(coalescence)および分裂(breakup)の設定ファイル制御を簡略化しました [ commit 87f81af6 ]。

輸送/熱力学

物質移動: 新しいfunction1Pressure飽和モデルでは、温度の関数として飽和圧力曲線を指定できます [ commit cb25fc14 ]。

物質輸送: 気体の二成分拡散係数についてFuller(Fuller-Schettler-Giddings)モデルを追加しました [ commit 50c59837 ]。流体のthermophysical transportに、サブモデルで使用する層流拡散関数Dを追加しました [ commit 9d586d54 ]。

運動量輸送: 粘弾性モデルで複数の緩和時間と、それぞれに対応する粘度を指定できるようになりました [ commit a4a5df3d ]。新しいsimplifiedViscousStressモデルは、膨張項が理論的にゼロとなる非圧縮性流体向けに、応力モデルを簡略化したものです [ commit 9ed5c044 ]。液膜解析では、複雑な表面上での解析を安定化するため、StokesおよびlambdaThixotropic momentumTransportモデルの簡略版を追加しました [ commit 74e89223 ]。

スカラー輸送: scalarTransport、phaseScalarTransportおよびage Function Objectにおいて、schemesFieldとは独立した設定として、オプションのsolverField設定を追加しました [ commit 304397e1 ]。

熱物性輸送: thermophysical transportにおける相の取り扱いコードを簡略化しました [ commit 035d535f ]。

熱力学: 新しいzonalMixture熱物性混合モデルでは、cell zoneごとに異なる物性を設定できます [ commit 76e7a20c ]。

電気: 新しいsolidElectricalConduction fvModelは、固体領域内の電気伝導を計算し、それに対応するJoule heatingソースをエネルギー方程式に適用します [ commit dca4e255 ]。

インターフェース: methanolの表面張力物性値を修正しました [ commit e781d7f8 ]。

CFD DirectのApplied CFDおよびProductive CFD part 2コースでは、輸送モデル、熱力学およびスカラー輸送を扱っています。

燃焼

ソルバー: エンジン燃焼などに使用されるXiFluidソルバーを、多相流アプローチを使用して全面的に書き換えました。未燃ガスと既燃ガスを2つの相として扱い、それぞれのエンタルピー方程式を保存形式で解き、平均物性を2相の物性の平均から計算します [ commit 77b2ca3e ]。さらにmulticomponent thermodynamicsおよび既燃ガス中の反応を含むようになり、過濃燃焼における既燃ガス反応や汚染物質の予測に対応します [ commit 5403c053 ]。火炎法線を計算する際に|grad(b)|へ適用される安定化によって火炎後方でbが厳密に0へ近づかない問題を補償するため、flame burnout stabilization項を追加しました [ commit cb85e247 ]。未燃ガス中の化学反応を含むuMulticomponentMixtureモデル [ commit bf5899d9 ] および未燃ガスの汚染物質における化学反応を含むbMulticomponentMixtureモデル [ commit 3bfa591a ] を追加しました。未燃ガスおよび既燃ガスのエネルギー方程式に浮力を追加しました [ commit a880bdb5 ]。

点火: GaussianbXiIgnition fvModelは、Weller b-Xi燃焼モデル向けの新しい点火速度モデルで、火炎核にわたって時間依存のGaussian profileを使用します [ commit 8089dcd1 ]。bXiKernelCorr fvModelは、点火後の火炎核成長の解析を改善します [ commit cc8faa2f ]。

火炎速度: 新しいサンプルケースでは、laminar momentum transportモデルを選択しXiを1に設定することで、XiFluidによる層流火炎伝播を解析できることを示しています [ commit bad48e27 ]。

火炎しわ: XiFluidソルバーでは、wrinkling differential propagationがオプションとなり、デフォルトではoffになりました [ commit 5d3c782b ]。

エンジン解析: エンジン内のメッシュ移動向けに、専用のmultiValveEngineValveMotionおよびmultiValveEnginePistonMotion motion functionを追加しました [ commit 9369197c ]。

その他: XiFluidの未燃ガス方程式にslip velocity項を追加しました [ commit a34f44c5 ]。XiFluidを用いた燃焼と共役熱伝達について、未燃ガスおよび既燃ガス用のubCoupledTemperature境界条件を追加しました [ commit 5f503182 ]。XiFluidでは、未燃ガスおよび既燃ガスの熱輸送と化学種輸送をmultiphaseEulerソルバーで使用されるphase systemで処理するようになり、幅広い輸送モデルを選択できるようになりました [ commit 836d1680 ]。

化学反応: chemistryModelはchemistryProperties内のtypeキーワードによって選択するようになり、デフォルトはstandardです [ commit 46dcfdbb ]。化学反応をcellZone内に限定できるようになり、化学反応が小さな領域でのみ発生するケースを高速化できます [ commit d5522d02 ]。

反応: fluxLimitedLangmuirHinshelwoodReactionRateモデルを安定化し、モデルのメッシュ依存性を解消しました [ commit efcabe91 ]。新しいbXiQdot Function Objectは、Weller b-Xi燃焼モデルの発熱速度を計算してキャッシュします [ commit d8e537e9 ]。b-Xi燃焼モデルでは、cacheTemporaryObjects(bSource);および#includeFunc writeObjects(bSource)を使用してbSourceフィールドを書き出すことで反応速度を出力できるようになりました [ commit d06ebeb8 ]。

後処理: 新しいubAverageおよびubDWEA Function Objectは、XiFluidソルバーの未燃ガスと既燃ガスについて、それぞれ平均値および密度加重アンサンブル平均値を出力します [ commit ef0a85a3 ]。

Modular Lagrangian(粒子)

Cloud: 新しいModular Lagrangian機能向けに提供されるCloud fvModels(parcelCloud、kinematicParcelCloudなど)を使用して、ユーザーが解析へparticle/parcelを追加できるようになりました [ commit e2652c4c ]。Modular Lagrangianに、粒子が単純にcarrier flowに追従する新しいtracer cloudタイプを追加しました [ commit 54595e69 ]。

境界条件: Modular Lagrangianでは、注入粒子向けの新しい速度条件としてfanVelocity、flowRateConeDiskVelocity、totalPressureConeVelocityを追加しました [ commit f3c3b3ea ]。

モデリング: Modular Lagrangianにおける乱流分散計算の効率を改善しました [ commit 546cb75d ]。

多相流: Modular Lagrangianモデルに、物質移動および多相流との連成機能を追加しました [ commit fb321367 ]。

熱力学: Modular Lagrangianに熱力学モデルを追加しました [ commit 379aabc6 ]。膨張または収縮する粒子について、エネルギー方程式の収束を大幅に高速化しました [ commit d0253494 ]。

組成変化: particle cloudにmulticomponent thermodynamic modelを指定できるようになり、その機能と構文はEulerian multicomponent thermodynamic modelと同一です [ commit 7d3cf9e3 ]。組成が変化する粒子向けに、multicomponentParticleおよびmulticomponentParcel cloudをModular Lagrangian(別名field Lagrangian)へ追加しました [ commit 7256fd3b ]。

CFD DirectのApplied CFDおよびProductive CFD part 2コースには、Modular Lagrangianに関するトレーニングが含まれています。

メッシュ

NCCインターフェース: 一部の静的インターフェースを持つNCCについて、不要なstitchingおよびun-stitching処理を削減しました [ commit 9d6af06a ]。NCCインターフェース設定用のcreateNonConformalCouplesDictサンプルファイルを更新し、owner-neighbour順序、moveUpdate、patchFields指定などの新機能を含めました [ commit fe3d7775 ]。

snappyHexMesh: snappyHexMeshのsearchableSurfacesに、単位またはscale factorを指定できるようになりました [ commit 715f7742 ]。insideおよびoutside region refinementのrefinement levelは、単一の値を取るlevelキーワードのみで指定するようになりました [ commit 3284e4e3 ]。

blockMesh: blockMeshに追加のunits制御を導入し、scale 0.001;の代わりにunits [mm];と記述できるようになりました [ commit 854f0834 ]。新しいsweepFaceオプションは、曲面形状へより適合する曲面block faceを記述します [ commit b5a563dd ]。

extrudeMesh: nLayersおよびexpansionRatioパラメータにデフォルト値がなくなったため、入力構文が若干変更されました。これらを使用するextrusion modelでは明示的に指定する必要があり、使用しないモデルでは読み込まれません [ commit 2d57284b ]。extrudeMeshは、現在のケースのtime directory、または別ケースからextrusionを構築した場合にはsource caseのtime directoryへメッシュを書き出せるようになりました [ commit 0779f2a7 ]。

操作: splitMeshRegionsを、合理的で相互運用可能なオプション群を持つよう全面的に書き換えました [ commit cc289fad ]。

メッシュ移動: multiSolidBody motion solverがtopology changeに対応しました [ commit 4d341c1e ]。単一および複数剛体のrigid body motionを、1つのfunctionalRigidBodyMeshMotionシステムへ統合しました [ commit 798bf361 ]。multi-body rigid body motion(multiRigidBodyMotion)はmesh-to-mesh mappingを含めることができます [ commit 06734734 ]。Rigid body motionにpointMasses bodyオプションを追加しました [ commit d891aad3 ]。rigidBodyDynamicsのbodyにsectional moment評価を追加しました [ commit 6973618e ]。

その他: blockMesh設定時にはparaFoam -blockを使用してblockを可視化できます。この機能は設定エラーに対してより堅牢になりました [ commit 587f1d17 ]。bounded sphere機能の品質および性能を改善しました [ commit df030f00 ]。

メッシュゾーン: 新しいpatchCells zoneGeneratorは、patchに隣接するセルのzoneを生成します [ commit 647e20be ]。新しいnearPatchCells zoneGeneratorは、指定したpatchまたはpatch集合から一定距離内にあるセルのcellZoneを生成します [ commit acc41ce6 ]。print zoneGeneratorは、生成されたzoneについてログ情報を出力し、入力ファイルでzoneが正しく設定されているかを確認できるようにします [ commit f671ec4b ]。cell zoneGeneratorはface zoneまたはpoint zoneからcell zoneを生成します [ commit a481c2b6 ]。新しいcoded zoneGeneratorを追加しました [ commit adb69842 ]。MRFZonesは、refinementなどのtopology change後にも正しく更新されるようになりました [ commit aeae3893 ]。

Surface: searchable planeは閉曲面として扱われるようになりました。これは無限大の球の平坦な一部分のように扱われ、そのinsideはsurface normalと反対側になります。このため、例えばcell zoneを定義するためのinside/outside判定に使用できます [ commit 23af80e3 ]。平面surfaceのplaneTypeは、指定したplaneパラメータから自動的に推定されます。例えばpointおよびnormalパラメータの場合はpointAndNormalとなります [ commit afae4d85 ]。新しいsurfaceRenamePatchユーティリティは、surface geometryファイルのpatch(region)の名前を変更します [ commit c4367fbe ]。

プログラミング: mesh.db()は、メッシュデータが登録されているobjectRegistryを返すようになり、そのobjectRegistryの親にはparent()関数でアクセスします [ commit 6a71c69e ]。新しいpoly()関数は、fvMeshなどの上位メッシュ概念に関連するpolygonal/polyhedral dataを返します。特にfvPatchにおけるpatch()を置き換えます [ commit 5504695c ]。polyBoundaryMesh()もpoly().boundary()に置き換えられました。これはfvMeshとpolyMeshのtopologyが異なるNCCコードで特に重要です [ commit bc568d14 ]。mesh()関数によりpatchからmeshへ直接アクセスできるようになりました [ commit a8826e62 ]。

OpenFOAMのmesh zoneに関する最新情報については、「User Guide 5.6: Mesh Zones」および「Dynamic Zones in OpenFOAM」を参照してください。blockMeshおよびsnappyHexMeshによるメッシュ生成はCFD DirectのEssential CFDコースで導入され、Applied CFDコースではNCC、mesh zoneなどを含め、さらに詳しく扱われています。

Function Objects

一般: packaged Function ObjectのcellSumは、フィールドの全セル値の合計を出力します [ commit 224bebc7 ]。

フィールド: フィールドデータのhistogramを処理するhistogram Function Objectは、cell zoneのみに限定して処理できるようになりました [ commit bf016ed3 ]。渦を効果的に可視化するため、flowType Function Objectを全面的に書き換えました [ commit 28133f2f ]。surfaceFieldValue Function Objectについて、並列ケースでのフィールド書き出しを修正しました [ commit bd09281b ]。Peclet数Function Object(PecletNo)が圧縮性ソルバーでも動作するようになりました [ commit b80cc10b ]。Mach数Function Objectが多相流でも動作するようになりました [ commit a619a076 ]。

Flux計算: 新しいpackaged Function ObjectであるpatchFluxおよびfaceZoneFluxは、速度だけでなく任意の物理量のfluxを計算できます [ commit 5fecf83b ]。specieFlux Function Objectはextensive quantityとなり、単位面積当たりの値ではなくface areaを含む値となりました [ commit 7642c735 ]。新しいenergy flux Function Object群として、移流エネルギー用energyAdvectiveFlux、拡散(熱伝導)エネルギー用heatFlux、および両者を合わせたenergyFluxを追加しました [ commit eadb0749 ]。

メッシュ: 新しいwriteMesh Function Objectは、controlDictで指定された通常のwrite time以外の時刻にもメッシュデータを書き出せます [ commit 40db239c ]。generateZone Function Objectは、zoneの生成、登録、および/または書き出しを行えます [ commit 0a05b742 ]。

グラフ: 新しいsectionalForceProbesおよびsectionalForceGraph Function Objectは、指定したpatchを横切るsection-plane上の流体力およびモーメントを計算します。sectionalForceGraphのデータは、せん断力図および曲げモーメント図に使用できます [ commit ebce0762 ]。これらに対応する剛体用のrigidBodySectionalForceProbesおよびrigidBodySectionalForceGraphでは、出力にbodyの加速度も含まれます [ commit fa26917e ]。

Coded: cellZoneを生成するcoded Function Objectのサンプルを追加しました [ commit dbd1ee59 ]。

データ出力: 一連のFunction Objectを含むファイルに対してfoamPostProcessを実行する場合、writeControl none;を指定することで中間フィールドの出力を無効化できます [ commit 91df954f ]。新しいindentOrNl tokenを使用すると、テキスト出力を整然とフォーマットできます [ commit 46a32a7d ]。

Function ObjectはCFD DirectのEssential CFDコースで一般的に扱われています。coded Function ObjectはProductive CFDコースで広く使用され、Programming CFDにはFunction Objectをプログラミングする例が含まれています。

フィールド/境界初期化

Field functions: internalFieldをzonal、distanceFunction(元のfunction1から変更 [ commit 59226ec4 ])、surfaces、coded、fieldFunctionとして設定することで、フィールドを非一様な値で初期化できるようになりました。これらは、zone、事前設定された関数、またはcoded functionによって値を設定する新しいオプションです [ commit 136a112c ]。surfacesでは、surfaceと交差するセルにfractional valueを設定することもできます [ commit 310d6dbf ]。fieldFunctionは別のフィールドに対するfunction1を評価し、例えば温度の関数として物性値を設定できます [ commit df4681fb ]。

functionalFixedValue境界条件: 非一様および/または時間変化する入口フィールドを指定するための柔軟かつ効率的な方法で、初期実装ではzonal、distanceFunction、coded functionをサポートします [ commit d8393191 ]。valueエントリを使用して、非一様フィールド用のfield functionを指定します [ commit 0415ffee ]。新しいtimeFunction field functionは、時間のみで変化する条件を指定します [ commit f3a203db ]。

内部フィールドと境界フィールドの統合: functionalGeometricFieldでは、例えば非一様拡散係数フィールドのように、fieldとboundary valueの両方を1つのfunctionでまとめて指定できます [ commit 24f4002b ]。

フィールドおよび境界の初期化についての詳細は、「User Guide 6: Field and Boundary Initialisation」および「Field Functions in OpenFOAM」を参照してください。フィールド初期化の例はApplied CFDおよびProductive CFDコースに含まれ、Programming CFDではカスタマイズしたコードによる例が扱われています。

一般境界条件

速度: atmosphericBoundaryLayer境界条件を改善しました [ commit e44ff458 ]。freestreamVelocity境界条件では、例えばatmosphericBoundaryLayer field functionのように、freestream velocityの値をfunctionとして指定できるようになりました [ commit b8cd42ce ]。pressureInletOutletVelocity境界条件では、tangentialVelocityパラメータをfield functionによって指定できるようになりました [ commit 68caaa1c ]。

温度: coupledTemperature境界条件に、熱放射に対する数値緩和オプションを追加しました [ commit 65e52cf3 ]。coupledTemperatureおよびexternalTemperature境界条件では、熱伝達係数を時間および空間的に変化させることができます。これにより、coupledTemperature境界条件を使用する領域間に、例えばair gapのような熱抵抗を設定できます [ commit 286aab18 ]。coupledTemperature境界条件は、2領域間に独自の熱伝導物性および熱源を持つlayer/gapを正しく含められるようになりました [ commit cf917412 ]。新しいdisplacementGapHeatTransferCoefficient field functionは、通常は熱変形などによる2領域間のsurface displacementによって形成されたgapについて、熱伝達係数を与えます [ commit a8dcaf5a ]。

乱流: 入口における乱流フィールドの境界条件をturbulentKineticEnergy、turbulentEpsilon、turbulentOmegaへ簡略化しました [ commit e1c2bff9 ]。

一般: 新しいprototype meanInletOutlet境界条件は、scalarのinletOutlet条件に相当し、流入時のinletValueをpatchに隣接するセル値の平均として計算します [ commit 5ea64ebb ]。

Programming CFDには境界条件をプログラミングする例が含まれています。

Coded Case Configuration

一般: coded file input用のdynamic codeシステムを全面的に改良しました [ commits ab3cece6 ]。coded file inputのコンパイルエラーについて、行番号の表示を改善しました [ commit b3ebfdee ]。foamFindツールに-codedオプションを追加し、指定ファイル内のcoded inputのcodeInclude、codeOptions、codeLibsブロックへエントリを挿入できるようになりました [ commit 1c1995fd ]。foamFindに-Cおよび-Hオプションを追加し、それぞれ.Cまたは.Hファイルのみを検索できるようになりました [ commit f89eedef ]。入力ファイル内のcoded entryが自動コンパイルされる際の行番号表示をさらに改善しました [ commit cf17a1eb ]。コンパイルエラーを調査する際には、wmake -pageを使用してログ出力をスクロールできます [ commit 31b85b01 ]。

#if ... #else ... #endif: より汎用的で柔軟になり、例えば#if (#calc "${Uinlet} < 10")のように丸括弧をdelimiterとして使用するようになりました [ commit 9febd4b3 ]。その他の全般的な改善も行われました [ commit 096c63e6 ]。

#codeBlock ... #endCodeBlock: 複数の#calcまたは#codeStreamエントリを含め、1つのライブラリへまとめて高速にコンパイルできます [ commit 20fa3471 ]。#codeBlock内にheader fileをincludeすることもできます [ commit 2f99144f ]。

#stream: #codeStreamの代替形式で、よりコンパクトな構文を使用します [ commit b478fe46 ]。

#codeDict: coded inputからdictionaryを生成します [ commit a2fdc21b ]。任意のファイルのkeyword entryを使用できます [ commit 073123ae ]。

#calc: #codeIncludeでincludeされたheader fileを使用できるようになりました [ commit 2a95eec2 ]。

#print: 入力ファイル内のdictionaryの内容を、デフォルト値を含めてdictionary末尾の#print文により出力できます [ commit 7f20b2f0 ]、[ commit 39d3ac1d ]、[ commit 945e9097 ]、[ commit 7527d5f1 ]、[ commit 316297a2 ]。これはwriteOptionalEntries Function Objectを置き換えるものです [ commit a21579d3 ]。fvModelsおよびfvConstraintsにも対応します [ commit 400f7ec9 ]。#includeFunc、#includeModel、#includeConstraintにprint引数を追加することで、デフォルト値を含む使用中の全パラメータを出力できます [ commit c951b1c3 ]。

#dump: マクロ展開後の入力ファイル内容をデバッグ用にterminalへ出力できるようになりました [ commit 7f20b2f0 ]。例えば#codeDictおよび#codeStreamで使用できます(以前は#printと呼ばれ、その後名称変更されました) [ commit 578f5b21 ]。

#exit: 解析を終了させます。テスト目的で有用です [ commit 1101ee51 ]。

#include / #includeIfPresent / #includeEtc: オプションとして引数を受け取り、includeされるファイルへ変数を渡せるようになりました [ commit 723a58bc ]、[ commit 03b4aac8 ]。

Coded Case Configurationについての詳細は、以下を参照してください。

「User Guide 4.2.10: Macro expansion」

「User Guide 4.2.15: Inline Calculations」

「User Guide 4.2.16: Multiple inline code entries with #codeBlock」

「User Guide 4.2.17: Inline code with #codeStream」

「User Guide 4.2.18: Inline code with #codeDict」

「User Guide 4.2.19: Conditionals」

「User Guide 4.2.20: Checking input parameters」

単位と次元

foamUnitsユーティリティ: foamUnitsスクリプトはアプリケーションへ置き換えられ、次元と単位の一覧表示に加えて単位変換を計算できるようになりました [ commit f451f2d1 ]。foamUnitsは指定したdimensionに対応するunitも出力できるようになりました [ commit 5792f61d ]。

configDictファイル: DimensionedConstantsなどのグローバル設定は、$FOAM_ETC内のグローバルconfigDictファイルに格納されるようになり、ケースごとのoverrideはsystem/configDictで指定します [ commit fb321367 ]。template configDictファイルには、頻繁に上書きされる設定およびswitchの例が含まれています [ commit 5facde0e ]。単位および単位変換をケースのconfigDictファイル内で定義できるようになり、基礎となる単位系から独立しているため、異なる単位系間でも容易に変換できます [ commit a990b37d ]。

次元: 物性値にdimensionを直接含めるのではなく、値とともにunitを指定し、その次元整合性をチェックする方法が標準となりました [ commit 6a35fbd5 ]。サンプルケースにおける数値によるdimension表記をnamed dimensionに置き換え、新しいnamed dimensionも複数追加しました [ commits 61d4199f ]。すべてのsolverおよびlibraryにおける全GeometricFieldのread constructionにdimension checkingを追加しました [ commit f7f22e73 ]。

マクロ展開: $<scalar>diameterのような型付きマクロ展開が単位を読み込めるようになりました。例えばdiameter 500 [mm];と指定できます [ commit d67b3529 ]。

単位と次元についての詳細は、以下を参照してください。

「User Guide 4.2.6: Dimensional units」

「User Guide 4.2.7: Units and unit conversion」

「User Guide 4.3: Global settings」

「User Guide 4.7.7: The foamUnits utility」

その他のケース設定

表面波: 表面波のフィールド初期化は、waveAlphaおよびwaveVelocity field functionを使用して設定するようになりました [ commit f1926f07 ]。

大気境界層: 大気境界層の速度および乱流フィールドをfield functionを使用して初期化できます [ commit 78952c7c ]。

一般設定: 新しい-createオプションにより、指定したファイルが存在しない場合にfoamDictionaryが新しいケースファイルを作成します [ commit 8801fa0d ]。

モデル: モデル係数を含むサブディクショナリ名からCoeffs接尾辞を削除しました。後方互換性は維持されています [ commits 686d966a ]。

ケース初期化: setFieldsに新しいextrapolatePatchesオプションを追加し、セル値をpatchへ外挿できるようになりました [ commit db4068e9 ]。フィールド値の単位変換にも対応しました [ commit a4b49c12 ]。

可視化

グラフ: 出力グラフなどのsampling処理を修正し、必要なときにのみ実行するようにしました。これによりsamplingを使用する解析の性能が大幅に向上しました [ commit 08066aab ]。

ParaView reader: field fileとmeshに不整合がある場合でもParaViewがクラッシュしなくなりました [ commit d40b7f65 ]。paraFoamに-allRegionsオプションを追加し、マルチリージョンケースの全regionを読み込んだ状態でParaViewを起動できるようになりました [ commit bd1de5cd ]。ParaViewがfield fileを読み込む際にvalue entryが存在しない場合でもfatal errorを発生させなくなりました [ commit ace12ca2 ]。ParaView v6.1向けにOpenFOAM reader moduleを更新しました [ commit 0430a68b ]。

ケース

fluid:

新しいconcentricCylindersサンプルは、熱放射のvalidationを提供します [ commit f96d9f16 ]。

incompressibleVoF:

新しいDTCHullPropサンプルケースは、船体の自航(self propulsion)を解析します [ commit 3076fc03 ]。

multiRegion/CHT:

新しいvacuumFurnaceサンプルは、熱放射および自然対流を伴う加熱・冷却を実演します [ commit 1003ab2c ]。

その他

fvModels: propellerDisk運動量ソースに、プロペラ推力を船体抵抗と一致させるためのオプションの自動調整機能を追加しました [ commit 533e780f ]。

その他の数値計算: cellPoint法で補間されたフィールドの勾配を計算するinterpolateGrad関数を追加しました [ commit 38e27c74 ]。cubic interpolation schemeを修正しました [ commit b062a016 ]。厳密な物理的上下限を持つscalar field向けにlimitedVanAlbadaおよびVanAlbada01 schemeを追加しました [ commit 772be381 ]。

ソルバー: GAMGのprocessor agglomerationを改善し、ネットワーク接続されたprocessor cluster上での並列計算を高速化できるようにしました [ commit f211bf49 ]。最も粗いlevelに単一セルしか存在しないケースでのGAMG solverを修正しました [ commit de71200f ]。

プログラミング: foamFindツールに-lnIncludeオプションを追加しました。指定したsource fileを含むlnIncludeディレクトリと、optionsファイルに含めるための対応する-I flagを出力します [ commit 7f4e3144 ]。MULESおよびvolPointInterpolation向けに、boundaryNeighbourField()のより効率的なバージョンとしてcoupledNeighbourField()関数を追加しました [ commit a375a4de ]。事前設定されたdimensionSetは、dimVelocityではなくvelocityのような単純な名前になり、例えばvelocity(1, 0, 0)のようにdimensioned valueを直接構築するために使用できます [ commit 42d70b02 ]。フィールドのdimensionを含むGeometricFieldのread constructorを追加しました [ commit f40bf0d0 ]。

フィールド: 新しいlinearSequenceおよびlinearSequence01関数は、指定した上下限間で線形に変化する値を持つscalarFieldを生成します。01 variantでは上下限が0と1です [ commit 6af508ba ]。

スターターコード: foamNewSolverは、新しいモジュラーソルバー向けのスターターコードを作成します [ commit 32a9d80a ]。

クレジット

OpenFOAM 14はCFD Directの以下のメンバーによって開発されました。

Henry Weller

Will Bainbridge

Chris Greenshields

Aidan Wimshurst

また、以下の方々から貢献がありました。

Timo Niemi

Clemens Gößnitzer

Stanislau Stasheuski

ライセンス

OpenFOAM 14は、OpenFOAM FoundationによってGeneral Public Licence v3(GPLv3)の下で配布されています。