「OpenFOAM v2412 リリースノート」の版間の差分

提供:オープンCAEWiki OpenCAE Wiki
ナビゲーションに移動 検索に移動
(snapshot1)
(All words covert to japanese)
 
216行目: 216行目:


=== 新しいGAMGアグロメレーション・キャッシング ===
=== 新しいGAMGアグロメレーション・キャッシング ===
Moving mesh cases automatically rebuild the agglomeration for every time step (or even every pressure corrector). For most mesh motion cases, however, the GAMG agglomeration table can be kept for some iterations before needing to be recreated. For solid-body motion there is no need to update the table since the agglomeration logic only depends on the matrix coefficients.
メッシュを動かすケースでは、時間ステップごとに(あるいは圧力補正ごとに)自動的に凝集を再構築します。 しかし、ほとんどのメッシュモーションのケースでは、GAMGアグロメレーションテーブルは、再作成が必要になる前に、いくつかの反復のために保持することができます。 ソリッドボディモーションの場合、凝集ロジックは行列係数にのみ依存するため、テーブルを更新する必要はありません。 キャッシュは新しい updateInterval エントリで有効になります。 これは、ソリッドボディシミュレーションでは非常に大きな数値になります。一般的なメッシュモーションでは、予想されるメッシュクーラント数に基づいて設定する必要があります。
Caching is enabled via the new updateInterval entry. This can be a very large number for solid-body simulations; for general mesh motion this should be based on the expected mesh Courant number.
  <code>p
  <code>p
  {
  {
225行目: 224行目:
     updateInterval      100000;
     updateInterval      100000;
  }</code>
  }</code>
For verbose feedback on the agglomeration, activate the debug switches in the system/controlDict
凝集に関する詳細なフィードバックを得るには、system/controlDictのデバッグ・スイッチを有効にしてください。
  <code>DebugSwitches
  <code>DebugSwitches
  {
  {
231行目: 230行目:
     GAMGAgglomeration  1;
     GAMGAgglomeration  1;
  }</code>
  }</code>
faceAreaWeight optimisation
faceAreaWeightの最適化


The default agglomeration method employs a pair-wise combination of 'cells' based on the magnitude of the face weight connecting the cells. Currently this uses a face weight derived from face area vectors, perturbed to avoid jitter in the agglomeration boundary on an axis-aligned mesh.
デフォルトの凝集法は、セルを結ぶ面重みの大きさに基づく「セル」の一対一の組み合わせを採用している。 現在、これは軸合わせされたメッシュ上の凝集境界のジッターを避けるために摂動された面面積ベクトルから派生した面重みを使用しています。


When the updateInterval is not 1, the weights are calculated using unscaled, unperturbed face area magnitudes to be more consistent with Gaussian-type discretisation. This can yield a slight improvement in the number of GAMG cycles, e.g. the incompressible/pisoFoam/LES/motorBike tutorial using 10 iterations of simpleFoam showed an average reduction in cycles of around 10%:
updateIntervalが1でない場合は、ガウシアンタイプの離散化との整合性を高めるために、スケーリングされていない、摂動されていない顔の面積の大きさを用いて重みが計算される。 例えば、simpleFoamを10回繰り返したincompressible/pisoFoam/SLES/motorBikeのチュートリアルでは、平均約10%のサイクル削減を示しました:


Note that algebraic agglomeration can run with updateInterval; but it
代数的凝集はupdateIntervalで実行できることに注意。


* does not update cyclicA(C)MI and will do a bad job of the interpolation since it uses an old stencil at the coarser levels
* それはcyclicA(C)MIを更新せず、粗いレベルでは古いステンシルを使用するため、補間に失敗する。
* is based on the matrix coefficients which are changing during the simulation so would not be constant even during solid-body motion
* それは、シミュレーション中に変化する行列係数に基づいているため、固体の運動中であっても一定ではない。


Tutorials
チュートリアル


* $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller
* $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller


Source code
ソースコード


* $FOAM_SRC/finiteVolume/fvMatrices/solvers/GAMGSymSolver/GAMGAgglomerations/faceAreaPairGAMGAgglomeration
* $FOAM_SRC/finiteVolume/fvMatrices/solvers/GAMGSymSolver/GAMGAgglomerations/faceAreaPairGAMGAgglomeration


Merge request
リクエストのマージ


* Merge request #707
* Merge request #707


=== Improved lduMatrix, lduAddressing ===
=== lduMatrix, lduAddressingの改善 ===
The scalar matrix class lduMatrix has been extended to make it easier to work with cell-based algorithms.
スカラー行列クラス lduMatrix が拡張され、セルベースのアルゴリズムがより使いやすくなりました。 アドレス指定 lduAddressing には、下位アドレス指定を返す lowerCSRAddr アクセサが追加され、loSortAddressing を使った追加的なインダイレクトを避けることができます:
The addressing lduAddressing includes a lowerCSRAddr accessor that returns the lower addressing, avoiding the additional indirection using loSortAddressing:
  <code>const labelUList& lduAddressing::lowerCSRAddr() const</code>
  <code>const labelUList& lduAddressing::lowerCSRAddr() const</code>
This is constructed on-the-fly from the lowerAddr() addressing.
これは、lowerAddr()アドレッシングからオンザフライで構築される。


Additionally, the matrix has been extended with a lowerCSR() accessor that returns the corresponding reordering of the lower() coefficients, or can be constructed directly:
さらに、この行列には、対応する lower() 係数の並べ替えを返す lowerCSR() アクセサが追加された:
  <code>const scalarField& lduMatrix::lowerCSR() const</code>
  <code>const scalarField& lduMatrix::lowerCSR() const</code>
Availability of the addressing can be checked using the hasLowerCSR() function.
アドレス指定が可能かどうかは、hasLowerCSR()関数で確認できる。


An example usage is given inside the lduMatrix::Amul routine:
使用例は lduMatrix::Amul ルーチンの中にあります:
  <code>if (hasLowerCSR())
  <code>if (hasLowerCSR())
  {
  {
301行目: 299行目:
     }
     }
  }</code>
  }</code>
Source code
ソースコード


* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduAddressing/lduAddressing.H
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduAddressing/lduAddressing.H
307行目: 305行目:
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C


=== Improved wall distance ===
=== 壁との距離の改善 ===
The near-wall distance field used in e.g. turbulence wall functions, has been updated for wall faces, changing the behaviour of cells with faces on multiple wall patches.
乱流壁関数などで使用されている壁面近傍距離フィールドが壁面に対して更新され、複数の壁面パッチに面を持つセルの挙動が変更されました。 最近接距離は、セル中心から局所的な壁面、または任意の局所的なエッジまたは点に接続された面までの最小距離として計算されます。
The nearest distance is calculated as the minimum distance from the cell centre to the local wall face or any local edge- or point-connected face. Note that this


* is not parallel consistent
* これは並列一貫性がない
* only considers one face
* これは一面しか見ない


For more consistent behaviour the exact wall distance method should be employed.
より一貫した挙動を得るためには、正確な壁面距離法を採用すべきである。


Previous behaviour (OpenFOAM v2406 and earlier) can be obtained by deactivating the useCombinedWallPatch info switch in etc/controlDict or the local system/controlDict:
以前の動作(OpenFOAM v2406 以前)は、etc/controlDict またはローカルの system/controlDict の useCombinedWallPatch 情報スイッチを無効にすることで得られます:
  <code>OptimisationSwitches
  <code>OptimisationSwitches
  {
  {
     useCombinedWallPatch    0;
     useCombinedWallPatch    0;
  }</code>
  }</code>
With a skewed/tetified version of the cavity mesh, v2406 wall distance:
ソースコード
 
The new behaviour looks across the side patches as well as the top patch:
 
Source code


* $FOAM_SRC/meshTools/cellDist/cellDistFuncs.C
* $FOAM_SRC/meshTools/cellDist/cellDistFuncs.C
334行目: 326行目:
* $FOAM_SRC/meshTools/cellDist/patchWave/patchWave.C
* $FOAM_SRC/meshTools/cellDist/patchWave/patchWave.C


Merge request
リクエストのマージ


* Merge request #700
* Merge request #700


Issue
問題


* Issue #3215
* Issue #3215


=== Community contribution: Improved adjoint optimisation ===
=== 地域貢献: アドジョイント最適化の改善 ===
OpenFOAM v2412 adds some quality-of-life changes to the adjoint library.
OpenFOAM v2412では、アジョイント・ライブラリにいくつかの機能変更が加えられました。 トポロジー最適化の設計変数の初期値を0/alphaフィールドから読み込めるようになり、topoSet/setFieldsユーティリティで簡単に設定できるようになりました。 以前は、0/uniform/topOVarsを通してのみ可能でしたが、これは操作が難しくなっています。
The initial values of the design variables in topology optimisation can now be read through the 0/alpha field, which can be easily set using the topoSet/setFields utilities. Previously, this was only possible through 0/uniform/topOVars, which is harder to manipulate.


The multiplier of the term added to the mathematical optimisation problem of ISQP and MMA to guarantee feasibility (named 'c') can now be given by a Function1, to allow its manipulation throughout the optimisation loop. A typical example would be setting it to a small value in the first few optimisation cycles, to focus on optimality rather than feasibility, and gradually increase it.
ISQPの数学的最適化問題に追加され、実現可能性を保証するためにMMAに追加された項の乗数('c'と命名)は、関数1で与えられるようになり、最適化ループ全体で操作できるようになりました。 典型的な例としては、実現可能性よりも最適性を重視するために、最初の数サイクルの最適化では小さな値に設定し、徐々に大きくしていきます。


Added the option to disable damping of the approximate Hessian in ISQP. In the general case, this is to be avoided but can accelerate the algorithm in some fringe cases.
ISQPで近似ヘシアンの減衰を無効にするオプションを追加。 一般的なケースでは、これは避けるべきですが、いくつかのフリンジケースではアルゴリズムを加速させることができます。


Tutorials
チュートリアル


* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_10x-init
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_10x-init


Source code
ソースコード


* $FOAM_SRC/optimisation/adjointOptimisation
* $FOAM_SRC/optimisation/adjointOptimisation


Merge request
リクエストのマージ


* Merge request #710
* Merge request #710


=== New zoneBlended scheme ===
=== 新ゾーンブレンド・スキーム ===
The new zoneBlended scheme enables users to apply differencing schemes per-face-zone. Schemes are set in dictionary format according to:
新しいzoneBlendedスキームにより、ユーザーはフェイスゾーンごとに差分スキームを適用できる。 スキームは辞書形式で設定される:
  <code>divSchemes
  <code>divSchemes
  {
  {
379行目: 370行目:
     .
     .
  }</code>
  }</code>
The default entry specifies the background scheme; additional schemes can be set per faceZone, e.g. scheme1 is applied to faceZone1, scheme2 is applied to faceZone2 etc.
デフォルトのエントリーは背景スキームを指定します。追加のスキームをフェイスゾーンごとに設定できます。例えば、スキーム1はフェイスゾーン1に適用され、スキーム2はフェイスゾーン2に適用されます。


Source code
ソースコード


* $FOAM_SRC/finiteVolume/interpolation/surfaceInterpolation/schemes/zoneBlended
* $FOAM_SRC/finiteVolume/interpolation/surfaceInterpolation/schemes/zoneBlended


== Solvers and physical models ==
== ソルバーと物理モデル ==


=== Community contribution: Improved shielding function for SA-DDES turbulence model ===
=== 地域貢献: SA-DDES乱流モデルの遮蔽機能の改善 ===
The Delayed Detached-Eddy Simulation (DDES) model [1] is a hybrid RANS/LES approach which aims to model all attached boundary layers via RANS and massively separated flow regions via LES. To prevent the activation of the LES mode inside of attached boundary layers, an additional safeguard function referred to as "shielding" function is implemented. Unfortunately, the standard formulation [1] can collapse on fine grids, leading to a decline of wall shear stresses and potentially premature flow separation. These phenomena are often referred to as "modelled stress depletion" and "grid-induced separation" in the literature.
DDES(Delayed Detached-Eddy Simulation)モデル[1]は、RANS/LESのハイブリッドアプローチであり、RANSによってすべての付着境界層をモデル化し、LESによって大きく分離した流れ領域をモデル化することを目的としています。 付着境界層内部でのLESモードの起動を防止するために、「遮蔽」機能と呼ばれる追加的なセーフガード機能が実装されています。 残念ながら,標準的な定式化[1]は,細かい格子上で崩壊することがあり,壁せん断応力の低下や,流れの早期剥離につながる可能性がある. これらの現象は、文献ではしばしば "モデル化された応力の枯渇 ""グリッド誘起剥離 "と呼ばれています。 Deck & Renard [2]は最近、よりロバストな挙動を提供しながら、分離したせん断層でのLESへの迅速な切り替えを可能にする、改良された遮蔽関数を提案しました。 この定式化は、SA-DDESモデルの変形であるZDESモード2(2020)乱流モデル用に開発されました。 図は,後縁が分離した NACA4412 翼周りの流れに対 して,改良された遮蔽機能の利点を示しています. 吸込側のグリッドが流れ方向とスパン方向で強くリファインされているため,標準の遮蔽機能が後退し,流れの剥離が早期に発生している. 一方,改良された遮蔽関数は,吸込側の付着境界層領域全体で RANS モードを保持し,NASA コード CFL3D の参照 RANS とよく一致する.
Deck & Renard [2] recently proposed an improved shielding function which offers more robust behaviour while still allowing a rapid switch to LES in separated shear layers. The formulation was developed for the ZDES mode 2 (2020) turbulence model, which is a variant of the SA-DDES model. The figures demonstrate the benefit of the improved shielding function for the flow around a NACA4412 airfoil with trailing edge separation. The grid on the suction side is strongly refined in the streamwise and spanwise directions, causing the standard shielding function to retreat and premature flow separation to occur. In contrast, the improved shielding function retains RANS mode in the entire attached boundary layer region on the suction side, and the prediction agrees well with reference RANS from the NASA code CFL3D.


following turbulence modelling features are included in the v2412 release:
以下の乱流モデリング機能がv2412リリースに含まれています:


* Improved shielding function formulation of Deck & Renard [2], implemented for SpalartAllmarasDDES, activated via the new option “shielding” (keyword “standard” selects the standard function [1], “ZDES2020” selects the improved formulation [2]).
* Improved shielding function formulation of Deck & Renard [2], implemented for SpalartAllmarasDDES, activated via the new option “shielding” (keyword “standard” selects the standard function [1], “ZDES2020” selects the improved formulation [2]).
* An additional option “usefP2” activates a more robust shielding mode for the Deck & Renard formulation (detailed in equation A.9 of [2]).
* An additional option “usefP2” activates a more robust shielding mode for the Deck & Renard formulation (detailed in equation A.9 of [2]).


Example usage
使用例
  <code>simulationType LES;
  <code>simulationType LES;
  LES
  LES
413行目: 403行目:
     printCoeffs      on;
     printCoeffs      on;
  }</code>
  }</code>
Note that the improved shielding function is not implemented for the kOmegaSSTDDES model, since the formulation presented in [2] was specifically derived for SA-based DDES.
2]で示された定式化はSAベースのDDESに特化して導き出されたものであるため、改善された遮蔽関数はkOmegaSSTDDESモデルには実装されていないことに注意してください。


Tutorial
チュートリアル


* $FOAM_TUTORIALS/incompressible/pimpleFoam/LES/NACA4412
* $FOAM_TUTORIALS/incompressible/pimpleFoam/LES/NACA4412


Attribution
帰属


* The improved shielding function of Deck & Renard (2020) [2] was implemented by Upstream CFD GmbH and integrated into OpenFOAM in collaboration with ESI-UK Ltd with funding by Volkswagen AG.
* The improved shielding function of Deck & Renard (2020) [2] was implemented by Upstream CFD GmbH and integrated into OpenFOAM in collaboration with ESI-UK Ltd with funding by Volkswagen AG.


References
参考文献


* [1] P. Spalart, S. Deck, M. Shur, K. Squires, M. Strelets, and A. Travin. A new version of detached-eddy simulation, resistant to ambiguous grid densities. Theoretical and Computational Fluid Dynamics, 20(3):181–195, 2006.
* [1] P. Spalart, S. Deck, M. Shur, K. Squires, M. Strelets, and A. Travin. A new version of detached-eddy simulation, resistant to ambiguous grid densities. Theoretical and Computational Fluid Dynamics, 20(3):181–195, 2006.
* [2] Deck, S., & Renard, N. (2020). Towards an enhanced protection of attached boundary layers in hybrid RANS/LES methods. Journal of Computational Physics, vol. 400, pp. 108970, 2020.
* [2] Deck, S., & Renard, N. (2020). Towards an enhanced protection of attached boundary layers in hybrid RANS/LES methods. Journal of Computational Physics, vol. 400, pp. 108970, 2020.


=== Improved Lagrangian injection model: coneNozzleInjection ===
=== 改良されたラグランジュ射出モデル:コーンノズル・インジェクション(coneNozzleInjection ===
This release introduces two minor enhancements to the coneNozzleInjection model:
このリリースでは、coneNozzleInjectionモデルに2つのマイナーな改良が加えられました:


* A new injection method that distributes particles uniformly at angular intervals across a disc;
* 粒子をディスク全体に角度間隔で均一に分布させる新しい射出方法;
* Inclusion of the injector's estimated speed to particle injection. While there is no change in the input or output behaviour for static injectors, the velocity of particles injected from moving injectors now includes the injector velocity.
* 粒子噴射にインジェクターの推定速度を含める。 静的インジェクタの入出力動作に変更はありませんが、移動インジェクタから噴射される粒子の速度にインジェクタの速度が含まれるようになりました。


A minimal example usage is as follows:
最小限の使用例は以下の通り:
  <code>injectionModels
  <code>injectionModels
  {
  {
449行目: 439行目:
     }
     }
  }</code>
  }</code>
Source code
ソースコード


* $FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
* $FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H


Merge request
リクエストのマージ


* Merge request #719
* Merge request #719


=== Improved solid-body motion function: tabulated6DoFMotion ===
=== 改良されたソリッドボディモーション機能:tabulated6DoFMotion ===
The tabulated6DoFMotion model now includes a linear interpolation option. A minimal example usage is as follows:
表6DoFMotionモデルに線形補間オプションが追加されました。 最小限の使用例を以下に示します:
  <code>solidBodyMotionFunction tabulated6DoFMotion;
  <code>solidBodyMotionFunction tabulated6DoFMotion;
   
   
  interpolationScheme    linear;  // spline;</code>
  interpolationScheme    linear;  // spline;</code>
Source code
ソースコード


* $FOAM_SRC/meshTools/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.H
* $FOAM_SRC/meshTools/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.H


=== New finite-area framework: Film-separation models ===
=== 新しい有限領域のフレームワーク: 膜分離モデル ===
Finite-area-based film curvature separation models have been updated, and a new film-separation model added for sharp edges. These updates improve the accuracy and flexibility of film-separation predictions under a wide range of geometric and flow conditions.
有限面積ベースのフィルム曲率分離モデルが更新され、シャープエッジ用の新しいフィルム分離モデルが追加された。 これらの更新により、さまざまな幾何学的条件や流動条件下での膜分離予測の精度と柔軟性が向上しました。


Key changes and additions:
主な変更点と追加点


* Owen-Ryley model:
* オーウェン-ライリーモデル:
** The existing curvatureSeparation model has been re-implemented as the OwenRyleyModel, based on the work of Owen & Ryley (1983). This model assumes:
** 既存のcurvatureSeparationモデルは、Owen & Ryley (1983)の研究に基づき、OwenRyleyModelとして再実装された。 このモデルは次のように仮定しています:
*** Once the film detaches from the surface, it immediately breaks into a fine mist of droplets. As a result, it may not accurately represent scenarios where the liquid leaves as a cohesive mass.
*** フィルムが表面から剥がれると、すぐに細かい霧状の液滴になる。 その結果、液体が凝集塊として離脱するシナリオを正確に表現できない可能性がある。
*** The film flows around a rounded corner with a fixed radius, potentially limiting its applicability at sharp corners where curvature is not well-defined.
*** フィルムは一定の半径を持つ丸みを帯びたコーナーの周囲を流れるため、曲率が明確でない鋭角のコーナーでは適用が制限される可能性がある。
*** Films are thinner than 1e-4 m, with viscous effects and surface disturbances neglected.
*** 膜厚は1e-4 mより薄く、粘性効果と表面擾乱は無視される。
*** Uniform film velocity and thickness.
*** 均一な膜速度と膜厚。
*** The separation criterion is not explicitly formulated, but rather inferred based on the model’s assumptions.
*** 分離基準は明示的に定式化されるのではなく、モデルの仮定に基づいて推測される。
* New film-separation model for sharp edges:
* シャープエッジのための新しいフィルム分離モデル:
** A new model, FriedrichModel has been introduced to compute film-separation properties at sharp edges, covering both full and partial film-separation scenarios. This model is based on the work of Friedrich et al. (2008) and Zhang et al. (2018):
** 新しいモデルFriedrichModelを導入し、シャープエッジでの膜分離特性を計算し、完全膜分離と部分膜分離の両方のシナリオをカバーする。 このモデルは、Friedrichら(2008)とZhangら(2018)の研究に基づいている:
*** Friedrich et al. (2008):
*** Friedrichら(2008):
**** Developed a separation criterion rooted in force equilibrium within a control volume at the detachment point.
**** 剥離点における制御体積内の力の平衡に根ざした剥離基準を開発。
**** Assumes a maximum film thickness of 1e-4 m.
**** 最大膜厚を1e-4 mと仮定。
**** Considers surface tension, gravity, and film inertia.
**** 表面張力、重力、フィルムの慣性を考慮する。
**** Known to be relatively reliable, though it can predict premature rupture.
**** 早期破裂を予測することはできるが、比較的信頼できることが知られている。
**** Serves as the separation method implemented in ANSYS Forte 18.2.
**** ANSYS Forte 18.2 に実装されている分離メソッドとして機能します。
*** Zhang et al. (2018):
*** Zhangら(2018):
**** Enhanced the Friedrich et al. model by introducing a mass-fraction criterion. Unlike models that assume the entire film in a cell detaches simultaneously, the Zhang et al. approach detaches only a fraction of the film based on these criteria. This leads to more realistic predictions of how much film actually separates.
**** 質量分率基準を導入することで、Friedrichらのモデルを強化した。 細胞内の膜全体が同時に剥離すると仮定するモデルとは異なり、Zhangらのアプローチは、これらの基準に基づいて膜の一部のみを剥離する。 これにより、フィルムが実際にどの程度剥離するかについて、より現実的な予測が可能になった。


Comprehensive serial and parallel test cases were conducted to ensure robust corner and separation identification, involving cases with sharp edges of various shapes and orientations relative to the flow direction, and multiple spatial resolutions and parallelization configurations.
包括的な直列および並列テストケースは、ロバストなコーナーおよび分離同定を確実にするために実施され、流れ方向に対して様々な形状や向きの鋭角エッジを持つケース、複数の空間分解能および並列化構成を含む。


As a result, users can expect improved consistency and reliability when simulating film-separation phenomena, regardless of mesh complexity or computational setup.
その結果、ユーザーは、メッシュの複雑さや計算設定に関係なく、膜分離現象をシミュレーションする際の一貫性と信頼性の向上を期待することができます。


A minimal example usage is as follows:
最小限の使用例は以下の通り:
  <code>injectionModels
  <code>injectionModels
  {
  {
506行目: 496行目:
     deltaByR1Min      0;
     deltaByR1Min      0;
  }</code>
  }</code>
Source code
ソースコード


* $FOAM_SRC/regionFaModels/liquidFilm/subModels/kinematic/injectionModel/filmSeparation/filmSeparationModels
* $FOAM_SRC/regionFaModels/liquidFilm/subModels/kinematic/injectionModel/filmSeparation/filmSeparationModels


Tutorial
チュートリアル


* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/pitzDailyWithSprinklers
* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/pitzDailyWithSprinklers


Merge request
リクエストのマージ


* Merge request #714
* Merge request #714


=== Improved simpleFoam: new dynamicMesh support ===
=== simpleFoamの改良:新しいdynamicMeshのサポート ===
simpleFoam now supports a dynamicFvMesh, similar to pimpleFoam. It reads constant/dynamicMeshDict if it is present and calls its update() routine every iteration. This enables, e.g. use of steady-state simulations with dynamic mesh refinement/unrefinement.
simpleFoamはpimpleFoamと同様にdynamicFvMeshをサポートするようになりました。 constant/dynamicMeshDictがあればそれを読み込み、繰り返しごとにupdate()ルーチンを呼び出します。 これにより、例えば、動的なメッシュのリファインメント/アンリファインメントを用いた定常シミュレーションが可能になります。


==== More information ====
==== 詳細情報 ====


* Issue #3269
* Issue #3269


== Post-processing ==
== 後処理 ==


=== New report generation ===
=== 新しいレポート作成 ===
The foamReport function object provides a template-based text substitution system to collect OpenFOAM run data. The user-supplied template file can take the form of any plain-text file, e.g. markdown (.md), web (.html) and latex (.tex). Entries supplied using double handlebar syntax <nowiki>{{ENTRY}}</nowiki> are replaced (case insensitive). A set of common built-ins entries beginning with OF_ are provided, e.g.
foamReport関数オブジェクトは、OpenFOAMの実行データを収集するためのテンプレートベースのテキスト置換システムを提供します。 ユーザーが提供するテンプレートファイルは、マークダウン(.md)、ウェブ(.html)、ラテックス(.tex)などのプレーンテキストファイルの形式をとることができます。 ダブルハンドル構文{{ENTRY}}を使用して提供された項目は置換されます(大文字と小文字は区別されません)。 OF_で始まる一般的な組み込みエントリのセットが提供されます。


* OF_HOST: Host machine name
* OF_HOST: ホストマシン名
* OF_CASE_NAME: Case name
* OF_CASE_NAME: ケース名
* OF_API: OpenFOAM API level
* OF_API: OpenFOAM APIレベル
* OF_DATE_START: Date when job was started
* OF_DATE_START: ジョブ開始日
* OF_CASE_PATH: file path to case
* OF_CASE_PATH: ケースへのファイルパス
* ...
* ...


The full set of built-in and user-supplied keys can be written using the debugKeys entry. User-defined substitutions are listed in dictionary format, where substitution models include:
組み込みキーとユーザー提供キーの完全なセットは、debugKeysエントリーを使用して書き込むことができる。 ユーザー定義の置換は辞書形式でリストされ、置換モデルには以下が含まれる:


* fileRegEx : regular expression from file
* fileRegEx : ファイルからの正規表現
* functionObjectValue : retrieve function object result
* functionObjectValue : 関数オブジェクトの結果を取り出す
* dictionaryValue : value from dictionary - file-based or from registry lookup
* dictionaryValue : 辞書からの値 - ファイルベースまたはレジストリ検索から
* environmentVariable : replace keyword with environment variable
* environmentVariable : キーワードを環境変数に置き換える
* userValue : replace keyword with user-supplied string:
* userValue : キーワードをユーザが指定した文字列に置き換える:


Example usage based on a markdown template:
マークダウン・テンプレートに基づく使用例:
   
   
  <code>foamReport1
  <code>foamReport1
611行目: 601行目:
     ...
     ...
  }</code>
  }</code>
Example markdown-based template file:
マークダウン・ベースのテンプレート・ファイルの例:
  <code># <nowiki>{{OF_EXECUTABLE}}</nowiki> : <nowiki>{{OF_CASE_NAME}}</nowiki> tutorial
  <code># <nowiki>{{OF_EXECUTABLE}}</nowiki> : <nowiki>{{OF_CASE_NAME}}</nowiki> tutorial
   
   
  - Case: <nowiki>{{OF_CASE_PATH}}</nowiki>
  - Case: : <nowiki>{{OF_CASE_PATH}}</nowiki>
  - Submission: <nowiki>{{OF_CLOCK_START}}</nowiki> on <nowiki>{{OF_DATE_START}}</nowiki>
  - Submission: <nowiki>{{OF_CLOCK_START}}</nowiki> on <nowiki>{{OF_DATE_START}}</nowiki>
  - Report time: <nowiki>{{OF_CLOCK_NOW}}</nowiki> on <nowiki>{{OF_DATE_NOW}}</nowiki>
  - Report time: <nowiki>{{OF_CLOCK_NOW}}</nowiki> on <nowiki>{{OF_DATE_NOW}}</nowiki>
   
   
  ---
  ---
   
   
<nowiki>##</nowiki> Run information
   
   
  <nowiki>| Property      |</nowiki> Value              |
 
<nowiki>|----------------|--------------------|</nowiki>
  <nowiki>##</nowiki> Run information
<nowiki>| Host          |</nowiki> <nowiki>{{OF_HOST}}</nowiki>        |
   
<nowiki>| Processors    |</nowiki> <nowiki>{{OF_NPROCS}}</nowiki>      |
<nowiki>| Time steps    |</nowiki> <nowiki>{{OF_TIME_INDEX}}</nowiki>  |
  <nowiki>| Property      |</nowiki> Value              |
<nowiki>| Initial deltaT |</nowiki> <nowiki>{{initial_deltaT}}</nowiki> |
  <nowiki>|----------------|--------------------|</nowiki>
<nowiki>| Current deltaT |</nowiki> <nowiki>{{OF_TIME_DELTAT}}</nowiki> |
  <nowiki>| Host          |</nowiki> <nowiki>{{OF_HOST}}</nowiki>        |
<nowiki>| Execution time |</nowiki> <nowiki>{{executionTime}}</nowiki>  |
  <nowiki>| Processors    |</nowiki> <nowiki>{{OF_NPROCS}}</nowiki>      |
  <nowiki>| Time steps    |</nowiki> <nowiki>{{OF_TIME_INDEX}}</nowiki>  |
  <nowiki>| Initial deltaT |</nowiki> <nowiki>{{initial_deltaT}}</nowiki> |
  <nowiki>| Current deltaT |</nowiki> <nowiki>{{OF_TIME_DELTAT}}</nowiki> |
  <nowiki>| Execution time |</nowiki> <nowiki>{{executionTime}}</nowiki>  |
   
   
  ---
  ---
   
   
<nowiki>##</nowiki> OpenFOAM information
   
   
  <nowiki>| Property      |</nowiki> Value              |
 
<nowiki>|----------------|--------------------|</nowiki>
  <nowiki>##</nowiki> OpenFOAM information
<nowiki>| Version        |</nowiki> <nowiki>{{OF_VERSION}}</nowiki>    |
<nowiki>| API            |</nowiki> <nowiki>{{OF_API}}</nowiki>        |
   
<nowiki>| Patch          |</nowiki> <nowiki>{{OF_PATCH}}</nowiki>      |
  <nowiki>| Property      |</nowiki> Value              |
<nowiki>| Build          |</nowiki> <nowiki>{{OF_BUILD}}</nowiki>      |
  <nowiki>|----------------|--------------------|</nowiki>
<nowiki>| Architecture  |</nowiki> <nowiki>{{OF_BUILD_ARCH}}</nowiki>  |
  <nowiki>| Version        |</nowiki> <nowiki>{{OF_VERSION}}</nowiki>    |
  <nowiki>| API            |</nowiki> <nowiki>{{OF_API}}</nowiki>        |
  <nowiki>| Patch          |</nowiki> <nowiki>{{OF_PATCH}}</nowiki>      |
  <nowiki>| Build          |</nowiki> <nowiki>{{OF_BUILD}}</nowiki>      |
  <nowiki>| Architecture  |</nowiki> <nowiki>{{OF_BUILD_ARCH}}</nowiki>  |
   
   
  ---
  ---
   
   
<nowiki>##</nowiki> Mesh statistics
   
   
  <nowiki>| Property          |</nowiki> Value                |
 
<nowiki>|-------------------|----------------------|</nowiki>
  <nowiki>##</nowiki> Mesh statistics
<nowiki>| Bounds            |</nowiki> <nowiki>{{OF_MESH_BOUNDS_MIN}}</nowiki><nowiki>{{OF_MESH_BOUNDS_MAX}}</nowiki> |
   
<nowiki>| Number of cells  |</nowiki> <nowiki>{{OF_MESH_NCELLS}}</nowiki>  |
<nowiki>| Number of faces  |</nowiki> <nowiki>{{OF_MESH_NFACES}}</nowiki>  |
  <nowiki>| Property          |</nowiki> Value                |
<nowiki>| Number of points  |</nowiki> <nowiki>{{OF_MESH_NPOINTS}}</nowiki>  |
  <nowiki>|-------------------|----------------------|</nowiki>
<nowiki>| Number of patches |</nowiki> <nowiki>{{OF_MESH_NPATCHES}}</nowiki> |
  <nowiki>| Bounds            |</nowiki> <nowiki>{{OF_MESH_BOUNDS_MIN}}</nowiki><nowiki>{{OF_MESH_BOUNDS_MAX}}</nowiki> |
  <nowiki>| Number of cells  |</nowiki> <nowiki>{{OF_MESH_NCELLS}}</nowiki>  |
  <nowiki>| Number of faces  |</nowiki> <nowiki>{{OF_MESH_NFACES}}</nowiki>  |
  <nowiki>| Number of points  |</nowiki> <nowiki>{{OF_MESH_NPOINTS}}</nowiki>  |
  <nowiki>| Number of patches |</nowiki> <nowiki>{{OF_MESH_NPATCHES}}</nowiki> |
   
   
  ---
  ---
   
   
<nowiki>##</nowiki> Linear solvers
   
   
  <nowiki>| Property |</nowiki> Value          | tolerance(rel)  | Tolerance(abs)      |
 
<nowiki>|----------|----------------|------------------|---------------------|</nowiki>
  <nowiki>##</nowiki> Linear solvers
<nowiki>| p        |</nowiki> `<nowiki>{{solver_p}}</nowiki>` | <nowiki>{{solver_p_tol}}</nowiki> | <nowiki>{{solver_p_reltol}}</nowiki> |
   
<nowiki>| U        |</nowiki> `<nowiki>{{solver_U}}</nowiki>` | <nowiki>{{solver_u_tol}}</nowiki> | <nowiki>{{solver_u_reltol}}</nowiki> |
  <nowiki>| Property |</nowiki> Value          | tolerance(rel)  | Tolerance(abs)      |
  <nowiki>|----------|----------------|------------------|---------------------|</nowiki>
  <nowiki>| p        |</nowiki> `<nowiki>{{solver_p}}</nowiki>` | <nowiki>{{solver_p_tol}}</nowiki> | <nowiki>{{solver_p_reltol}}</nowiki> |
  <nowiki>| U        |</nowiki> `<nowiki>{{solver_U}}</nowiki>` | <nowiki>{{solver_u_tol}}</nowiki> | <nowiki>{{solver_u_reltol}}</nowiki> |
   
   
  ---
  ---
   
   
  <nowiki>##</nowiki> Numerical scehemes
   
 
  <nowiki>##</nowiki> Numerical scehemes
   
   
  The chosen divergence schemes comprised:
  The chosen divergence schemes comprised:
   
   
  [[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])
   
<nowiki>{{divSchemes}}</nowiki>
 
[[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])
  [[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])
  <nowiki>{{divSchemes}}</nowiki>
  [[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])
   
   
  ---
  ---
   
   
  <nowiki>##</nowiki> Graphs
   
 
  <nowiki>##</nowiki> Graphs
   
   
  Residuals
  Residuals
   
   
  <nowiki>![]({{OF_CASE_PATH}}</nowiki>/postProcessing/residualGraph1/<nowiki>{{OF_TIME}}</nowiki>/residualGraph1.svg)
   
 
  <nowiki>![]({{OF_CASE_PATH}}</nowiki>/postProcessing/residualGraph1/<nowiki>{{OF_TIME}}</nowiki>/residualGraph1.svg)
   
   
  ---
  ---
   
   
  <nowiki>##</nowiki> Results
   
 
  <nowiki>##</nowiki> Results
   
   
  Forces
  Forces
   
   
  <nowiki>![]({{OF_CASE_PATH}}</nowiki>/postProcessing/forceCoeffsGraph1/<nowiki>{{OF_TIME}}</nowiki>/forceCoeffsGraph1.svg)
   
 
  <nowiki>![]({{OF_CASE_PATH}}</nowiki>/postProcessing/forceCoeffsGraph1/<nowiki>{{OF_TIME}}</nowiki>/forceCoeffsGraph1.svg)
   
   
  ---</code>
  ---</code>
Source code
ソースコード


* $FOAM_SRC/functionObjects/utilities/foamReport
* $FOAM_SRC/functionObjects/utilities/foamReport


Tutorial
チュートリアル


* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike


Merge request
リクエストのマージ


* Merge request #716
* Merge request #716


=== New graph generation ===
=== 新しいグラフ生成 ===
The graphFunctionObject enables users to generate SVG graphs of function object result values, e.g. to show the evolution residuals, or reduced data such as force coefficients.
graphFunctionObjectは、ユーザーが関数オブジェクトの結果値のSVGグラフを生成することを可能にします。例えば、進化の残差や、力係数のような削減されたデータを表示します。
 


A minimal example is shown below:
最小限の例を以下に示す:
  <code>// Generate the result values
  <code>// Generate the result values
  solverInfo1
  solverInfo1
774行目: 787行目:
     //...
     //...
  }</code>
  }</code>
Source code
ソースコード


* $FOAM_SRC/functionObjects/utilities/graphFunctionObject
* $FOAM_SRC/functionObjects/utilities/graphFunctionObject


Tutorial
チュートリアル


* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike


=== New finite-area function object: surfaceCourantNumber ===
=== 新しい有限領域関数オブジェクト:surfaceCourantNumber ===
A new finite-area function object, surfaceCourantNumber, calculates the surface Courant number field at finite-area face centres.
新しい有限面積関数オブジェクトsurfaceCourantNumberは、有限面積の面中心で表面のクーラント数フィールドを計算します。 これは、liquidFilmFoamソルバーで使用されているような、エッジ中心でクーラント数を計算するアプローチからの概念的な転換を意味します。 面中心でクーラント数を評価することにより、surfaceCourantNumberは、より局所的で、より正確な表面ベースの流れ解析の指標を提供することができます。
This represents a conceptual shift from approaches like those used in the liquidFilmFoam solver, where the Courant number is computed at edge centres. By evaluating the Courant number at face centres, surfaceCourantNumber can provide a more localized and potentially more accurate measure for surface-based flow analyses.


A minimal example usage is as follows:
最小限の使用例は以下の通り:
  <code>surfaceCourantNumber1
  <code>surfaceCourantNumber1
  {
  {
802行目: 814行目:
     ...
     ...
  }</code>
  }</code>
Source code
ソースコード


* $FOAM_SRC/regionFaModels/functionObjects/surfaceCourantNumber/surfaceCourantNumber.H
* $FOAM_SRC/regionFaModels/functionObjects/surfaceCourantNumber/surfaceCourantNumber.H


Tutorial
チュートリアル


* $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder
* $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder


Merge request
リクエストのマージ


* Merge request #706
* Merge request #706


=== Improved solver function objects: Outer-loop convergence check ===
=== ソルバー関数オブジェクトの改良 アウターループ収束チェック ===
A convergence check for outer loops has been added to the solver function objects (scalarTransport, energyTransport and electricPotential), enabling the function object to detect and terminate when further iterations are no longer necessary. This improvement can help reduce computational overhead and streamline the solution process by eliminating unnecessary loops once convergence has been achieved.
ソルバー関数オブジェクト(scalarTransport、energyTransport、electricPotential)に外部ループの収束チェック機能が追加されました。 この改良により、収束が達成された時点で不要なループを排除することで、計算オーバーヘッドを削減し、解法プロセスを合理化することができます。 最小限の使用例を以下に示します:
A minimal example usage is as follows:
  <code>scalarTransport1
  <code>scalarTransport1
  {
  {
823行目: 834行目:
     ...
     ...
  }</code>
  }</code>
Source code
ソースコード


* $FOAM_SRC/functionObjects/solvers/scalarTransport/scalarTransport.H
* $FOAM_SRC/functionObjects/solvers/scalarTransport/scalarTransport.H
829行目: 840行目:
* $FOAM_SRC/functionObjects/solvers/electricPotential/electricPotential.H
* $FOAM_SRC/functionObjects/solvers/electricPotential/electricPotential.H


Merge request
リクエストのマージ


* Merge request #699
* Merge request #699


== Parallel ==
== パラレル ==


=== Improved Non-Blocking Exchange (NBX) ===
=== ノンブロッキング・エクスチェンジ(NBX)の改善 ===
In OpenFOAM-v2306 an experimental 'non-blocking consensus exchange' (NBX) option was introduced - see configuration switches
OpenFOAM-v2306では、実験的な「ノンブロッキング・コンセンサス交換」(NBX)オプションが導入されました。 8192コアに複数のcyclicAMIがあり、(etc/controlDictまたはローカルシステム/controlDictに)エントリがある場合です:
It can have a dramatic effect on extreme core counts with moving meshes. On a case with multiple cyclicAMI on 8192 cores and the entry (in etc/controlDict or local system/controlDict):
  <code>OptimisationSwitches
  <code>OptimisationSwitches
  {
  {
849行目: 859行目:
     pbufs.tuning    1;
     pbufs.tuning    1;
  }</code>
  }</code>
Provided the following timings:
以下の時間帯を提供:
{| class="wikitable"
{| class="wikitable"
|NBX
|NBX
860行目: 870行目:
|18k
|18k
|}
|}
Note that NBX does not guarantee that the 'receive and consume' order is the same as the 'send order', meaning the truncation errors may accumulate differently. This is more sensitive for longer messages, e.g. geometry in cyclicAMI, and care must be taken to ensure a unique 'tag' (not the default Pstream::msgType()).
NBXは、「受信と消費」の順序が「送信の順序」と同じであることを保証していない。 これは、cyclicAMIのジオメトリなど、長いメッセージではより敏感であり、一意の「タグ」(デフォルトのPstream::msgType()ではない)を確保するように注意しなければならない。


Source code
ソースコード


* $FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation
* $FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation


Merge request
リクエストのマージ


* Merge request #704
* Merge request #704


=== Improved finite-area framework ===
=== 改良された有限領域フレームワーク ===
Several finite-area framework routines exhibit inconsistent behaviour under parallel operation, affecting planar and non-planar finite-area meshes—regardless of skewness or non-orthogonality. These inconsistencies mainly stem from differing algorithms applied to internal- and processor-edges.
いくつかの有限領域フレームワークルーチンは、歪度や非直交性に関係なく、平面および非平面有限領域メッシュに影響を与え、並列処理時に一貫性のない挙動を示します。 これらの不整合は、主に内部エッジとプロセッサエッジに適用されるアルゴリズムの違いから生じています。 例えば、非平面有限面積メッシュのコーナーエッジが2つのプロセッサ間で共有されている場合、接線方向に微妙な正負の摂動が生じることがあります。 この摂動は時間の経過とともに伝播し、膜分離のような予期せぬ流れ挙動を引き起こす可能性があります。
For example, when a corner edge of a non-planar finite-area mesh is shared between two processors, it can introduce a subtle positive/negative perturbation in the tangential direction. Over time, this perturbation may propagate and lead to unexpected flow behaviour, such as film separation.


A series of carefully tested commits improve parallel consistency, mainly to address the following core routines:
入念にテストされた一連のコミットは、主に以下のコアルーチンに対処するために、並列一貫性を改善した:
  <code>makeLPN
  <code>makeLPN
  makeWeights
  makeWeights
880行目: 889行目:
  makeCorrectionVectors
  makeCorrectionVectors
  makeSkewCorrectionVectors</code>
  makeSkewCorrectionVectors</code>
Source code
ソースコード


* $FOAM_SRC/finiteArea/faMesh/faMeshDemandDrivenData.C
* $FOAM_SRC/finiteArea/faMesh/faMeshDemandDrivenData.C
* $FOAM_SRC/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C
* $FOAM_SRC/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C


Merge request
リクエストのマージ


* Merge request #708
* Merge request #708


=== Improved reconstructParMesh ===
=== reconstructParMesh の改良 ===
The utility reconstructParMesh can reconstruct finite-area ('faMesh') meshes, useful when the finite-area mesh is generated in parallel.
reconstructParMeshユーティリティは、有限面積('faMesh')メッシュを再構築することができ、有限面積メッシュが並列に生成される場合に便利です。 ソースコード
Source code


* $FOAM_UTILITIES/parallelProcessing/reconstructParMesh
* $FOAM_UTILITIES/parallelProcessing/reconstructParMesh


Merge request
リクエストのマージ


* Merge request #711
* Merge request #711


=== Improved distributed tri-surfaces ===
=== 改良された分散トライサーフェス ===
The distributedTriSurfaceMesh can now run with a different decomposition method compared to the rest of the simulation, by specifying a decomposition method in the relevant dictionary, e.g. system/snappyHexMeshDict:
distributedTriSurfaceMeshは、例えばsystem/snappyHexMeshDictのように、関連する辞書で分解方法を指定することで、他のシミュレーションとは異なる分解方法で実行できるようになりました:
  <code>box
  <code>box
  {
  {
911行目: 919行目:
     n                  (2 2 2);
     n                  (2 2 2);
  }</code>
  }</code>
It can optionally run without duplicating triangles by specifying
を指定することで、三角形を複製せずに実行することもできます。
  <code>decomposeUsingBbs  false;</code>
  <code>decomposeUsingBbs  false;</code>
This avoids excessive memory usage, and stores a per-vertex normal and so can be extended to have smooth normals.
これは過剰なメモリ使用を回避し、頂点ごとの法線を保存するので、滑らかな法線を持つように拡張できる。


With both changes we now recover identical results from running non-parallel or parallel on a simple mesh. In the figure below a slice shows the non-parallel mesh as a blue surface with the parallel mesh as red lines.
この2つの変更により、単純なメッシュで非並列または並列を実行しても、同じ結果が得られるようになった。 下の図では、非平行メッシュを青い面で、平行メッシュを赤い線で表しています。


Tutorials
チュートリアル


* $FOAM_TUTORIALS/mesh/snappyHexMesh/distributedTriSurfaceMesh
* $FOAM_TUTORIALS/mesh/snappyHexMesh/distributedTriSurfaceMesh


Source code
ソースコード


* $FOAM_SRC/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H
* $FOAM_SRC/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H


Merge request
リクエストのマージ


* Merge request #720
* Merge request #720


== Usability ==
== ユーザビリティ ==


=== Updated to C++17 ===
=== C++17に更新 ===
The minimum C++ standard has been increased from C++14 to C++17 to help support ongoing GPU developments
現在進行中のGPU開発をサポートするため、C++の最低規格がC++14からC++17に引き上げられた。


* Commit: #44f7a726
* コミット: #44f7a726
* Source: $WM_PROJECT_DIR/wmake/rules
* ソース: $WM_PROJECT_DIR/wmake/rules


=== New tutorial demonstrations ===
=== 新しいチュートリアルのデモンストレーション ===


==== missingCorner ====
==== ミッシングコーナー ====
This is a simple tutorial to showcase various mesh utilities:
これは様々なメッシュ・ユーティリティを紹介するシンプルなチュートリアルです:


* cellDecomposition functionObject to create a tet mesh
* cellDecomposition関数四角形メッシュを作成するオブジェクト
* polyDualMesh to convert the tets to polyhedra
* テットを多面体に変換するpolyDualMesh
* surfaceMeshExtract to create additional pointPatches
* surfaceMeshExtractで追加のポイントパッチを作成する。
* moveDynamicMesh to slightly morph the mesh. The mesh morphing is done using a Laplacian point smoothing ignoring the feature constraints so does a bad job of improving the mesh quality.
* moveDynamicMeshでメッシュを少し変形させる。 メッシュのモーフィングは、特徴制約を無視したラプラシアン点スムージングを使って行われるため、メッシュの品質を向上させるのに悪い働きをします。


Source code
ソースコード


* $FOAM_SRC/functionObjects/field/cellDecomposer
* $FOAM_SRC/functionObjects/field/cellDecomposer
* $FOAM_UTILITIES/mesh/manipulation/polyDualMesh
* $FOAM_UTILITIES/mesh/manipulation/polyDualMesh


Tutorial
チュートリアル


* $FOAM_TUTORIALS/mesh/polyDualMesh/missingCorner
* $FOAM_TUTORIALS/mesh/polyDualMesh/missingCorner


==== damBreakLeakage ====
==== ダム決壊 ====
This is a variant of the damBreak tutorial to showcase using cyclicACMI to control flow. In this tutorial
これはdamBreakチュートリアルの変形で、cyclicACMIを使ってフローをコントロールすることを紹介している。 このチュートリアルでは


* additional (cyclicACMI) baffles block the flow of the liquid
* 追加の(cyclicACMI)バッフルが液体の流れを遮断する。
* at time 0.5s a set of faces at the bottom half of the blockage open
* 時刻0.5秒、閉塞部の下半分の面が開く
* this is done through a cyclicACMI which uses the scale factor to convert from fully uncoupled, i.e. wall, to fully coupled.
* これは、スケールファクターを使用して完全非結合(すなわち壁)から完全結合に変換するcyclicACMIによって行われる。
* the scale is set through a coded Function1 entry in the patch definition in constant/polyMesh/boundary
* スケールはconstant/polyMesh/boundaryのパッチ定義にあるコード化されたFunction1の項目を通して設定されます。
* Initial condition: closed blockage (red)
* 初期状態:閉塞(赤)


Source code
ソースコード


* $FOAM_SRC/OpenFOAM/primitives/functions/Function1/Coded
* $FOAM_SRC/OpenFOAM/primitives/functions/Function1/Coded
* $FOAM_SRC/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPolyPatch
* $FOAM_SRC/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPolyPatch


Tutorial
チュートリアル


* $FOAM_TUTORIALS/multiphase/interFoam/RAS/damBreakLeakage
* $FOAM_TUTORIALS/multiphase/interFoam/RAS/damBreakLeakage


== Community ==
== コミュニティ ==
The release of OpenFOAM v2412 builds upon ongoing efforts to engage the wider OpenFOAM community to unify OpenFOAM developments, acknowledging the efforts of contributions from outside of the core OpenFOAM team.
OpenFOAM v2412のリリースは、OpenFOAMのコアチーム以外からの貢献の努力を認め、OpenFOAMの開発を統一するために、より広いOpenFOAMコミュニティに参加してもらうための継続的な努力の上に成り立っています。


Some developments are integrated directly into the main code base, e.g.
いくつかの開発は、メインのコードベースに直接統合されている。


* Community contribution: Improved adjoint optimisation more...
* 地域貢献: アドジョイント最適化の改良 詳細
* Community contribution: Improved shielding function for SA-DDES turbulence model more...
* 地域貢献: SA-DDES乱流モデルの遮蔽機能を改善 詳細...


If you would like to explore the possibility to collaborate and include your developments, please contact us.
もし、共同開発の可能性を模索し、あなたの開発したものを含めたいとお考えでしたら、ぜひご連絡ください。


=== New contributions to the Turbulence Technical Committee repository ===
=== 乱流専門委員会リポジトリへの新しい投稿 ===
We are pleased to announce the release of the following two repositories under the umbrella of the Turbulence Technical Committee repository:
乱流技術委員会リポジトリ傘下の以下の2つのリポジトリを公開いたします:


* gammaSST : A three-equation transition and turbulence model.
* gammaSST :3方程式遷移と乱流モデル。
* HelicitySpalartAllmaras : Spalart-Allmaras turbulence model with Liu et al.'s helicity correction.
* HelicitySpalartAllmaras : Liuらのヘリシティ補正を用いたSpalart-Allmaras乱流モデル。


Source code
ソースコード


* $FOAM_SRC/$WM_PROJECT_DIR/plugins/turbulence-community
* $FOAM_SRC/$WM_PROJECT_DIR/plugins/turbulence-community


Attribution
帰属


* OpenCFD would like to acknowledge and thank Jiří Fürst, Jeff Defoe, and their colleagues for their valuable contributions and assistance.
* OpenCFDは、Jiří Fürst、Jeff Defoe、そして彼らの同僚たちの貴重な貢献と援助に感謝したい。


=== 謝辞 ===
=== 謝辞 ===

2024年12月28日 (土) 13:04時点における最新版

ESI OpenCFD Release OpenFOAM® v2412

OpenCFDは、OpenFOAM® v2412の2024年12月リリースを発表いたします。 このリリースは、コードの多くの領域にわたってOpenFOAM-v2406の機能を拡張しています。 この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。

OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。 様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージもあります。

  • Ubuntu Linux: Ubuntu 用パッケージインストール (近日公開予定)
  • openSUSE Linux: パッケージインストール (近日公開予定)
  • Redhat Linux variants: パッケージインストール (近日公開予定)
  • apptainer イメージ: dockerhub から入手可能 (近日公開予定)

Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢がある(詳細):

  • Linux用Windowsサブシステムの使用(Ubuntu、openSUSEなどがベース)
  • クロスコンパイルによるネイティブ実行可能ファイル
  • ドッカーのインストール

OpenFOAMのapptainerサポートは、事前に組み立てられたイメージではなく、記述ファイルによって提供されます:

  • パッケージ/コンテナを確認する

Mac OSXユーザーには、ソースからコンパイルするか、コンパイル済みパッケージのDockerコンテナを使用するオプションがある(詳細はこちら)。

アップグレード

  • ユーザー向けのヘルプは、ユーザー・アップグレード・ガイドに記載されています。
  • 開発者向けのヘルプは、開発者向けアップグレードガイドに記載されています。

前処理

createPatchユーティリティの改良

createPatchユーティリティが拡張され、例えばcyclicACMIの作成時に重複した境界面を作成できるようになりました。 これは、外部生成メッシュ間のcyclicACMI接続を作成するために使用できます。

system/createPatchDictのサンプル:

// Patches to create.
patches
(
    {
        //- Master side patch
        name            central_inlet_couple;
        patchInfo
        {
            type            cyclicACMI;
            nonOverlapPatch central_inlet_blockage;
            neighbourPatch  inlet_central_couple;
        }
        constructFrom patches;
        patches (central_inlet);
    }
    {
        //- Blockage
        name            central_inlet_blockage;
        patchInfo
        {
            type            wall;
        }
        constructFrom patches;
        patches (central_inlet);
    }

    {
        //- Slave side patch
        name            inlet_central_couple;
        patchInfo
        {
            type            cyclicACMI;
            nonOverlapPatch inlet_central_blockage;
            neighbourPatch  central_inlet_couple;
        }
        constructFrom patches;
        patches (inlet_couple);
    }
    {
        //- Blockage
        name            inlet_central_blockage;
        patchInfo
        {
            type            wall;
        }
        constructFrom patches;
        patches (inlet_couple);
    }
);

注意:createPatchを実行する前に、作成するcyclicACMIパッチが存在してはならない。

チュートリアル

  • $FOAM_TUTORIALS/mesh/createPatch/TJunctionSwitching_createPatch

ソースコード

  • $FOAM_SRC/utilities/mesh/manipulation/createPatch
  • $FOAM_SRC/utilities/mesh/manipulation/mergeMeshes

リクエストのマージ

  • Merge request #702

snappyHexMeshの改良:スナップの前にレイヤーをバッファリングする。

スナップ前にメッシュにバッファレイヤーを追加できるようになり、スナップアルゴリズムをユーザーが選択できるようになりました。

snappyHexMeshDictの新しいトップレベル・エントリーを使用して、バッファー・レイヤーの追加とメッシュ・モーション機能の使用を選択できるようになりました:

// Type of mesh generation:
//  - castellated (default)
//  - castellatedBufferLayer
type            castellatedBufferLayer;

バッファ層の追加はすべてのメッシュ化されたパッチに適用されます。オプションで、addBufferLayersキーワードを使用してサーフェスごとにオーバーライドできます:

refinementSurfaces
{
    sphere
    {
        // Surface-wise min and max refinement level
        level (1 1);
        // Disable buffer layers
        addBufferLayers false;
    }
}

スナップ時に使用するメッシュ・モーション・ソルバの選択:

snapControls
{
  ..
  solver  displacementPointSmoothing;
  displacementPointSmoothingCoeffs
  {
      // Use laplacian to untangle problem areas
      pointSmoother           laplacian;
      nPointSmootherIter      10;
  }

下の画像は、回転したボックスの外側に追加されたバッファー・セルの単層で、セルはセル・インデックスに従って色分けされている:

2つ目の例は、バッファレイヤーを追加することで、内側と外側の両方の領域を維持しながら、フェイスゾーンにスナップするのに役立つことを示しています。 ここでは、セルは非直交性に従って色付けされている:

バッファレイヤーは(まだ)フィーチャーのエッジを考慮していないことに注意してください。

チュートリアル

  • $FOAM_TUTORIALS/mesh/snappyHexMesh/rotated_block Meshing the outside of a rotated cube.
  • $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_multiRegion Meshing the inside and outside of a sphere.

ソースコード

  • $FOAM_SRC/utilities/mesh/generation/snappyHexMesh

リクエストのマージ

  • Merge request #715

境界条件

pointMeshの境界処理の改善

pointMeshはパッチのリスト(オプション)を持つようになった。 通常の動作は、pointMeshはボリュームの'poly'メッシュと同じパッチのセットを使い、'poly'パッチのポイントで操作します。

ポイントパッチ条件をpolyMesh/pointMesh/boundaryファイルで指定できるようになり、フィーチャーのエッジ、ポイント、内部ポイントにも制約を適用できるようになりました。

チュートリアルのmesh/blockMesh/sphere7は、これを使用して球状のブロックメッシュを立方体に戻す方法を示しています。

このチュートリアルでは、プラグインのポイントスムーサーを使う、新しいdisplacementPointSmoothingモーションソルバーの使用例も紹介します:

  • laplacian : 近隣点の平均位置
  • geometricElementTransform : 最も直交する形状に移動する。

  • 点の移動中に点法線が更新されない
  • ポイントモーションでは、周期的なパッチは現在正しく処理されていません。
  • これらの追加pointPatchは以下によってサポートされる:
    • moveDynamicMesh, subsetMesh
    • decomposePar, reconstructPar, redistributePar
    • some mesh motion solvers

チュートリアル

  • $FOAM_TUTORIALS/mesh/blockMesh/pipe
  • $FOAM_TUTORIALS/mesh/blockMesh/sphere7
  • $FOAM_TUTORIALS/mesh/moveDynamicMesh/badMove
  • $FOAM_TUTORIALS/mesh/moveDynamicMesh/bendJunction
  • $FOAM_TUTORIALS/mesh/moveDynamicMesh/faceZoneBlock

ソースコード

  • $FOAM_SRC/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C

リクエストのマージ

  • Merge request #715

新しいポイントパッチ機能

  • topoSet に patchToPoint が追加されました : pointPatch のすべての点を選択します (patchToFace と faceToPoint を使って polyPatch の点を取得します)。
  • 新しい点境界条件:edgeSlipとpointAttraction(新しいpointMesh境界条件のチュートリアルで使用されます。)
  • symmetryPolyPatch : 平均方位を計算する際に、ゼロサイズの面を無視する。 これは、後の押し出しのために厚さゼロのレイヤーを追加できるようにするための便利な機能です。

数値

新しい融合離散化

新しい融合離散化手法は、中間補間ステップを回避し、面ベースの積分と融合する。 機能は通常の離散化と同等です:

  • gradSchemes : fusedGauss
  • divSchemes : fusedGauss
  • laplacianSchemes : fusedGauss, fusedLeastSquares

これらの方式はメモリ操作を回避するため、パッチ数が多い場合や、GPUがCPUのデータにアクセスするなど、メモリアクセスが遅いノードに有利である。 logs-gauss'がデフォルトの動作、'logs-fused'がドロップイン置換融合スキームを示しています:

これは予備的な作業であり、明示的な操作しか考慮していないこと、また操作の順序が異なるために切り捨て誤差が異なることに注意されたい。

チュートリアル

  • $FOAM_TUTORIALS/ncompressible/simpleFoam/pitzDaily_fused

ソースコード

  • $FOAM_SRC/src/fusedDiscretisation

リクエストのマージ

  • MR!712

新しいGAMGアグロメレーション・キャッシング

メッシュを動かすケースでは、時間ステップごとに(あるいは圧力補正ごとに)自動的に凝集を再構築します。 しかし、ほとんどのメッシュモーションのケースでは、GAMGアグロメレーションテーブルは、再作成が必要になる前に、いくつかの反復のために保持することができます。 ソリッドボディモーションの場合、凝集ロジックは行列係数にのみ依存するため、テーブルを更新する必要はありません。 キャッシュは新しい updateInterval エントリで有効になります。 これは、ソリッドボディシミュレーションでは非常に大きな数値になります。一般的なメッシュモーションでは、予想されるメッシュクーラント数に基づいて設定する必要があります。

p
{
    solver              GAMG;
    ..
    cacheAgglomeration  yes;
    updateInterval      100000;
}

凝集に関する詳細なフィードバックを得るには、system/controlDictのデバッグ・スイッチを有効にしてください。

DebugSwitches
{
    // Print agglomeration
    GAMGAgglomeration   1;
}

faceAreaWeightの最適化

デフォルトの凝集法は、セルを結ぶ面重みの大きさに基づく「セル」の一対一の組み合わせを採用している。 現在、これは軸合わせされたメッシュ上の凝集境界のジッターを避けるために摂動された面面積ベクトルから派生した面重みを使用しています。

updateIntervalが1でない場合は、ガウシアンタイプの離散化との整合性を高めるために、スケーリングされていない、摂動されていない顔の面積の大きさを用いて重みが計算される。 例えば、simpleFoamを10回繰り返したincompressible/pisoFoam/SLES/motorBikeのチュートリアルでは、平均約10%のサイクル削減を示しました:

代数的凝集はupdateIntervalで実行できることに注意。

  • それはcyclicA(C)MIを更新せず、粗いレベルでは古いステンシルを使用するため、補間に失敗する。
  • それは、シミュレーション中に変化する行列係数に基づいているため、固体の運動中であっても一定ではない。

チュートリアル

  • $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller

ソースコード

  • $FOAM_SRC/finiteVolume/fvMatrices/solvers/GAMGSymSolver/GAMGAgglomerations/faceAreaPairGAMGAgglomeration

リクエストのマージ

  • Merge request #707

lduMatrix, lduAddressingの改善

スカラー行列クラス lduMatrix が拡張され、セルベースのアルゴリズムがより使いやすくなりました。 アドレス指定 lduAddressing には、下位アドレス指定を返す lowerCSRAddr アクセサが追加され、loSortAddressing を使った追加的なインダイレクトを避けることができます:

const labelUList& lduAddressing::lowerCSRAddr() const

これは、lowerAddr()アドレッシングからオンザフライで構築される。

さらに、この行列には、対応する lower() 係数の並べ替えを返す lowerCSR() アクセサが追加された:

const scalarField& lduMatrix::lowerCSR() const

アドレス指定が可能かどうかは、hasLowerCSR()関数で確認できる。

使用例は lduMatrix::Amul ルーチンの中にあります:

if (hasLowerCSR())
{
    // Note: lowerCSR constructed from lower if available, upper otherwise
    //       so is handling symmetric()
    const scalar* const __restrict__ lowercsrPtr = lowerCSR().begin();

    for (label cell=0; cell<nCells; cell++)
    {
        scalar& val = ApsiPtr[cell];

        val = diagPtr[cell]*psiPtr[cell];

        // Add lower contributions
        {
            const label start = loStartPtr[cell];
            const label end = loStartPtr[cell+1];

            for (label i = start; i < end; i++)
            {
                const label nbrCell = lcsrPtr[i];
                val += lowercsrPtr[i]*psiPtr[nbrCell];
            }
        }
        // Add upper contributions
        {
            const label start = oStartPtr[cell];
            const label end = oStartPtr[cell+1];

            for (label i = start; i < end; i++)
            {
                const label nbrCell = uPtr[i];
                val += upperPtr[i]*psiPtr[nbrCell];
            }
        }
    }
}

ソースコード

  • $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduAddressing/lduAddressing.H
  • $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H
  • $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C

壁との距離の改善

乱流壁関数などで使用されている壁面近傍距離フィールドが壁面に対して更新され、複数の壁面パッチに面を持つセルの挙動が変更されました。 最近接距離は、セル中心から局所的な壁面、または任意の局所的なエッジまたは点に接続された面までの最小距離として計算されます。

  • これは並列一貫性がない
  • これは一面しか見ない

より一貫した挙動を得るためには、正確な壁面距離法を採用すべきである。

以前の動作(OpenFOAM v2406 以前)は、etc/controlDict またはローカルの system/controlDict の useCombinedWallPatch 情報スイッチを無効にすることで得られます:

OptimisationSwitches
{
    useCombinedWallPatch    0;
}

ソースコード

  • $FOAM_SRC/meshTools/cellDist/cellDistFuncs.C
  • $FOAM_SRC/finiteVolume/fvMesh/wallDist/nearWallDist/nearWallDist.C
  • $FOAM_SRC/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.C
  • $FOAM_SRC/meshTools/cellDist/patchWave/patchDataWave.C
  • $FOAM_SRC/meshTools/cellDist/patchWave/patchWave.C

リクエストのマージ

  • Merge request #700

問題

  • Issue #3215

地域貢献: アドジョイント最適化の改善

OpenFOAM v2412では、アジョイント・ライブラリにいくつかの機能変更が加えられました。 トポロジー最適化の設計変数の初期値を0/alphaフィールドから読み込めるようになり、topoSet/setFieldsユーティリティで簡単に設定できるようになりました。 以前は、0/uniform/topOVarsを通してのみ可能でしたが、これは操作が難しくなっています。

ISQPの数学的最適化問題に追加され、実現可能性を保証するためにMMAに追加された項の乗数('c'と命名)は、関数1で与えられるようになり、最適化ループ全体で操作できるようになりました。 典型的な例としては、実現可能性よりも最適性を重視するために、最初の数サイクルの最適化では小さな値に設定し、徐々に大きくしていきます。

ISQPで近似ヘシアンの減衰を無効にするオプションを追加。 一般的なケースでは、これは避けるべきですが、いくつかのフリンジケースではアルゴリズムを加速させることができます。

チュートリアル

  • $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_10x-init

ソースコード

  • $FOAM_SRC/optimisation/adjointOptimisation

リクエストのマージ

  • Merge request #710

新ゾーンブレンド・スキーム

新しいzoneBlendedスキームにより、ユーザーはフェイスゾーンごとに差分スキームを適用できる。 スキームは辞書形式で設定される:

divSchemes
{
    .
    .
    div(phi,U)      Gauss zoneBlended
    {
        default         defaultScheme;
        faceZone1       scheme1;
        faceZone2       scheme2;
        ...
        faceZoneN       schemeN;
    }
    .
    .
}

デフォルトのエントリーは背景スキームを指定します。追加のスキームをフェイスゾーンごとに設定できます。例えば、スキーム1はフェイスゾーン1に適用され、スキーム2はフェイスゾーン2に適用されます。

ソースコード

  • $FOAM_SRC/finiteVolume/interpolation/surfaceInterpolation/schemes/zoneBlended

ソルバーと物理モデル

地域貢献: SA-DDES乱流モデルの遮蔽機能の改善

DDES(Delayed Detached-Eddy Simulation)モデル[1]は、RANS/LESのハイブリッドアプローチであり、RANSによってすべての付着境界層をモデル化し、LESによって大きく分離した流れ領域をモデル化することを目的としています。 付着境界層内部でのLESモードの起動を防止するために、「遮蔽」機能と呼ばれる追加的なセーフガード機能が実装されています。 残念ながら,標準的な定式化[1]は,細かい格子上で崩壊することがあり,壁せん断応力の低下や,流れの早期剥離につながる可能性がある. これらの現象は、文献ではしばしば "モデル化された応力の枯渇 "や "グリッド誘起剥離 "と呼ばれています。 Deck & Renard [2]は最近、よりロバストな挙動を提供しながら、分離したせん断層でのLESへの迅速な切り替えを可能にする、改良された遮蔽関数を提案しました。 この定式化は、SA-DDESモデルの変形であるZDESモード2(2020)乱流モデル用に開発されました。 図は,後縁が分離した NACA4412 翼周りの流れに対 して,改良された遮蔽機能の利点を示しています. 吸込側のグリッドが流れ方向とスパン方向で強くリファインされているため,標準の遮蔽機能が後退し,流れの剥離が早期に発生している. 一方,改良された遮蔽関数は,吸込側の付着境界層領域全体で RANS モードを保持し,NASA コード CFL3D の参照 RANS とよく一致する.

以下の乱流モデリング機能がv2412リリースに含まれています:

  • Improved shielding function formulation of Deck & Renard [2], implemented for SpalartAllmarasDDES, activated via the new option “shielding” (keyword “standard” selects the standard function [1], “ZDES2020” selects the improved formulation [2]).
  • An additional option “usefP2” activates a more robust shielding mode for the Deck & Renard formulation (detailed in equation A.9 of [2]).

使用例

simulationType LES;
LES
{
    LESModel         SpalartAllmarasDDES;
    SpalartAllmarasDDESCoeffs
    {
        // optional keywords for shielding function
        shielding    ZDES2020;    // default: standard
        usefP2       false;       // default: false
    }

    delta            maxDeltaxyz;

    turbulence       on;
    printCoeffs      on;
}

2]で示された定式化はSAベースのDDESに特化して導き出されたものであるため、改善された遮蔽関数はkOmegaSSTDDESモデルには実装されていないことに注意してください。

チュートリアル

  • $FOAM_TUTORIALS/incompressible/pimpleFoam/LES/NACA4412

帰属

  • The improved shielding function of Deck & Renard (2020) [2] was implemented by Upstream CFD GmbH and integrated into OpenFOAM in collaboration with ESI-UK Ltd with funding by Volkswagen AG.

参考文献

  • [1] P. Spalart, S. Deck, M. Shur, K. Squires, M. Strelets, and A. Travin. A new version of detached-eddy simulation, resistant to ambiguous grid densities. Theoretical and Computational Fluid Dynamics, 20(3):181–195, 2006.
  • [2] Deck, S., & Renard, N. (2020). Towards an enhanced protection of attached boundary layers in hybrid RANS/LES methods. Journal of Computational Physics, vol. 400, pp. 108970, 2020.

改良されたラグランジュ射出モデル:コーンノズル・インジェクション(coneNozzleInjection

このリリースでは、coneNozzleInjectionモデルに2つのマイナーな改良が加えられました:

  • 粒子をディスク全体に角度間隔で均一に分布させる新しい射出方法;
  • 粒子噴射にインジェクターの推定速度を含める。 静的インジェクタの入出力動作に変更はありませんが、移動インジェクタから噴射される粒子の速度にインジェクタの速度が含まれるようになりました。

最小限の使用例は以下の通り:

injectionModels
{
    model1
    {
        type    coneNozzleInjection;

        ...

        // The new injection method: discSegments
        injectionMethod         discSegments;
        nInjectors              10;
        initialInjectorDir      (1 0 0);
    }
}

ソースコード

  • $FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H

リクエストのマージ

  • Merge request #719

改良されたソリッドボディモーション機能:tabulated6DoFMotion

表6DoFMotionモデルに線形補間オプションが追加されました。 最小限の使用例を以下に示します:

solidBodyMotionFunction tabulated6DoFMotion;

interpolationScheme     linear;  // spline;

ソースコード

  • $FOAM_SRC/meshTools/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.H

新しい有限領域のフレームワーク: 膜分離モデル

有限面積ベースのフィルム曲率分離モデルが更新され、シャープエッジ用の新しいフィルム分離モデルが追加された。 これらの更新により、さまざまな幾何学的条件や流動条件下での膜分離予測の精度と柔軟性が向上しました。

主な変更点と追加点

  • オーウェン-ライリーモデル:
    • 既存のcurvatureSeparationモデルは、Owen & Ryley (1983)の研究に基づき、OwenRyleyModelとして再実装された。 このモデルは次のように仮定しています:
      • フィルムが表面から剥がれると、すぐに細かい霧状の液滴になる。 その結果、液体が凝集塊として離脱するシナリオを正確に表現できない可能性がある。
      • フィルムは一定の半径を持つ丸みを帯びたコーナーの周囲を流れるため、曲率が明確でない鋭角のコーナーでは適用が制限される可能性がある。
      • 膜厚は1e-4 mより薄く、粘性効果と表面擾乱は無視される。
      • 均一な膜速度と膜厚。
      • 分離基準は明示的に定式化されるのではなく、モデルの仮定に基づいて推測される。
  • シャープエッジのための新しいフィルム分離モデル:
    • 新しいモデルFriedrichModelを導入し、シャープエッジでの膜分離特性を計算し、完全膜分離と部分膜分離の両方のシナリオをカバーする。 このモデルは、Friedrichら(2008)とZhangら(2018)の研究に基づいている:
      • Friedrichら(2008):
        • 剥離点における制御体積内の力の平衡に根ざした剥離基準を開発。
        • 最大膜厚を1e-4 mと仮定。
        • 表面張力、重力、フィルムの慣性を考慮する。
        • 早期破裂を予測することはできるが、比較的信頼できることが知られている。
        • ANSYS Forte 18.2 に実装されている分離メソッドとして機能します。
      • Zhangら(2018):
        • 質量分率基準を導入することで、Friedrichらのモデルを強化した。 細胞内の膜全体が同時に剥離すると仮定するモデルとは異なり、Zhangらのアプローチは、これらの基準に基づいて膜の一部のみを剥離する。 これにより、フィルムが実際にどの程度剥離するかについて、より現実的な予測が可能になった。

包括的な直列および並列テストケースは、ロバストなコーナーおよび分離同定を確実にするために実施され、流れ方向に対して様々な形状や向きの鋭角エッジを持つケース、複数の空間分解能および並列化構成を含む。

その結果、ユーザーは、メッシュの複雑さや計算設定に関係なく、膜分離現象をシミュレーションする際の一貫性と信頼性の向上を期待することができます。

最小限の使用例は以下の通り:

injectionModels
{
    filmSeparation
}

filmSeparationCoeffs
{
    model              OwenRyley;
    definedPatchRadii  0;
    minInvR1           0;
    deltaByR1Min       0;
}

ソースコード

  • $FOAM_SRC/regionFaModels/liquidFilm/subModels/kinematic/injectionModel/filmSeparation/filmSeparationModels

チュートリアル

  • $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/pitzDailyWithSprinklers

リクエストのマージ

  • Merge request #714

simpleFoamの改良:新しいdynamicMeshのサポート

simpleFoamはpimpleFoamと同様にdynamicFvMeshをサポートするようになりました。 constant/dynamicMeshDictがあればそれを読み込み、繰り返しごとにupdate()ルーチンを呼び出します。 これにより、例えば、動的なメッシュのリファインメント/アンリファインメントを用いた定常シミュレーションが可能になります。

詳細情報

  • Issue #3269

後処理

新しいレポート作成

foamReport関数オブジェクトは、OpenFOAMの実行データを収集するためのテンプレートベースのテキスト置換システムを提供します。 ユーザーが提供するテンプレートファイルは、マークダウン(.md)、ウェブ(.html)、ラテックス(.tex)などのプレーンテキストファイルの形式をとることができます。 ダブルハンドル構文テンプレート:ENTRYを使用して提供された項目は置換されます(大文字と小文字は区別されません)。 OF_で始まる一般的な組み込みエントリのセットが提供されます。

  • OF_HOST: ホストマシン名
  • OF_CASE_NAME: ケース名
  • OF_API: OpenFOAM APIレベル
  • OF_DATE_START: ジョブ開始日
  • OF_CASE_PATH: ケースへのファイルパス
  • ...

組み込みキーとユーザー提供キーの完全なセットは、debugKeysエントリーを使用して書き込むことができる。 ユーザー定義の置換は辞書形式でリストされ、置換モデルには以下が含まれる:

  • fileRegEx : ファイルからの正規表現
  • functionObjectValue : 関数オブジェクトの結果を取り出す
  • dictionaryValue : 辞書からの値 - ファイルベースまたはレジストリ検索から
  • environmentVariable : キーワードを環境変数に置き換える
  • userValue : キーワードをユーザが指定した文字列に置き換える:

マークダウン・テンプレートに基づく使用例:

foamReport1
{
    // Mandatory entries (unmodifiable)
    type            foamReport;
    libs            (utilityFunctionObjects);

    template        "/myReportTemplate.md";

    substitutions
    {
        divSchemes1
        {
            type        dictionaryValue;
            object      fvSchemes;

            entries
            {
                divSchemes      "divSchemes";
            }
        }
        fvSolution1
        {
            type        dictionaryValue;
            path        "/fvSolution";

            entries
            {
                solver_p        "solvers/p/solver";
                solver_p_tol    "solvers/p/tolerance";
                solver_p_reltol "solvers/p/relTol";
                solver_U        "solvers/U/solver";
                solver_U_tol    "solvers/U/tolerance";
                solver_U_reltol "solvers/U/relTol";
            }
        }
        controlDict1
        {
            type        dictionaryValue;
            path        "/controlDict";

            entries
            {
                initial_deltaT       "deltaT";
            }
        }
        continuityErrors
        {
            type        functionObjectValue;
            functionObject continuityError1;

            entries
            {
                cont_error_local    local;
                cont_error_global   global;
                cont_error_cumulative cumulative;
            }
        }
    }

    // Optional entries (runtime modifiable)

    // Inherited entries
    ...
}

マークダウン・ベースのテンプレート・ファイルの例:

# {{OF_EXECUTABLE}} : {{OF_CASE_NAME}} tutorial

- Case: : {{OF_CASE_PATH}}
- Submission:  {{OF_CLOCK_START}} on {{OF_DATE_START}}
- Report time:  {{OF_CLOCK_NOW}} on {{OF_DATE_NOW}}

---


 
 ## Run information


 | Property       | Value              |
 |----------------|--------------------|
 | Host           | {{OF_HOST}}        |
 | Processors     | {{OF_NPROCS}}      |
 | Time steps     | {{OF_TIME_INDEX}}  |
 | Initial deltaT | {{initial_deltaT}} |
 | Current deltaT | {{OF_TIME_DELTAT}} |
 | Execution time | {{executionTime}}  |

---


 
 ## OpenFOAM information


 | Property       | Value              |
 |----------------|--------------------|
 | Version        | {{OF_VERSION}}     |
 | API            | {{OF_API}}         |
 | Patch          | {{OF_PATCH}}       |
 | Build          | {{OF_BUILD}}       |
 | Architecture   | {{OF_BUILD_ARCH}}  |

---


 
 ## Mesh statistics


 | Property          | Value                |
 |-------------------|----------------------|
 | Bounds            | {{OF_MESH_BOUNDS_MIN}}{{OF_MESH_BOUNDS_MAX}} |
 | Number of cells   | {{OF_MESH_NCELLS}}   |
 | Number of faces   | {{OF_MESH_NFACES}}   |
 | Number of points  | {{OF_MESH_NPOINTS}}  |
 | Number of patches | {{OF_MESH_NPATCHES}} |

---


 
 ## Linear solvers


 | Property | Value          | tolerance(rel)   | Tolerance(abs)      |
 |----------|----------------|------------------|---------------------|
 | p        | `{{solver_p}}` | {{solver_p_tol}} | {{solver_p_reltol}} |
 | U        | `{{solver_U}}` | {{solver_u_tol}} | {{solver_u_reltol}} |

---


 
 ## Numerical scehemes

The chosen divergence schemes comprised:


 
 mmer547 (トーク)
 {{divSchemes}}
 mmer547 (トーク)

---


 
 ## Graphs

Residuals


 
 ![]({{OF_CASE_PATH}}/postProcessing/residualGraph1/{{OF_TIME}}/residualGraph1.svg)

---


 
 ## Results

Forces


 
 ![]({{OF_CASE_PATH}}/postProcessing/forceCoeffsGraph1/{{OF_TIME}}/forceCoeffsGraph1.svg)

---

ソースコード

  • $FOAM_SRC/functionObjects/utilities/foamReport

チュートリアル

  • $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike

リクエストのマージ

  • Merge request #716

新しいグラフ生成

graphFunctionObjectは、ユーザーが関数オブジェクトの結果値のSVGグラフを生成することを可能にします。例えば、進化の残差や、力係数のような削減されたデータを表示します。

最小限の例を以下に示す:

// Generate the result values
solverInfo1
{
    type            solverInfo;
    libs            (utilityFunctionObjects);
    fields          (U p);
}

// Describe the graph
residualGraph
{
    // Mandatory entries
    libs            (utilityFunctionObjects);

    functions
    {
        //entry
        //{
        //    // Mandatory entries
        //    object      ;
        //    entry       ;
        //
        //    // Optional entries
        //    title       ;      // Default: take from dict name
        //    colour      ; // labels in range 0-255 (255 0 0)
        //    dashes      ;   // (4 1 1)
        //}
        Ux
        {
            object      solverInfo1;
            entry       Ux_initial;
        }
        Uy
        {
            object      solverInfo1;
            entry       Uy_initial;
        }
        Uz
        {
            object      solverInfo1;
            entry       Uz_initial;
        }
        p
        {
            object      solverInfo1;
            entry       p_initial;
        }
    }

    // Optional entries
    //xMin            ;
    //xMax            ;
    //yMin            ;
    //yMax            ;
    //xlabel          ;  // "Iteration";
    //ylabel          ;  // "log10(Initial residual)";
    //width           ;
    //height          ;
    //strokeWidth     ;
    //logScaleX       ;
    //logScaleY       ;
    //drawGrid        ;

    // Inherited entries
    //...
}

ソースコード

  • $FOAM_SRC/functionObjects/utilities/graphFunctionObject

チュートリアル

  • $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike

新しい有限領域関数オブジェクト:surfaceCourantNumber

新しい有限面積関数オブジェクトsurfaceCourantNumberは、有限面積の面中心で表面のクーラント数フィールドを計算します。 これは、liquidFilmFoamソルバーで使用されているような、エッジ中心でクーラント数を計算するアプローチからの概念的な転換を意味します。 面中心でクーラント数を評価することにより、surfaceCourantNumberは、より局所的で、より正確な表面ベースの流れ解析の指標を提供することができます。

最小限の使用例は以下の通り:

surfaceCourantNumber1
{
    // Mandatory entries
    type        surfaceCourantNumber;
    libs        (regionFaModels);

    // Optional entries
    area        <word>;
    result      <word>;
    phis        <word>;
    rho         <word>;

    // Inherited entries
    ...
}

ソースコード

  • $FOAM_SRC/regionFaModels/functionObjects/surfaceCourantNumber/surfaceCourantNumber.H

チュートリアル

  • $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder

リクエストのマージ

  • Merge request #706

ソルバー関数オブジェクトの改良 アウターループ収束チェック

ソルバー関数オブジェクト(scalarTransport、energyTransport、electricPotential)に外部ループの収束チェック機能が追加されました。 この改良により、収束が達成された時点で不要なループを排除することで、計算オーバーヘッドを削減し、解法プロセスを合理化することができます。 最小限の使用例を以下に示します:

scalarTransport1
{
    // Optional entries
    tolerance    <scalar>;
    ...
}

ソースコード

  • $FOAM_SRC/functionObjects/solvers/scalarTransport/scalarTransport.H
  • $FOAM_SRC/functionObjects/solvers/energyTransport/energyTransport.H
  • $FOAM_SRC/functionObjects/solvers/electricPotential/electricPotential.H

リクエストのマージ

  • Merge request #699

パラレル

ノンブロッキング・エクスチェンジ(NBX)の改善

OpenFOAM-v2306では、実験的な「ノンブロッキング・コンセンサス交換」(NBX)オプションが導入されました。 8192コアに複数のcyclicAMIがあり、(etc/controlDictまたはローカルシステム/controlDictに)エントリがある場合です:

OptimisationSwitches
{
    // Additional PstreamBuffers tuning parameters (experimental)
    //    0 : (legacy PEX)
    //        * all-to-all for buffer sizes [legacy approach]
    //        * point-to-point for contents
    //    1 : (hybrid PEX)
    //        * NBX for buffer sizes [new approach]
    //        * point-to-point for contents
    pbufs.tuning    1;
}

以下の時間帯を提供:

NBX Time (s)
No 28k
Yes 18k

NBXは、「受信と消費」の順序が「送信の順序」と同じであることを保証していない。 これは、cyclicAMIのジオメトリなど、長いメッセージではより敏感であり、一意の「タグ」(デフォルトのPstream::msgType()ではない)を確保するように注意しなければならない。

ソースコード

  • $FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation

リクエストのマージ

  • Merge request #704

改良された有限領域フレームワーク

いくつかの有限領域フレームワークルーチンは、歪度や非直交性に関係なく、平面および非平面有限領域メッシュに影響を与え、並列処理時に一貫性のない挙動を示します。 これらの不整合は、主に内部エッジとプロセッサエッジに適用されるアルゴリズムの違いから生じています。 例えば、非平面有限面積メッシュのコーナーエッジが2つのプロセッサ間で共有されている場合、接線方向に微妙な正負の摂動が生じることがあります。 この摂動は時間の経過とともに伝播し、膜分離のような予期せぬ流れ挙動を引き起こす可能性があります。

入念にテストされた一連のコミットは、主に以下のコアルーチンに対処するために、並列一貫性を改善した:

makeLPN
makeWeights
makeDeltaCoeffs
makeCorrectionVectors
makeSkewCorrectionVectors

ソースコード

  • $FOAM_SRC/finiteArea/faMesh/faMeshDemandDrivenData.C
  • $FOAM_SRC/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C

リクエストのマージ

  • Merge request #708

reconstructParMesh の改良

reconstructParMeshユーティリティは、有限面積('faMesh')メッシュを再構築することができ、有限面積メッシュが並列に生成される場合に便利です。 ソースコード

  • $FOAM_UTILITIES/parallelProcessing/reconstructParMesh

リクエストのマージ

  • Merge request #711

改良された分散トライサーフェス

distributedTriSurfaceMeshは、例えばsystem/snappyHexMeshDictのように、関連する辞書で分解方法を指定することで、他のシミュレーションとは異なる分解方法で実行できるようになりました:

box
{
    file "box.obj";
    type distributedTriSurfaceMesh;

    // Override the decomposition method
    numberOfSubdomains  8;
    method              hierarchical;
    n                   (2 2 2);
}

を指定することで、三角形を複製せずに実行することもできます。

decomposeUsingBbs   false;

これは過剰なメモリ使用を回避し、頂点ごとの法線を保存するので、滑らかな法線を持つように拡張できる。

この2つの変更により、単純なメッシュで非並列または並列を実行しても、同じ結果が得られるようになった。 下の図では、非平行メッシュを青い面で、平行メッシュを赤い線で表しています。

チュートリアル

  • $FOAM_TUTORIALS/mesh/snappyHexMesh/distributedTriSurfaceMesh

ソースコード

  • $FOAM_SRC/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H

リクエストのマージ

  • Merge request #720

ユーザビリティ

C++17に更新

現在進行中のGPU開発をサポートするため、C++の最低規格がC++14からC++17に引き上げられた。

  • コミット: #44f7a726
  • ソース: $WM_PROJECT_DIR/wmake/rules

新しいチュートリアルのデモンストレーション

ミッシングコーナー

これは様々なメッシュ・ユーティリティを紹介するシンプルなチュートリアルです:

  • cellDecomposition関数四角形メッシュを作成するオブジェクト
  • テットを多面体に変換するpolyDualMesh
  • surfaceMeshExtractで追加のポイントパッチを作成する。
  • moveDynamicMeshでメッシュを少し変形させる。 メッシュのモーフィングは、特徴制約を無視したラプラシアン点スムージングを使って行われるため、メッシュの品質を向上させるのに悪い働きをします。

ソースコード

  • $FOAM_SRC/functionObjects/field/cellDecomposer
  • $FOAM_UTILITIES/mesh/manipulation/polyDualMesh

チュートリアル

  • $FOAM_TUTORIALS/mesh/polyDualMesh/missingCorner

ダム決壊

これはdamBreakチュートリアルの変形で、cyclicACMIを使ってフローをコントロールすることを紹介している。 このチュートリアルでは

  • 追加の(cyclicACMI)バッフルが液体の流れを遮断する。
  • 時刻0.5秒、閉塞部の下半分の面が開く
  • これは、スケールファクターを使用して完全非結合(すなわち壁)から完全結合に変換するcyclicACMIによって行われる。
  • スケールはconstant/polyMesh/boundaryのパッチ定義にあるコード化されたFunction1の項目を通して設定されます。
  • 初期状態:閉塞(赤)

ソースコード

  • $FOAM_SRC/OpenFOAM/primitives/functions/Function1/Coded
  • $FOAM_SRC/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPolyPatch

チュートリアル

  • $FOAM_TUTORIALS/multiphase/interFoam/RAS/damBreakLeakage

コミュニティ

OpenFOAM v2412のリリースは、OpenFOAMのコアチーム以外からの貢献の努力を認め、OpenFOAMの開発を統一するために、より広いOpenFOAMコミュニティに参加してもらうための継続的な努力の上に成り立っています。

いくつかの開発は、メインのコードベースに直接統合されている。

  • 地域貢献: アドジョイント最適化の改良 詳細
  • 地域貢献: SA-DDES乱流モデルの遮蔽機能を改善 詳細...

もし、共同開発の可能性を模索し、あなたの開発したものを含めたいとお考えでしたら、ぜひご連絡ください。

乱流専門委員会リポジトリへの新しい投稿

乱流技術委員会リポジトリ傘下の以下の2つのリポジトリを公開いたします:

  • gammaSST :3方程式遷移と乱流モデル。
  • HelicitySpalartAllmaras : Liuらのヘリシティ補正を用いたSpalart-Allmaras乱流モデル。

ソースコード

  • $FOAM_SRC/$WM_PROJECT_DIR/plugins/turbulence-community

帰属

  • OpenCFDは、Jiří Fürst、Jeff Defoe、そして彼らの同僚たちの貴重な貢献と援助に感謝したい。

謝辞

謝辞

OpenFOAMに貢献してくれた以下の方々に感謝します。

特別感謝

  • Johan Rønby Pedersen: マルチフェーズフレームワークの並列化に貢献
  • マーカス・ノードランド:流体-多孔質界面のモデリングに関する技術的な議論に協力してくれている。

課題追跡への貢献

  • ilyapopov (Ilya Popov) リポジトリ内の設定ファイルの迷子? GL#3192
  • carlo.fiorina (carlo fiorina) v2406 で READ_IF_PRESENT の動作に一貫性がない GL#3193
  • xpqiu (xpqiu) SPDP モードで実行するとソルバがクラッシュする GL#3194
  • gng015 (gng) reconstructParMesh がバイナリでメッシュが大きすぎる場合,メッシュの再構築でスタックする GL#3196
  • stefano.garbin (Stefano Garbin) OF2406 で CFMESH 実行ファイルが見つからない GL#3198
  • duyquang.tdm.bd (Quang Nguyen) OpenFOAM-v2406 での ccmToFoam のクロスコンパイル時のエラー GL#3199
  • ChrisSessler (Christian Sessler) multiComponentMixture と組み合わせた hConst がすべての参照エンタルピーに最初の種の Tref を使用する Href GL#3200
  • ChennaK85 (Chennakesava Kadapa) sixDoFRigidBody の Newmark および Crank-Nicolson スキームの問題 GL#3202
  • santiagomarquezd (Santiago Marquez Damian) 3 次元未満でテンソルの球面部分が間違って計算される GL#3203
  • DL (David Ludlow) overPimpleDyMFoam と v2406 における kOmegaSST 分割の不具合 GL#3204
  • bPaillard (Benoit Paillard) オーバーセットチュートリアルにおける圧力変動 GL#3207
  • mzy (Zeyao Ma) icoReactingMultiphaseInterFoam V2206 で凝固問題を解くと固相が常に動いてしまう GL#3208
  • zzphub (Zhipeng Zhang) 2306 の debian12 ソースビルドに失敗 GL#3210
  • Charlfmare (Charl Mare) SwirlFanVelocity が新しい OF バージョンで動作しない GL#3211
  • lizhisongsjtu (zhisong li) bug: solitary wave - McCowan and Grimshaw GL#3212
  • daniel.jasinski (Daniel) buoyantSimpleFoam の圧力制御の欠落 GL#3213
  • pferro (Paulin FERRO) solidificationMeltingSource がバグっぽい GL#3214
  • rbonin (Rémi Bonin) precompiled OpenFOAM (v2406 / Windows 10) で表面膜を使用すると reactingParcelFoam がクラッシュする GL#3216
  • takuya (takuya yamamoto) blockMeshDict の project 関数のチュートリアルの記述が正しくない GL#3217
  • snaka (Shinji Nakagawa) foamMonitor が Gnuplot バージョン 6 の 'reread' コマンドの非推奨のためにグラフの更新に失敗する GL#3219
  • ilyapopov (Ilya Popov) energyTransport が dynamicRefineFvMesh と組み合わせて動作しない GL#3221
  • ntilton (Nils Tilton) fixedProfile 条件が最後のタイムステップからシミュレーションを再開しない GL#3223
  • porori (takashi suzuki) diffusionGasEvaporation: 例題の使い方とチュートリアルが不適切 <= アントワーヌ方程式の定義が一般的でない(第2項の符号が逆). GL#3224
  • raphalace (Raphael Aranha) SymmetryPlane と ABL シミュレーションの不具合 GL#3226
  • porori (takashi suzuki) snappyHexMesh v2012 以降で、サーフェスがサイクリックタイプの境界に接続されている場合、サーフェスレイヤーを追加できない。 GL#3227
  • Skolo (Robert) wallShearStress, yPlus の入力フィールドを指定できるようにした GL#3228
  • flex99 (Felix Burger) メッシュとフィールドをインポートする際の vtkUnstructuredToFoam エラー GL#3230
  • acassinelli (Andrea Cassinelli) v2406 が v2312 より最大 ~3% 遅くなった GL#3231
  • croquemadame (Juan Salazar) 後処理のためにフォームファイルのサーフェスフォーマットをディスクから指定の場所に読み込むクラス (foamSurfaceReader) GL#3232
  • gerlero (Gabriel Gerlero) CGAL 6 との互換性 GL#3234
  • xuegy (Guanyang Xue) SolidificationMeltingSource の異なる液相線と固相線 GL#3235
  • gerlero (Gabriel Gerlero) dl.openfoam.comがGitHub Actionsからのリクエストを拒否している GL#3236
  • cthorenz (Carsten Thorenz) interFoam: 可変密度乱流モデル使用時のせん断応力計算が正しくない / 動作しない GL#3237
  • mfikrikasim (Mohd Fikri Kasim) OpenFoam v2306 - SnappyHexMesh の問題 GL#3239
  • hikassem (Hassan Kassem) ConeNozzleInjection が均一でない GL#3240
  • jczhang07 (Junchao Zhang) "openfoam/etc/bashrc" が非常に遅い GL#3245
  • jczhang07 (Junchao Zhang) Icx コンパイラで `pthread_create' への未定義参照のリンクエラー GL#3251
  • djarecki (Dominic Jarecki) EASY FIX: アクティブ熱物理モデルに線形 EOS を含める GL#3252
  • jczhang07 (Junchao Zhang) "petscFoam" を未定義のシンボルでロードできなかった GL#3253
  • richardt (Richard Tribess) BUG: AMR および collisionModel pairCollision でラグランジアンソルバーを実行する際に storeGlobalPositions が呼び出されない GL#3256
  • hungnguyenphd (Quoc Hung Nguyen) sphereDrag が非常に小さい粒子サイズで動作しない GL#3257
  • rbonin (Rémi Bonin) 太陽計算機が 24 時間以上の実行時間で間違った太陽方向を提供する GL#3258
  • jczhang07 (Junchao Zhang) '-fp-model precise は -fp-model=precise であるべき GL#3259
  • porori (takashi suzuki) interCondensatingEvaporatingFoam with InterfaceHeatResistance モデルが蒸発による体積変化を適切に評価しない GL#3261
  • licg1981 (CHENGGONG LI) foamInstallationTest が gcc/g++ のバージョンを読み込めない GL#3263
  • lizhisongsjtu (zhisong li) of2206: vectorCodedSource が動作しない。 GL#3264
  • cibanez (Cristóbal Ibáñez) dynamicMotionSolverFvMeshMAMI の再実装 GL#3265
  • cthorenz (Carsten Thorenz) snappyHexMesh: レイヤー追加処理でパッチ形状が破壊されることがある GL#3270
  • jczhang07 (Junchao Zhang) RPATH リンクの失敗 GL#3274
  • janga (Jan Gärtner) v2406 における boundaryInternalField() のコンパイルエラー GL#3277
  • johan_roenby (Johan Roenby) BUG: plicRDF が周期的なパッチを越えて正常に動作しない GL#3279
  • haampie (Harmen Stoppels) stubs サブディレクトリへの rpath が見つからない GL#3283
  • sreplogl (Scott Replogle) マスターの初期クローンは成功したが、無効なパスのためチェックアウトに失敗 GL#3284
  • janga (Jan Gärtner) Parcels の origProcId の命名を統一する GL#3287

会社概要

OpenFOAMは、ESI-OpenCFDのコアチームによって制作されています。

  • Andrew Heather
  • Mattijs Janssens
  • Mark Olesen
  • Prashant Sonakar
  • Pawan Ghildiyal
  • Kutalmış Berçin
  • Matej Forman
  • Chiara Pesci
  • Martin Lichtmes
  • Jiri Polansky
  • Ann Ronchetti
  • Fred Mendonça
  • Swapnil Salokhe

グローバルESIチームからの幅広いサポート

  • ESI Group (GmbH)
  • ESI Group (ESI Software (India) Private Limited)
  • ESI Group (North America)
  • ESI Group (Nihon ESI)
  • ESI webteam

次からの寄付もある。

  • Marian Fuchs: Upstream CFD GmbH
  • Vaggelis Papoutsis: PCOpt/NTUA and FOSS GP
  • The OpenFOAM Community