OpenFOAM v2406 リリースノート
OpenCFDは、OpenFOAM® v2406の2024年6月リリースを発表します。 このリリースは、コードの多くの領域にわたってOpenFOAM-v2312の機能を拡張します。 この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。
OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。 様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージもあります。
- Ubuntu Linux: Ubuntu 24.04(LTS)、22.04(LTS)、20.04(LTS)、18.04(LTS)用パッケージインストール
- openSUSE Linux: Leap 15.6、15.5用パッケージインストール
- Redhat Linux の亜種: epel 9 用パッケージ・インストール; Fedora 40
- apptainer イメージ: dockerhub から openfoam-dev:2406-apptainer および openfoam-dev:apptainer として入手可能。
Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢がある(詳細):
- Linux用Windowsサブシステムの使用(Ubuntu、openSUSEなどベース)
- クロスコンパイルによるネイティブ実行可能ファイル
- ドッカーのインストール
OpenFOAMのapptainerサポートは、事前に組み立てられたイメージではなく、記述ファイルによって提供されます:
- 包装・容器を見る
Mac OSXユーザーには、ソースからコンパイルするか、コンパイル済みパッケージのDockerコンテナを使用するオプションがある(詳細はこちら)。
アップグレード
- ユーザー向けのヘルプは、ユーザー・アップグレード・ガイドに記載されています。
- 開発者向けのヘルプは、開発者向けアップグレードガイドに記載されています。
- 現在進行中のGPU開発をサポートするため、C++の最低規格が2024年にC++14からC++17に引き上げられる予定であることに注意。
前処理
新しいcreateViewFactorsアプリケーション
新しいcreateViewFactorsユーティリティは、viewFactor放射モデルのパッチ間のビュー因子を作成します。 これは、現在のviewFactorsGenユーティリティを置き換える可能性があります。 ユーザーは、対面アドレッシングの構築とビューファクターの計算方法の両方に使用するモデルを選択できます。 レイ世代:
- ボクセル:均一なボクセルに分割された空間
- ...近い将来、さらなる方法が発表されるだろう
ビューファクターの計算:
- viewFactorHottel: Hottelの交差弦メソッドに基づく2Dメソッド
- viewFactor2AI: double 面積積分
- viewFactor2LI: 二重線積分
すべての面に対してすべての面をテストする、つまりN^2アルゴリズム(viewFactorsGen)を使用する代わりに、ユーザーは面ごとにシードする光線の数を供給します。 これらは、半球全体で一様に発行されます。 したがって、結果は以前のユーティリティよりも近似的ですが、はるかに改善されたパフォーマンスでプロダクションケースに適用できるようになりました。
なお、これは現在ベータレベルであり、近い将来変更される可能性がある。
チュートリアル
- 未定
ソースコード
- $FOAM_UTILITIES/preProcessing/createViewFactors
Gitlab
- Merge request #692
renumberMeshの改良
renumberMeshユーティリティに新しいオプションと機能が追加されました。
- dry-runを-write-mapsオプションとともに使用すると、変更を加えずにリナンバリングの前後を視覚化できる(VTKファイルが作成される)。
- フィールドに影響を与えずにメッシュの番号だけを変更するには、-no-fieldsオプションを使用します。 これは、入力フィールドが一様で、-overwriteオプションが指定されている場合に便利で、はるかに高速です。
新しい-renumber-methodオプションと-renumber-coeffsオプションは、別のファイルを編集することなくrenumberMeshを使用できるようにした。
- renumberMesh -renumber-method CuthillMcKee
- renumberMesh -renumber-method RCM (すなわち、逆キューシルマッキー)
- renumberMesh -renumber-method random
- renumberMesh -renumber-method none (非常に特殊なケースだ!)
係数を必要とするメソッドでは、-renumber-coeffsオプションで指定できる。 逆Cuthill-McKeeを指定する4つの異なる方法を示します:
- renumberMesh -renumber-method RCM
- renumberMesh -renumber-method CuthillMcKee -renumber-coeffs 'reverse true;'
- `renumberMesh -renumber-coeffs 'method CuthillMcKee; reverse true;'
- `renumberMesh -renumber-coeffs 'method RCM;'
これらの例からわかるように、-renumber-coeffsはOpenFOAM辞書の内容に対応し、比較的複雑な内容を許容します:
renumberMesh \
renumber-method spring \
renumber-coeffs 'maxCo 0.1; maxIter 1000; freezeFraction 0.99;'
リナンバリングメソッドに加えて、renumberMeshはリナンバリングの前に適用される-decomposeメソッドをサポートするようになった。 これは並列リナンバリングの代わりとして使用でき、ワークフローを簡素化します。
チュートリアル
- $FOAM_TUTORIALS/mesh/parallel/cavity
ソースコード
- $FOAM_UTILITIES/mesh/manipulation/renumberMesh
snappyHexMeshの改良
snappyHexMeshはシリアルとパラレルの両モードで実行したときに同一のメッシュを生成することを目指しています。 このリリースでは2つの同期に対応しました:
- 2:1より遅い精製を使用する場合、すなわちnCellsBetweenLevels > 1
- すべての点が境界上にあるセルを検出する場合。 これらの点はプロセッサの境界上にある場合は異なる扱いを受けた。
チュートリアル
- N/A
ソースコード
- $FOAM_SRC/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C
- $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementProblemCells.C
Gitlab
- Commit #690d02f9
- Commit #e1d45ec2
surfaceInertiaユーティリティの改良
surfaceInertiaユーティリティが平均面積法線に関する情報を出力するようになり、プリ・ポスト処理中のさまざまな方向関連のジオメトリやメッシュ操作に役立つようになりました:
- cをlinearDirectionと組み合わせることで、より優れた押し出し結果を得ることができます。
- 変換の向き、ブロックメッシュ、結果の投影、...
ソースコード
- $FOAM_UTILITIES/surface/surfaceInertia
新しいオーバーラップゾーン
点、面、セルのオーバーラップゾーンをサポートするユーティリティが増えました。 以前のリリースでは、これはdecomposeParと特定のソルバーでのみサポートされていました。
- redistributePar : フルサポート
- subsetMesh : フルサポート
- polyTopoChange : メッシュ要素を単一のゾーンではなく、複数のゾーンに追加/修正するルーチンを拡張。
- polyMesh : エレメントがあるゾーンをチェックするための追加質問ルーチン
これは、任意のソースを使用してtopoSet内部で直接ゾーンを構築するための既存のサポートに追加される:
name c0;
type cellZoneSet;
action new;
source boxToCell;
box (0.04 0 0)(0.06 100 100);
これはメッシュの矩形部分から直接セルゾーンc0を生成する。
ソースコード
- $FOAM_SRC/meshTools/topoSet/topoSets/topoSet.C
チュートリアル
- $FOAM_TUTORIALS/mesh/parallel/filter
Gitlab
- Merge request #670
topoSet : 幾何学的選択のオプション変換
topoSet のジオメトリック選択ソースが、選択が適用される前のセル、面中心、点の位置のオプション変換をサポートするようになりました。 変換は solidBodyMotionFunctions の形式をとります。
name c0;
type cellSet;
action new;
source boxToCell;
box (0.04 0 0)(0.06 100 100);
solidBodyMotionFunction rotatingMotion;
rotatingMotionCoeffs
{
// coefficients
}
これは、<constant>/fvOptionsなどで、移動するソースをシミュレートするのに便利です:
selectionMode geometric;
selection
{
cyl1
{
action use;
source cylinder;
point1 (0.05 0.03 -1); // beg point on cylinder axis
point2 (0.05 0.03 1); // end point on cylinder axis
radius 0.003;
solidBodyMotionFunction oscillatingLinearMotion;
oscillatingLinearMotionCoeffs
{
// coefficients
amplitude (0 0.02 0);
omega 0.7; // rad/s
}
}
}
ソースコード
- $FOAM_SRC/meshTools/topoSet/topoSets/topoSet.C
チュートリアル
- $FOAM_TUTORIALS/basic/scalarTransportFoam/moving_source
Gitlab
- Merge request #668
- Merge request #693
トランスフォームの改善
transformPointsとsurfaceTransformPointsユーティリティは、メッシュ(またはサーフェス)ポイントの変換に使用されます。 新しいオプション-cylToCartは、円筒形メッシュ生成を補助するために、円筒形からデカルトへの変換を適用します。 下の例は、新しいチュートリアル$FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBladeからのもので、左の画像は、円柱座標で構成されたコンポーネントを示し、右の画像は、デカルト座標に変換した後の断面です。
チュートリアル
- $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade
ソースコード
- $FOAM_UTILITIES/mesh/manipulation/transformPoints
Gitlab
- Merge request #688
帰属
- 変換コードを提供してくれたHåkan Nilssonに感謝する。
数値
圧縮性ケースに対する改良型MRF
エネルギー方程式は、ムービングメッシュ計算を行う際に採用される寄与と同様に、MRFが行った仕事の影響を含むようになった。 この追加項は次のような形になります:
if (MRF.active())
{
EEqn += fvc::div(MRF.phi(), p);
}
この変更には、<case>/fvSchemesファイルに追加のエントリーが必要です。
div(phiMRF,p) Gauss limitedLinear 1;
その効果は、コンプレッサーのケースにおける以下の総温度予測で見ることができる。左の画像は以前の挙動(v2312以前)と新しい挙動(右)を示している。
チュートリアル
- $FOAM_TUTORIALS/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSchemes
ソースコード
- $FOAM_SOLVERS/compressible/rhoPimpleFoam/EEqn.H
Gitlab
- Merge request #689
有限面積の改善
OpenFOAM-v2406では、将来的に複数の有限領域領域をサポートするための重要な第一歩が踏み出されました。 残念ながら、これらの変更は、有限領域を使用するワークフローに若干の調整を必要とする(他のワークフローは影響を受けない)。 OpenCFDではワークフローを中断させないように最善を尽くしていますが、やむを得ない場合もあります。
有限面積ケースのセットアップのアップグレードを支援するために、bin/foamUpgradeFiniteAreaスクリプトが用意されています:
Usage: foamUpgradeFiniteArea [OPTION]
options:
-case=DIR Specify starting directory, default is cwd
-dry-run | -n Test without performing actions
-verbose | -v Additional verbosity
-link-back Link back from new finite-area/ to old locations
-no-mesh Do not move system/faMeshDefinition
-git Use 'git mv' when making changes
-help Print help and exit
Relocate finite-area files to new sub-directory locations
幸いなことに、これは思ったより複雑なことではなく、有限領域のサブディレクトリが追加されただけである。
old location | new location |
---|---|
0/{areafield} | 0/finite-area/{areafield} |
constant/faMesh/ | constant/finite-area/faMesh/ |
system/faMeshDefinition | system/finite-area/faMeshDefinition |
system/faSchemes | system/finite-area/faSchemes |
system/faSolution | system/finite-area/faSolution |
コード開発者にとっても、大きな変化はない。 エリア・フィールドが正しい位置に登録されていることが重要なだけだ:
// Good, uses area mesh thisDb()
areaScalarField h
(
IOobject
(
"h",
runTime.timeName(),
aMesh.thisDb(),
// ^-- works with v2312, v2406, ...
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
aMesh
);
例によって、より詳しい情報はユーザーアップグレードガイドと開発者アップグレードガイドにあります。
チュートリアル
- $FOAM_TUTORIALS/compressible/acousticFoam/obliqueAirJet/main
- $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder
- $FOAM_TUTORIALS/finiteArea/sphereSurfactantFoam/sphereTransport
- $FOAM_TUTORIALS/finiteArea/surfactantFoam/planeTransport
- $FOAM_TUTORIALS/heatTransfer/buoyantPimpleFoam/hotRoomWithThermalShell
- $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/sensitivityMaps/motorBike
- $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/contactAngleCavity
- $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/contaminatedDroplet2D
- $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/filmPanel0
- $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/inclinedPlaneFilm
- $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/sloshing2D
- $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/system/finite-area/faSchemes
- $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/drippingChair
- $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/pitzDailyWithSprinklers
- $FOAM_TUTORIALS/lagrangian/reactingParcelFoam/liquidFilmStepWithSprinklers
- $FOAM_TUTORIALS/lagrangian/reactingParcelFoam/splashPanelFilm
ソルバーと物理モデル
温度依存の放射特性
constantAbsorptionおよびconstantTransmissivity放射サブモデルが更新され、吸収率、放射率、透過率などの時間変化する特性がサポートされました。 チュートリアル
- TBA
ソースコード
- $FOAM_SRC/thermophysicalModels/radiation/submodels/wallAbsorptionEmissionModel/constantAbsorption
- $FOAM_SRC/thermophysicalModels/radiation/submodels/wallTransmissivityModel/constantTransmissivity
Gitlab
- Merge request #685
新しいFreezeParticlesクラウド機能オブジェクト
新しいFreezeParticlesクラウドファンクションオブジェクトは、パーティクルのアクティブフラグをfalseに設定し、物理モデルを進化させながら空間内でパーティクルをフリーズさせます。 使用例:
cloudFunctions
{
FreezeParticles
{
// Mandatory entries
type FreezeParticles;
}
}
チュートリアル
- $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/particleDrag/parcelInBox
ソースコード
- $FOAM_SRC/lagrangian/intermediate/submodels/CloudFunctionObjects/FreezeParticles
Gitlab
- Merge request #686
トミヤマ新バブル・ドラッグ・モデル
tomiyamaDragモデルがラグランジュ粒子追跡ライブラリに追加されました。 使用例:
subModels
{
particleForces
{
tomiyamaDrag
{
sigma 0.07;
contamination pure; // pure | slight | full
}
}
}
チュートリアル
- $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/particleDrag/parcelInBox
ソースコード
- $FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/ParticleForces/TomiyamaDrag
参考
- Tomiyama, A., Kataoka, I., Zun, I., Sakaguchi, T. (1998) Drag coefficients of single bubbles under normal and micro gravity conditions JSME International Journal, 41(2), 472-479.
Gitlab
- Merge request #686
icoReacting...Foamソルバーの改良
icoReactingMultiphaseInterFoamソルバーアプリケーションがインクリメンタルアップデートを受けました:
- 追加乱流モデルへのアクセス:realizableKE、kOmega、kOmegaSST
- <case>/fvSolution を使ってフローを凍結させることもできる。
PIMPLE
{
frozenFlow yes;
...
}
ソースコード
- $FOAM_SOLVERS/multiphase/icoReactingMultiphaseInterFoam
Gitlab
- Issue #3128
- Commit #bb483951
後処理
新しいviewFactorHeatFlux関数オブジェクト
viewFactorHeatFlux関数オブジェクトを使用すると、viewFactor放射モデルを使用した場合のパッチ間の熱交換を簡単に特定することができます。 使用例:
viewFactorHeatFlux1
{
// Mandatory entries (unmodifiable)
type viewFactorHeatFlux;
libs (utilityFunctionObjects);
// Optional entries (runtime modifiable)
qr qr;
}
チュートリアル
- NA
Source code
- $FOAM_SRC/functionObjects/utilities/viewFactorHeatFlux
新しいEnsightシングル・ファイル・フォーマットの読み込み
過渡的な結果を保存するために複数のファイルを使用する、より馴染み深いEnSightのケースに加えて、EnSightは、より効率的、あるいは単純により便利に使用できる可能性のある、単一のファイル形式での過渡的な結果の保存も可能です。 このリリースでは、このトランジェント・シングル・ファイル・フォーマットが、サポートされるサーフェス・フィールド・フォーマットとして、*MappedFile*関数やsurfaceNoiseユーティリティなどで使用できるようになった。
ソースコード
- $FOAM_SRC/fileFormats/ensight/file
- $FOAM_SRC/surfMesh/readers/ensight
Gitlab
- Merge request #682
新しいEnsightクラウド機能オブジェクト
ensightCloud関数オブジェクトは、ラグランジュデータをEnSight計測フォーマットで書き込みます。 並行して、すべてのデータがマスターから書き込まれます。 ensightCloud関数オブジェクトの設定パラメータと動作は、ストライドに基づく区画選択、フィールドフィルタリングなどをサポートするvtkCloud関数オブジェクトとほぼ同じです。
生成されたEnSightファイルには、メッシュのバウンディングボックスも含まれます。これは、視覚化のためのリファレンスとなります(ParaViewリーダーにも必要です)。
ソースコード
- $FOAM_SRC/functionObjects/lagrangian/ensightCloud
新しい多面体セル変換
cellDecomposer関数オブジェクトは、mapFieldsユーティリティと同様に、セルを「基本」形状に分解し、選択したフィールドをその上にマッピングします。 主な利点は、多面体形状を扱えないサードパーティ製ツールでOpenFOAMメッシュや結果をポスト処理する場合です。 2つの主要なコントロールがあります:
- 細胞の選択。 これはどのfvOptionとも同じコントロールを使う。例えばselectionMode allやselectionMode cellSetなど。
- decomposeTypeによる分解方法:
- faceCentre : 面の中心とセルの中心を使ってセルをテットに分解する。
- faceDiagonal : 面対角を使ってセルをテッツに分解。ラグランジュ粒子トラッキングの分解と似ていて、ヘックスが6*2のテッツになる。
- ピラミッド:面はそのままに、セルの中心を使って(多角形ベースの)ピラミッドを作る。
- faceDiagonalQuads : faceDiagonalに似ているが、面を[三角形のみ]ではなく、四角形と三角形に分割する。
- polyhedral : faceDiagonalQuadsのようなものだが、選択された集合内の非hex/prism/tetセルだけを分解する。 多面体メッシュを「単純」メッシュに変換するのに使用。
すべての多面体セルを非多面体セルだけを含むサブリージョンメッシュに変換する典型的な例:
functions
{
cellDecomposer
{
// Mandatory entries
type cellDecomposer;
fields (p U);
mapRegion simpleMesh;
// Execute when results are written
writeControl writeTime;
// Decompose type
decomposeType polyhedral;
// Which cells to convert
selectionMode all;
}
}
このメッシュと結果は、通常の-regionオプションを使って処理できる:
checkMesh -region simpleMesh
foamToEnsight -region simpleMesh
下の画像はシンプルな3セル厚のブロックメッシュで、コーナーセルの1つが2x2x2リファインメントを使って分割され、多面体セルが作成されている:
左:リファインメントを施した元のメッシュ、右:新しいファンクションオブジェクトを実行した後、残りのセルは六角形、四角錐、角柱、四面体になる。
ある幾何学的領域内のすべてのセルを四面体に変換する別の例:
functions
{
cellDecomposer
{
// Mandatory entries
type cellDecomposer;
fields (p U);
mapRegion tetMesh;
// Decompose type
decomposeType faceCentre;
// Which cells to convert
selectionMode geometric;
// Generate cellSet c0 using topoSet commands:
cellSet c0;
selection
{
a
{
action use;
source boxToCell;
box (1 1 1)(0 0 0);
}
b
{
action invert;
}
}
}
}
制限事項
- メッシュの移動とトポロジーの変更は現在サポートされていません。
- 微細化によってセルを分解すると、2つのセルの間に複数の面ができることがある:
- ヘクスは2つのエッジに分割される。エッジで接続されたセルはリファインされるからだ(このヘクスは多面体セルとなる)。
- 元の六角形のエッジは2つの隣接する四面体に分割されるが、今度はその間の四角形が2つの三角形に分割され、どちらも同じ2つのセルを共有する:
- と報告される。
Checking topology...
..
<<Found 2015 neighbouring cells with multiple inbetween faces.
Upper triangular ordering OK.
<<Writing 4034 unordered faces to set upperTriangularFace
- 複雑なセルを分割すると、幾何学的に無効なセルが簡単に生成される。
***High aspect ratio cells found, Max aspect ratio: 1.59875e+96, number of cells 99
<<Writing 99 cells with high aspect ratio to set highAspectRatioCells
Minimum face area = 1.34886e-06. Maximum face area = 1.00344. Face area magnitudes OK.
***Zero or negative cell volume detected. Minimum negative volume: -3.55077e-07, Number of negative volume cells: 99
<<Writing 99 zero volume cells to set zeroVolumeCells
Mesh non-orthogonality Max: 158.664 average: 21.4979
ソースコード
- $FOAM_SRC/src/functionObjects/field/cellDecomposer/cellDecomposer.H
チュートリアル
- $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk
パラレル
GAMG : プロセッサ・アグロメレーションを修正する
ローカル・アグロメレーションに加えて、GAMGソルバーは、プロセッサー・アグロメレーションを使用してプロセッサー間で行列を結合することもサポートしている。 これは、以下の理由により、コア数が多い場合に特に効果的であることが示されている:
- コアの数を減らすことは、最も粗いレベルで作用する。
- スムージングやプリコンディショニングなど、すべての操作の暗黙性を高める。
以前のリリース(v2312)では、あらゆる種類の結合境界条件を含めることができるようにメカニズムが書き換えられました。 しかし、これは既存の、プロセッサ境界のみの、プロセッサのアグロメレーションを壊しました。 これは今回のリリースで修正されました。
ソースコード
- $FOAM_SRC/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverAgglomerateMatrix.C
チュートリアル
- $FOAM_TUTORIALS/basic/laplacianFoam/implicitAMI-nonblocking
Gitlab
- Merge request #645
- Issue #3172
cyclicAMI : 大きなコア数の線形ソルバーにおけるcyclicAMIの修正
マージリクエスト#641で導入された、終了したMPIリクエストへの参照を保持するオーバーラップ通信が修正されました。 これはコア数が大きく、インターコネクトが高速で、パイプライン化された線形ソルバーで発生する可能性があります。 ソースコード
- $FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C
- $FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C
- $FOAM_SRC/meshTools/AMIInterpolation/GAMG/interfaceFields/cyclicAMIGAMGInterfaceField/cyclicAMIGAMGInterfaceField.C
- $FOAM_SRC/meshTools/AMIInterpolation/GAMG/interfaceFields/cyclicACMIGAMGInterfaceField/cyclicACMIGAMGInterfaceField.C
Gitlab
- Merge request #641
ユーザビリティ
新しいルックアップ機能1
lookup' 関数1
データベース(通常はメッシュ)からUniformDimensionedFieldを検索できる新しいルックアップ関数1が導入されました。 これは、境界条件やシミュレーション設定などの計算値に適用することができます。 次の例は、rotatingMotionモデルで計算された回転速度を使用する方法を示しています:
solidBodyMotionFunction rotatingMotion;
rotatingMotionCoeffs
{
origin (0.005 0.005 0.005);
axis (0 0 1);
omega lookup;
// Name of UniformDimensionedField to look up
name myRotationalVelocity;
}
または拡張構文、例えばすでに名前エントリーが存在する場合:
omega lookup
lookupCoeffs
{
name myRotationalVelocity;
}
変数の中には、UniformDimensionedFieldとしてすでに利用可能なものもある。 その他の変数は、例えばコード化された関数オブジェクトの中など、ユーザーコーディングによって追加することができます:
libs (utilityFunctionObjects);
type coded;
name register_myVar;
codeRead
#{
const IOobject io
(
"myVar",
mesh().time().constant(),
mesh()
);
auto* ptr =
const_cast<objectRegistry&>
(
io.db().findObject<uniformDimensionedScalarField>(io.name())
);
if (!ptr)
{
ptr = new uniformDimensionedScalarField
(
io,
dimless,
0.80
);
ptr->store();
}
#};
'lookup' PatchFunction1
このバリアントはパッチ上で動作し、与えられた名前のボリューム、サーフェス、またはポイントフィールドを検索し、パッチ上の値を抽出する。
movingWall
{
type uniformFixedValue;
uniformValue lookup;
name U.water; // use patch value of field U.water
value $internalField;
}
チュートリアル
- $FOAM_TUTORIALS/mesh/blockMesh/pipe
ソースコード
- $FOAM_SRC/finiteVolume/expressions/PatchFunction1
topoSetユーティリティの改善:セットまたはゾーンの選択
topoSet ソース・メソッドで set または sets というキーワードを期待するメソッドは、zone または zones というキーワードも受け付けるようになった。 これは、constant/polyMesh/sets ディレクトリからセットを読み込む代わりに、現在のメッシュゾーンから要素を選択します。 Gitlab
- Merge request #674
新しい周期的環状AMIチュートリアル
周期的に繰り返されるAMIの症例を組み立てるのは難しい。 OpenFOAMコミュニティのメンバーであるHakan Nilsson氏から提供された回転軸流タービンケースは、メッシュが円筒座標で構築され、後にOpenFOAM v2406の新しい変換オプションを使用してデカルト座標に変換されます。
チュートリアル
- $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade
Gitlab
- MR!648
Attribution
- ホーカン・ニルソンに感謝
コミュニティ
新しいサブモジュール: データ駆動モデリングSIGリポジトリ
OpenFOAMガバナンス内のData-Driven Modelling Special Interest Groupから、入れ子になったサブモジュールを含む新しいコミュニティ・サブモジュールが開始されました。 このサブモジュールは、公開されているData-Driven Modelling Special Interest Groupリポジトリでホストされています。 コミュニティ・サブモジュールは、CFDや機械学習モデルに関する学術的・産業的な貢献のホストとして機能し、知識交換の場を作り、コラボレーションを促進する。
BitbucketやGitHubのような、gitベースのソースコードリポジトリホスティングサービスにホストし、このサブモジュールを介してOpenFOAMソフトウェアにリンクすることができます。
今回のリリースでは、以下のサブモジュールを発表する:
- openfoam-smartsim : SmartRedisとSmartSimによるOpenFOAMと機械学習の結合。
- NN_Pred : CFDコードに機械学習モデルを導入するためのインターフェイスライブラリ。
ソースコード
- https://gitlab.com/openfoam/community/sig-data-modelling/data-community
Attribution
- OpenCFD would like to acknowledge and thank the data-driven modelling special interest group members; Weishuo Liu and their colleagues for their valuable contributions and assistance.
Turbulence TCリポジトリへの新しい投稿
乱流技術委員会リポジトリの傘下に、以下の6つのリポジトリを公開いたします:
- MachineLearningTurbulenceModels : 機械学習アプローチに基づくいくつかの乱流モデル。
- KOSSTPDA : プログレッシブデータ拡張k-ωSSTモデル.
- SpalartAllmarasRCsend : Spalart-Shur曲率補正を用いたSpalart-Allmaras乱流モデル.
- SST-CND : SST-CNDモデル。
- dynamicSmagorinsky : ダイナミックスマゴリンスキーモデル。
- EllipticBlending : k-epsilonラグ楕円ブレンディング乱流モデル.
ソースコード
- $WM_PROJECT_DIR/plugins/turbulence-community
Attribution
OpenCFDは謝意を表する。
- the Turbulence Technical Committee
- Matheus Macedo, Chenyu Wu, Yufei Zhang Michael Alletto, Mario J. Rincón, Alberto Passalacqua, Eleonora Gajetti, and their colleagues for their valuable contributions and assistance.
会社概要
OpenFOAMは、ESI-OpenCFDのコアチームによって制作されています。 アンドリュー・ヘザー
マティス・ヤンセンス
マーク・オレセン
プラシャント・ソナーカル
パワン・ギルディヤル
クタルムシュ・ベルシン
マテイ・フォルマン
キアラ・ペシ
マルティン・リヒトメス
ジリ・ポランスキー
アン・ロンチェッティ
フレッド・メンドンサ
スワプニル・サロケ
ヴェンカタ・ラマナ・イーガ
グローバルESIチームからの幅広いサポート
ESIグループ
ESIグループ(ESIソフトウェア(インド)プライベート・リミテッド)
ESIグループ(北米)
ESIグループ(日本ESI)
ESIウェブチーム
そして、以下からの貢献
OpenFOAMコミュニティ