<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.opencae.or.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmer547</id>
	<title>オープンCAEWiki  OpenCAE Wiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opencae.or.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmer547"/>
	<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Mmer547"/>
	<updated>2026-09-25T03:09:24Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.37.6</generator>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2606_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=884</id>
		<title>OpenFOAM v2606 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2606_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=884"/>
		<updated>2026-08-10T23:56:19Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「=OpenFOAM® v2606 新リリース= OpenFOAM Teamは、2026年6月リリースのOpenFOAM® v2606を発表します。  今回のリリースでは、[https://www.openfoam.com/news/main-news/openfoam-v2512 OpenFOAM-v2512]の機能が、コードのさまざまな領域にわたって拡張されています。  新機能には、Keysightの顧客がスポンサーとなった開発、社内資金による開発、および[https://www.openfoam.com/governance/overview…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=OpenFOAM® v2606 新リリース=&lt;br /&gt;
OpenFOAM Teamは、2026年6月リリースのOpenFOAM® v2606を発表します。&lt;br /&gt;
&lt;br /&gt;
今回のリリースでは、[https://www.openfoam.com/news/main-news/openfoam-v2512 OpenFOAM-v2512]の機能が、コードのさまざまな領域にわたって拡張されています。&lt;br /&gt;
&lt;br /&gt;
新機能には、Keysightの顧客がスポンサーとなった開発、社内資金による開発、および[https://www.openfoam.com/governance/overview OpenFOAM Community]から提供された機能や変更の統合が含まれています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはKeysightによって[http://www.gnu.org/licenses/quick-guide-gplv3.html GPL License]の下で配布されています。&lt;br /&gt;
&lt;br /&gt;
さまざまなLinuxおよびその他のPOSIX system上でcompile可能な[https://gitlab.com/openfoam/core/openfoam/-/blob/master/doc/Build.md source code package]に加え、今回のリリースでは複数の[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled pre-compiled binary package]も提供されています。&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/debian Ubuntu Linux]: Ubuntu 24.04（LTS）、22.04（LTS）など向けのpackage installation&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/suse openSUSE Linux]: Leap 16.0、15.7、15.6向けのpackage installation&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/redhat Red Hat Linux variants]: EPEL 9、Fedora 41、42向けのpackage installation&lt;br /&gt;
*[https://hub.docker.com/r/opencfd/openfoam-dev/tags apptainer images]: Docker Hubから`openfoam-dev:2606-apptainer`および`openfoam-dev:apptainer`として利用可能&lt;br /&gt;
Windowsユーザーには、pre-compiled packageを利用するための3つの選択肢があります（[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/windows 詳細情報]）。&lt;br /&gt;
*Windows Subsystem for Linux（Ubuntu、openSUSEなどをベースとした環境）を使用&lt;br /&gt;
*Cross-compilationによるnative executableを使用&lt;br /&gt;
*Docker installationを使用&lt;br /&gt;
OpenFOAMのApptainer supportは、事前に構築されたimageではなくdescription fileによって提供されます。&lt;br /&gt;
*[https://gitlab.com/openfoam/packaging/containers packaging/containers]を参照してください。&lt;br /&gt;
macOSユーザーは、sourceからcompileするか、pre-compiled package用のDocker containerを使用できます（[https://gitlab.com/openfoam/core/openfoam/-/wikis/building#darwin-mac-os 詳細情報]）。&lt;br /&gt;
=Pre-processing=&lt;br /&gt;
==distributedTriSurfaceMeshの更新==&lt;br /&gt;
今回のリリースでは、`snappyHexMesh`のgeometry typeである`distributedTriSurfaceMesh`に、2つの有用な機能強化が加えられました。&lt;br /&gt;
&lt;br /&gt;
最初の変更では、exclusion bounding boxが導入されました。&lt;br /&gt;
&lt;br /&gt;
このutilityは、保持しているすべてのtriangleを包含するbounding box（`exclusionBb`）を計算するようになりました。このbounding box内に完全に含まれるqueryについては、geometryをlocalで解決できるため、過剰なremote testを回避できます。&lt;br /&gt;
&lt;br /&gt;
この最適化はdefaultで有効になっていますが、必要に応じて無効にできます。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
box&lt;br /&gt;
{&lt;br /&gt;
    file &amp;quot;box.obj&amp;quot;;&lt;br /&gt;
    type distributedTriSurfaceMesh;&lt;br /&gt;
&lt;br /&gt;
    // Do not calculate exclusion bounding box&lt;br /&gt;
    exclusionBb         false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;2つ目の変更では、geometryを選択したprocessorのみに読み込みながら、`distributedTriSurfaceMesh`を`triSurfaceMesh`とまったく同じように動作させることが可能になりました。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
box&lt;br /&gt;
{&lt;br /&gt;
    file &amp;quot;box.obj&amp;quot;;&lt;br /&gt;
    type distributedTriSurfaceMesh;&lt;br /&gt;
&lt;br /&gt;
    // Send whole surface to master of each node&lt;br /&gt;
    distributionType    nodeMaster;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この設定では、追加の通信が必要になり、geometryを保持するprocessorがbottleneckとなる可能性がある代わりに、nodeごとのmemory使用量を削減できます。&lt;br /&gt;
&lt;br /&gt;
Defaultでは、hostnameに基づいて各nodeに1つのmaster processorが指定されます。&lt;br /&gt;
&lt;br /&gt;
必要に応じて、`nProcessorsPerMaster`設定を使用することで、1つのmasterを共有するprocessor数を調整できます。&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*`$FOAM_TUTORIALS/mesh/snappyHexMesh/distributedTriSurfaceMesh`&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H`&lt;br /&gt;
===Merge request===&lt;br /&gt;
*MR!844&lt;br /&gt;
==splitMeshRegions utilityの改良==&lt;br /&gt;
`splitMeshRegions` utilityに2つの新しいoptionが追加されました。&lt;br /&gt;
===customRegionNames===&lt;br /&gt;
`splitMeshRegions`で`combineZones` optionを使用すると、複数のcell zoneをまとめて1つのregionにできます。&lt;br /&gt;
&lt;br /&gt;
例えば、`zoneA`、`zoneB`、`zoneC`、`zoneD`というzoneがある場合、`combineZones` optionを使用して、`zoneA`と`zoneB`を1つのregionに、`zoneC`と`zoneD`を別のregionにまとめることができます。&lt;br /&gt;
&lt;br /&gt;
しかし、結合後のregion名はcell zone名を連結して生成されるため、例えば以下のようになります。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
zoneA_zoneB&lt;br /&gt;
zoneC_zoneD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1つのregionに含まれるcell zoneの数が増えるにつれて、これらの名前は扱いにくくなる可能性があります。&lt;br /&gt;
&lt;br /&gt;
新しい`customRegionNames` optionを使用すると、`combineZones`使用時にcell zoneのclusterへ明示的な名前を割り当てることができます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
splitMeshRegions -cellZonesOnly -combineZones '((zoneA zoneB)(zoneC zoneD))' -customRegionNames '(regionX regionY)'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===useSelectedFaceZones===&lt;br /&gt;
既存の`useFaceZones` optionでは、region間のinterfaceを、すべてのface zoneに対応する複数のpatchへ分割します。&lt;br /&gt;
&lt;br /&gt;
新しい`useSelectedFaceZones` optionでは、指定した一部のface zoneだけに対応するpatchへregion間interfaceを分割できるため、より細かな制御が可能になります。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_UTILITIES/mesh/manipulation/splitMeshRegions`&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #795&lt;br /&gt;
==新しいpatchDistanceToCell cell source==&lt;br /&gt;
OpenFOAMには、指定したpatchに直接隣接するcellを選択する`patchToCell`や、形状に基づいて領域を選択する`boxToCell`、`sphereToCell`などのgeometric sourceが用意されています。&lt;br /&gt;
&lt;br /&gt;
しかしこれまでは、turbulenceのwall-distance計算と同じgeometric distance algorithmを使用して、1つまたは複数のpatchから一定の距離範囲内にあるcellを選択する方法はありませんでした。&lt;br /&gt;
&lt;br /&gt;
この機能を補うため、`topoSet`のcell sourceとして`patchDistanceToCell`が追加されました。&lt;br /&gt;
&lt;br /&gt;
`patchDistanceToCell`は、以下のような用途で使用できます。&lt;br /&gt;
*mesh setup&lt;br /&gt;
*refinement zone&lt;br /&gt;
*source term&lt;br /&gt;
*post-processing用cell set&lt;br /&gt;
Near-wallおよびannular-bandのcell setは、以下のように設定できます。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
actions&lt;br /&gt;
(&lt;br /&gt;
    {&lt;br /&gt;
        name    nearWall;&lt;br /&gt;
        type    cellSet;&lt;br /&gt;
        action  new;&lt;br /&gt;
        source  patchDistanceToCell;&lt;br /&gt;
        patch   movingWall;&lt;br /&gt;
        distance 0.02;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        name    wallBand;&lt;br /&gt;
        type    cellSet;&lt;br /&gt;
        action  new;&lt;br /&gt;
        source  patchDistanceToCell;&lt;br /&gt;
        patches (movingWall fixedWalls);&lt;br /&gt;
        minDistance 0.01;&lt;br /&gt;
        distance 0.04;&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;最初の`nearWall`では、`movingWall`から`0.02`以内にあるcellを選択します。&lt;br /&gt;
&lt;br /&gt;
2つ目の`wallBand`では、`movingWall`および`fixedWalls`からの距離が`0.01`から`0.04`の範囲にあるcellを選択します。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/meshTools/topoSet/cellSources/patchDistanceToCell`&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #831&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*`$FOAM_TUTORIALS/incompressible/pisoFoam/RAS/cavity`&lt;br /&gt;
===Issue===&lt;br /&gt;
*Issue #3503&lt;br /&gt;
=Numerics=&lt;br /&gt;
==Overset gridにおけるinverseDistance methodの改良==&lt;br /&gt;
Overset meshに使用されるinverse-distance weighted cell-cell stencilについて、主に2つの点でrobustnessが向上しました。&lt;br /&gt;
===Fringe-to-fringe cascadeの防止===&lt;br /&gt;
OVERSET fringe cellは、donor search phaseの前にあらかじめ`INTERPOLATED`へ昇格されるようになりました。&lt;br /&gt;
&lt;br /&gt;
これにより、fringe cellが他のOVERSET acceptorのdonorとして選択されることを防止します。&lt;br /&gt;
&lt;br /&gt;
従来は、このような選択によって安全ではないdonor chainが形成され、interpolationがcrashする可能性がありました。&lt;br /&gt;
&lt;br /&gt;
`allowInterpolatedDonors`が`true`に設定されている場合でも、この保護処理が優先されます。これは、fringe-to-fringeのdonationが常に安全ではないためです。&lt;br /&gt;
===Empty-stencilの保護===&lt;br /&gt;
Donor-marking phaseの後、例えば`markPatchesAsHoles`によってdonor cellが`HOLE`になった場合、従来はacceptor cellが空のstencilを持った`INTERPOLATED`の状態で残されていました。&lt;br /&gt;
&lt;br /&gt;
これにより、interpolationがcrashする可能性がありました。&lt;br /&gt;
&lt;br /&gt;
今回、複数のdefensive checkが追加され、このようなcellを検出して`HOLE`へ降格させることで、stencilの整合性が維持されるようになりました。&lt;br /&gt;
&lt;br /&gt;
また、compactionやmap redistributionの際にstencilが失われるような、まれなedge caseにも対応しています。&lt;br /&gt;
&lt;br /&gt;
これらの変更によりoverset interpolationのrobustnessが向上し、複雑なtopological transitionを伴う場合でもcrashしにくくなりました。&lt;br /&gt;
&lt;br /&gt;
特に、hole-cuttingとdonor searchが密接に相互作用するoverlapping regionを含むcaseで効果があります。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/overset/cellCellStencil/inverseDistance`&lt;br /&gt;
==Finite Areaの改良==&lt;br /&gt;
今回のリリースでは、OpenFOAM-v2512で開始された開発を引き継ぎ、複数のareaを扱うためのfinite-area supportの拡張が完了しました。&lt;br /&gt;
&lt;br /&gt;
Multiple area supportにより、volumeの異なる部分に対して、それぞれ異なるfinite-area physicsを定義できます。&lt;br /&gt;
&lt;br /&gt;
例えば、同じvolumeに対して、一部のboundary areaには異なる2次元thermal shellを適用し、別のboundaryにはfilm shellを適用できます。&lt;br /&gt;
&lt;br /&gt;
これは、thermal shellなどのfinite-area physics solverをvolume boundary conditionの一部として直接組み込めるため、特に有用です。&lt;br /&gt;
&lt;br /&gt;
Setupに関する変更にはbackward compatibilityがあります。&lt;br /&gt;
&lt;br /&gt;
Defaultのregionが1つだけの場合、setup方法は従来と同じです。&lt;br /&gt;
&lt;br /&gt;
複数のarea regionを使用する場合、setupはmulti-region caseと同様になります。ただし、それぞれのvolume regionに対して複数のfinite-area definitionを設定できます。&lt;br /&gt;
&lt;br /&gt;
Tutorialの`hotRoomWithThermalShell.multi-area`では、このsetup方法を分かりやすく紹介しています。&lt;br /&gt;
&lt;br /&gt;
今回のリリースではedge fieldの処理も更新され、parallel計算においてflux orientationとedge flippingが正しく維持されるようになりました。&lt;br /&gt;
&lt;br /&gt;
この処理は、以下の各種toolで一貫して適用されるようになっています。&lt;br /&gt;
*decomposition&lt;br /&gt;
*reconstruction&lt;br /&gt;
*redistribution&lt;br /&gt;
既存のparallel caseは引き続き実行できます。Tool側で既存のedge flipping addressingの有無を自動的に検出するためです。&lt;br /&gt;
&lt;br /&gt;
ただし、新しく作成された`edgeProcAddressing`は、一般的には古いバージョンのOpenFOAMでは使用できません。&lt;br /&gt;
&lt;br /&gt;
前回のリリースでは、decompositionおよびreconstructionに対するmulti-area supportに加えて、複数のpost-processing toolへの対応がすでに追加されていました。&lt;br /&gt;
&lt;br /&gt;
今回のリリースでは、そのsupportがparallel redistributionにも拡張されました。&lt;br /&gt;
&lt;br /&gt;
Diagnosticsについては、`foamToVTK` utilityがedge fieldの出力にも対応しました。&lt;br /&gt;
&lt;br /&gt;
さらに、`checkFaMesh`および`makeFaMesh`の両方について、VTK diagnostics outputが拡張されています。&lt;br /&gt;
==AMI cacheの改良: restart==&lt;br /&gt;
AMI cachingはv2512で導入され、rotating mesh caseのperformanceを向上できる機能として提供されました。&lt;br /&gt;
&lt;br /&gt;
この機能では、interpolation weightとaddressingをcacheし、複数回のrotationにわたって再利用します。&lt;br /&gt;
&lt;br /&gt;
これにより、本来であれば複数回のparallel reductionを含むassembly costを削減でき、scaling performanceの低下を抑えることができます。&lt;br /&gt;
&lt;br /&gt;
一部のworkflowでは、例えば異なるtime-step strategyへ変更する場合などに、cacheをclearすることが望ましい場合があります。&lt;br /&gt;
&lt;br /&gt;
今回、この操作をsingle-shot controlとしてAMI patchの設定に指定できるようになりました。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
AMI1&lt;br /&gt;
{&lt;br /&gt;
    cacheSize        &amp;lt;size&amp;gt;;&lt;br /&gt;
    cacheRestartTime &amp;lt;time&amp;gt;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;以下の条件を満たすと、&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
time &amp;gt;= cacheRestartTime&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cacheがclearされ、その後のevaluationで再構築されます。&lt;br /&gt;
&lt;br /&gt;
将来のリリースでは、要件に応じて複数のrestart optionが追加される可能性があります。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/meshTools/AMIInterpolation`&lt;br /&gt;
=Solvers and physics=&lt;br /&gt;
==新しい2方程式RANS乱流モデル: GEKO==&lt;br /&gt;
OpenFOAMでは現在、`SpalartAllmaras`、各種`kEpsilon`、`kOmegaSST`など、広く使用されている複数のRANS乱流closure modelが提供されています。&lt;br /&gt;
&lt;br /&gt;
各modelにはそれぞれ長所と短所があり、対象とするapplicationに最適なmodelを選択するため、想定されるflow configurationの一部に対して複数のmodelを実行・比較することが一般的です。&lt;br /&gt;
&lt;br /&gt;
しかし、modelを切り替える場合、例えばboundary layerとfree-shear flowの間でaccuracyのtrade-offが発生することがあり、workflowが複雑になります。&lt;br /&gt;
&lt;br /&gt;
このworkflowの柔軟性を向上するため、汎用的なRANS closureとして有望なGeneralised k-omega Two-Equation Turbulence Model（GEKO）が、Menter &amp;amp; Matyushenko（2025）の研究に基づいて実装されました。&lt;br /&gt;
&lt;br /&gt;
Incompressibleおよびcompressibleの両applicationに対応しています。&lt;br /&gt;
===GEKOのcalibration coefficient===&lt;br /&gt;
GEKOでは、2方程式乱流modelを単一のframeworkに統合し、異なるphysicsを対象とする4つの独立したfree coefficientを提供します。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!係数&lt;br /&gt;
!対象とする現象&lt;br /&gt;
|-&lt;br /&gt;
|`CSEP`&lt;br /&gt;
|Boundary layerなど、smooth surfaceからのflow separationを最適化&lt;br /&gt;
|-&lt;br /&gt;
|`CNW`&lt;br /&gt;
|Heat transferやskin frictionなど、non-equilibrium near-wall regionのflowを最適化&lt;br /&gt;
|-&lt;br /&gt;
|`CMIX`&lt;br /&gt;
|Free flowにおけるspreading rateを最適化&lt;br /&gt;
|-&lt;br /&gt;
|`CJET`&lt;br /&gt;
|Round jet flowを最適化&lt;br /&gt;
|}&lt;br /&gt;
===実装されている主な機能===&lt;br /&gt;
*Wall distanceを必要としないvariant: `wallDistanceFree`&lt;br /&gt;
*kに対するproduction limiter: `productionLimiter`（defaultで有効）&lt;br /&gt;
*Kato-Launder stagnation correction: `katoLaunder`&lt;br /&gt;
*Reynolds stress tensorに対するdilatation correction: `dilatationCorrection`&lt;br /&gt;
*4つのcalibration coefficient field: `CSEP`、`CNW`、`CMIX`、`CJET`&lt;br /&gt;
**Uniform scalarまたはspatial fieldとして読み込み可能&lt;br /&gt;
**`writeCalibrationFields`によるdiagnostic outputに対応&lt;br /&gt;
*Machine-learning augmentation: `machineLearning`&lt;br /&gt;
**Optionalな`Ck`および`Comega` source termを使用可能&lt;br /&gt;
*`nut`に対するrealizability limiter&lt;br /&gt;
===Verification===&lt;br /&gt;
GEKO modelは、以下のcanonical flowに対してverificationされています。&lt;br /&gt;
*Strong adverse pressure gradientを伴うsmooth-wall flat plate上のequilibrium boundary layer（Skare &amp;amp; Krogstad, 1994）&lt;br /&gt;
*Free-shear mixing-layer flow（Bell &amp;amp; Mehta, 1990）&lt;br /&gt;
*Zero-pressure-gradient smooth-wall flat plate（Wieghardt &amp;amp; Tillmann, 1951）&lt;br /&gt;
*Backward-facing step flow（Driver &amp;amp; Seegmiller, 1985）&lt;br /&gt;
*CS0 Diffuser flow（Driver, 1991）&lt;br /&gt;
*Axisymmetric transonic bump flow（Bachalo &amp;amp; Johnson, 1986）&lt;br /&gt;
Release pageでは、mixing-layer flowについて`CMIX`を変化させた場合のself-similar velocity profileおよびturbulent kinetic energy profileへの影響が示されています。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/TurbulenceModels/turbulenceModels/RAS/GEKO/GEKO.H`&lt;br /&gt;
===Merge request===&lt;br /&gt;
*MR !819&lt;br /&gt;
===参考文献===&lt;br /&gt;
Menter, F. R., &amp;amp; Matyushenko, A. (2025).  ''Generalized k−omega (GEKO) Two-Equation Turbulence Model.''  AIAA Journal, 63(11), 4590-4606.  DOI: 10.2514/1.J065678&lt;br /&gt;
==新しいLagrangian patch interaction model: BaiGosman==&lt;br /&gt;
OpenFOAMでは従来から、`kinematicSurfaceFilm` surface-film modelの`splashBai` interactionを通して、Bai系のspray impingement physicsを利用できます。&lt;br /&gt;
&lt;br /&gt;
この方法では、droplet-wall interactionを、wall上のresolvedまたはmodelled liquid filmとcouplingします。&lt;br /&gt;
&lt;br /&gt;
Film dynamicsが重要な場合には適切ですが、parcel-wall impingementのみを直接扱いたい場合には、surface filmを使用するためのmodelingおよびcase setupが追加で必要になります。&lt;br /&gt;
&lt;br /&gt;
今回、Bai &amp;amp; Gosman（1996）のspray impingement frameworkに基づく`BaiGosman` interaction typeが、`localInteraction` patch-interaction modelに追加されました。&lt;br /&gt;
&lt;br /&gt;
これにより、`surfaceFilmModel`を有効にしなくても、thermo、reactingおよびspray Lagrangian cloudに対して、patchごとにadhesion、rebound、splashを扱うことができます。&lt;br /&gt;
===主な機能===&lt;br /&gt;
*`localInteractionCoeffs`内でpatchごとに`BaiGosman` typeを指定可能&lt;br /&gt;
*Parcel typeには`T()`および`rho()`が必要&lt;br /&gt;
*Cloud databaseには、少なくとも1つのliquid componentを含む`SLGThermo`の登録が必要&lt;br /&gt;
*Temperature-dependentなimpingement regimeに対応&lt;br /&gt;
**`Tmelt`未満: viscoelastic reboundまたはadhesion&lt;br /&gt;
**`Tmelt`以上: Weber numberおよびOhnesorge numberに基づくsplash判定&lt;br /&gt;
**`dry` switchによりdry-wall / wet-wall treatmentを選択&lt;br /&gt;
*Secondary splash parcelを生成可能&lt;br /&gt;
**Stochastic diameter distribution&lt;br /&gt;
**Splash directionのsampling&lt;br /&gt;
**Owner cloudへの即時inject&lt;br /&gt;
===設定例===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
localInteractionCoeffs&lt;br /&gt;
{&lt;br /&gt;
    patches&lt;br /&gt;
    (&lt;br /&gt;
        walls&lt;br /&gt;
        {&lt;br /&gt;
            type              BaiGosman;&lt;br /&gt;
            dry               true;&lt;br /&gt;
            Tmelt             400;&lt;br /&gt;
            Wec               200;&lt;br /&gt;
            parcelsPerSplash  5;&lt;br /&gt;
            Adry              2630;&lt;br /&gt;
            Awet              1320;&lt;br /&gt;
            Cf                0.7;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        outlet&lt;br /&gt;
        {&lt;br /&gt;
            type escape;&lt;br /&gt;
        }&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;このmodelでは、Bai-Gosman impingement modelのadhesion、rebound、splash regimeが再現されます。&lt;br /&gt;
&lt;br /&gt;
Secondary splash dropletのenergeticsにはwall-normal方向のincident kinetic energyが使用され、`ThermoSurfaceFilm`で使用されるformulationと整合しています。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/BaiGosman.H`&lt;br /&gt;
*`$FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.H`&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #838&lt;br /&gt;
===参考文献===&lt;br /&gt;
Bai, C. &amp;amp; Gosman, A. (1996).  ''Mathematical Modelling of Wall Films Formed by Impinging Sprays.''  International Congress &amp;amp; Exposition, Detroit, Michigan, United States.&lt;br /&gt;
==turbulentDigitalFilterInlet境界条件のconvolution改良==&lt;br /&gt;
`turbulentDigitalFilterInlet` boundary conditionは、LESおよびDESのinletに対して、synthetic turbulence-likeなtime seriesを生成するboundary conditionです。&lt;br /&gt;
&lt;br /&gt;
Digital-filter method（DFM）またはforward-stepwise method（FSM）を使用します。&lt;br /&gt;
&lt;br /&gt;
Two-point correlationを組み込むconvolution処理は`IntegralScaleBox`内部で実行されます。&lt;br /&gt;
&lt;br /&gt;
従来の実装では、random-field generationとconvolutionがmaster MPI rank上だけで実行されていたため、parallel計算時にこの処理がserial bottleneckとなっていました。&lt;br /&gt;
===Convolutionのparallel化===&lt;br /&gt;
今回、`IntegralScaleBox`のconvolution処理がparallel化され、generation-planeに対する処理が複数のMPI rankへ分散されるようになりました。&lt;br /&gt;
&lt;br /&gt;
既存のdictionary syntaxに変更はありません。&lt;br /&gt;
&lt;br /&gt;
また、simulation outputについても従来のserial implementationとの整合性が維持されています。&lt;br /&gt;
&lt;br /&gt;
Optionalな`seed` entryを使用することで、restartやmesh redistributionを行った場合のreproducibilityを制御できます。&lt;br /&gt;
===Performance===&lt;br /&gt;
この変更により、single-processorで実行されていたconvolution bottleneckが解消されました。&lt;br /&gt;
&lt;br /&gt;
`turbulentInflow` tutorial simulationでは、およそ15～35%のspeedupが確認されています。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/finiteVolume/fields/fvPatchFields/derived/turbulentDigitalFilterInlet/IntegralScaleBox`&lt;br /&gt;
*`$FOAM_SRC/finiteVolume/fields/fvPatchFields/derived/turbulentDigitalFilterInlet`&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #840&lt;br /&gt;
==Heat diffusionの改良==&lt;br /&gt;
`thermophysicalProperties`の`pureZoneMixture` modelでは、cell zoneごとに異なるthermal propertyを設定できます。&lt;br /&gt;
&lt;br /&gt;
今回のリリースでは、solid solverである`solidFoam`およびconjugate heat transfer solverにおけるheat flux formulationの不具合が修正されました。&lt;br /&gt;
===Isotropic thermal conductivity===&lt;br /&gt;
Isotropic thermal conductivityを持つsolidでは、異なるmaterial propertyを持つ2つのcell zone間のinterfaceでconsistentなheat fluxを得るため、`alpha`および`kappa`のlaplacian schemeにharmonic interpolationを使用する必要があります。&lt;br /&gt;
&lt;br /&gt;
例えば、以下のように設定します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
laplacianSchemes&lt;br /&gt;
{&lt;br /&gt;
    laplacian(alpha,h)      Gauss harmonic limited corrected 0.5;&lt;br /&gt;
    laplacian(kappa,h)      Gauss harmonic limited corrected 0.5;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Anisotropic thermal conductivity===&lt;br /&gt;
Anisotropic thermal conductivityの場合、`alpha`および`kappa`はtensorとなるため、harmonic interpolation schemeを直接使用できません。&lt;br /&gt;
&lt;br /&gt;
この場合はlinear interpolationを使用します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
laplacianSchemes&lt;br /&gt;
{&lt;br /&gt;
    laplacian(alpha,h)      Gauss linear limited corrected 0.5;&lt;br /&gt;
    laplacian(kappa,h)      Gauss linear limited corrected 0.5;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ただし、異なる2つのcell zone間のinterfaceでconsistentなheat fluxを確保するため、solver内部ではtensorのface-normal componentに対して自動的にharmonic interpolationが適用されます。&lt;br /&gt;
&lt;br /&gt;
これは、`laplacianSchemes`で`linear`を指定した場合でも適用されます。&lt;br /&gt;
&lt;br /&gt;
一方、`alpha`および`kappa` tensorのoff-diagonal componentについてはlinear interpolationが使用されます。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/thermophysicalModels/solidThermo/solidThermo`&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #842&lt;br /&gt;
===Tutorial===&lt;br /&gt;
*`$FOAM_TUTORIALS/heatTransfer/solidFoam/multiSolidWithAnisoConduction`&lt;br /&gt;
=Post-processing=&lt;br /&gt;
==新しいrelativeVelocity function object==&lt;br /&gt;
新しい`relativeVelocity` function objectは、rotating caseにおけるrelative velocity fieldを計算します。&lt;br /&gt;
&lt;br /&gt;
3種類のrotation modeがサポートされています。&lt;br /&gt;
===specified mode===&lt;br /&gt;
`specified`では、1つまたは複数のrotation zoneを直接定義できます。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
rotationMode    specified;&lt;br /&gt;
&lt;br /&gt;
specified&lt;br /&gt;
{&lt;br /&gt;
    origin  (0 0 0);    // Rotation around centre line&lt;br /&gt;
    axis    (1 0 0);&lt;br /&gt;
    n       -25;        // [rev/sec] (-ve: left-hand propeller)&lt;br /&gt;
&lt;br /&gt;
    zone    innerCylinderSmall;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;`origin`、`axis`、rotation speed `n`および対象となるcell zoneを指定してrelative velocityを計算します。&lt;br /&gt;
===MRF mode===&lt;br /&gt;
`MRF`では、case内に定義済みのmoving reference frameを参照してrelative velocityを計算します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
rotationMode    MRF;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;既存のMRF設定をそのまま利用できるため、MRFを使用したrotating machinery caseのpost-processingに適しています。&lt;br /&gt;
===solidBodyRotation mode===&lt;br /&gt;
`solidBodyRotation`では、`rotatingMotion`の定義を使用してsolid body rotationを適用します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
rotationMode    solidBodyRotation;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;このmodeはcell zoneを対象として使用します。&lt;br /&gt;
===Background cellの扱い===&lt;br /&gt;
Relative motionは複数のcell zoneから構成できるため、いずれのrotation zoneにも属さないbackground cellをどのように扱うかを制御できます。&lt;br /&gt;
&lt;br /&gt;
通常はbackground cellのvelocityをzeroとしますが、以下のような設定も可能です。&lt;br /&gt;
*Original velocity fieldのcopyを初期値として使用&lt;br /&gt;
*Rotation zoneに含まれないcellへcustom mask valueを設定&lt;br /&gt;
これにより、複数のrotating regionを含むcaseでもrelative velocity fieldを柔軟に構築できます。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/functionObjects/field/relativeVelocity`&lt;br /&gt;
===Tutorials===&lt;br /&gt;
*`$FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller1/system/relativeVelocity`&lt;br /&gt;
*`$FOAM_TUTORIALS/incompressible/simpleFoam/mixerVessel2D/system/relativeVelocity`&lt;br /&gt;
*`$FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller/system/relativeVelocity`&lt;br /&gt;
==Polyhedral cell conversionの新しいoption==&lt;br /&gt;
`cellDecomposer` function objectは、cellを基本的な形状へdecomposeし、選択したfieldを生成されたmeshへmapする機能です。&lt;br /&gt;
&lt;br /&gt;
`mapFields`と類似したfield mapping機能も提供します。&lt;br /&gt;
&lt;br /&gt;
今回のreleaseでは、この機能が拡張され、cell自体を分割せずにfaceだけを分割できるようになりました。&lt;br /&gt;
===Faceのみのdecomposition===&lt;br /&gt;
この機能は、外部で定義されたtriangle meshとAMIを介してinterfaceを構築する場合に特に有効です。&lt;br /&gt;
&lt;br /&gt;
Faceをtriangleへ分割することで、OpenFOAM側のface geometryを外部triangle meshと正確に一致させることができます。&lt;br /&gt;
&lt;br /&gt;
Faceをface-centre triangleへ変換する典型的な設定は以下です。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
functions&lt;br /&gt;
{&lt;br /&gt;
    cellDecomposer&lt;br /&gt;
    {&lt;br /&gt;
        type            cellDecomposer;&lt;br /&gt;
        libs            (fieldFunctionObjects);&lt;br /&gt;
        fields          ();&lt;br /&gt;
        mapRegion       tetMesh;&lt;br /&gt;
&lt;br /&gt;
        // How to decompose faces&lt;br /&gt;
        decomposeType   faceCentre;&lt;br /&gt;
&lt;br /&gt;
        // Cell set to decompose&lt;br /&gt;
        selectionMode   cellSet;&lt;br /&gt;
        cellSet         dummy;  // empty set&lt;br /&gt;
&lt;br /&gt;
        // Face set to decompose&lt;br /&gt;
        faceSelectionMode faceSet;&lt;br /&gt;
        faceSet         facesToDecompose;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この例では、&lt;br /&gt;
*`dummy`: decomposition対象となるcell set&lt;br /&gt;
*`facesToDecompose`: decomposition対象となるface set&lt;br /&gt;
を読み込みます。&lt;br /&gt;
===topoSetによるselectionの作成===&lt;br /&gt;
Cell setおよびface setは`topoSet` applicationを使用して生成できます。&lt;br /&gt;
&lt;br /&gt;
例えば、cellを分割せず、`missingCorner` patchのfaceのみを対象とする場合は以下のように設定できます。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    name    dummy;&lt;br /&gt;
    type    cellSet;&lt;br /&gt;
    action  clear;&lt;br /&gt;
}&lt;br /&gt;
{&lt;br /&gt;
    name    facesToDecompose;&lt;br /&gt;
    type    faceSet;&lt;br /&gt;
    action  patchToFace;&lt;br /&gt;
    patch   missingCorner;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この場合、`dummy`はempty cell setとなり、`facesToDecompose`には`missingCorner` patchのすべてのfaceが格納されます。&lt;br /&gt;
&lt;br /&gt;
`missingCorner` tutorialでは、この方法によってpatch上のquadrilateral faceがtriangleへ変換されます。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/functionObjects/field/cellDecomposer`&lt;br /&gt;
===Tutorial===&lt;br /&gt;
*`$FOAM_TUTORIALS/mesh/polyDualMesh/missingCorner`&lt;br /&gt;
===Issue===&lt;br /&gt;
*Issue #3529&lt;br /&gt;
==Conversion toolの改良==&lt;br /&gt;
OpenFOAM v2606では、VTKおよびEnsightへのconversion機能にも複数の改善が加えられています。&lt;br /&gt;
===Processor boundaryのartefact除去===&lt;br /&gt;
`foamToVTK`や`vtkWrite` function objectなどによるVTK volume geometry outputで、processor boundaryに生じていたartefactが表示されなくなりました。&lt;br /&gt;
&lt;br /&gt;
Ensight outputでは既に同様の処理が実装されていましたが、今回VTK volume infrastructureにも同等のtopological point merge処理が導入されました。&lt;br /&gt;
&lt;br /&gt;
これにより、parallel計算結果をVTKへ変換した際のprocessor boundary由来の不要なgeometry artefactが除去されます。&lt;br /&gt;
===Output fileのbase name指定===&lt;br /&gt;
EnsightおよびVTK conversionで、新しく`base-name`を指定できるようになりました。&lt;br /&gt;
&lt;br /&gt;
Utilityとして実行する場合は、&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
-base-name &amp;lt;name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;を使用できます。&lt;br /&gt;
&lt;br /&gt;
Function objectとして使用する場合は、&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
baseName    &amp;lt;name&amp;gt;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;を指定できます。&lt;br /&gt;
&lt;br /&gt;
これにより、case nameとは独立したbase nameまたはstem nameをoutput fileへ設定できます。&lt;br /&gt;
===Absolute output pathへの対応===&lt;br /&gt;
`foamToEnsight`および`foamToVTK` utilityがabsolute output pathを正しく扱えるようになりました。&lt;br /&gt;
&lt;br /&gt;
これはdistributed rootsを使用するparallel環境で特に有用です。&lt;br /&gt;
&lt;br /&gt;
例えば、各processorのfilesystemが分散している環境でも、NFS mountされた共通directoryなどへoutputを集約できます。&lt;br /&gt;
==Surface noiseの改良==&lt;br /&gt;
`surfaceNoise` utilityが拡張され、geometric surface informationを持たないsurface dataも処理できるようになりました。&lt;br /&gt;
===Geometryを持たないsampling dataへの対応===&lt;br /&gt;
外部でsampleされたdataでは、pressure valueがface centre位置の値としてのみ提供され、対応するsurface geometryが存在しない場合があります。&lt;br /&gt;
&lt;br /&gt;
今回、このようなdataについて、&lt;br /&gt;
*Ensightではpoint element&lt;br /&gt;
*VTKではvertex element&lt;br /&gt;
に相当するzero-dimensional elementとしてinputを指定できるようになりました。&lt;br /&gt;
&lt;br /&gt;
`surfaceNoise`は、この形式のdataに対してもnoise processingを実行できます。&lt;br /&gt;
&lt;br /&gt;
Underlying surface reader/writerにも変更が加えられていますが、現時点では通常のsurface samplingからこの機能を利用することはできません。&lt;br /&gt;
&lt;br /&gt;
将来的には需要に応じて通常のsurface samplingへの展開も検討されています。&lt;br /&gt;
===Ensight collatedTimeの修正===&lt;br /&gt;
Robert Perryによるcommunity contributionとして、`surfaceNoise`のEnsight `collatedTime` writing modeも修正されています。&lt;br /&gt;
&lt;br /&gt;
従来はloop間でwriterが適切に保持されない問題がありましたが、writerをloop間で保持するよう変更され、正しいcollating behaviourが得られるようになりました。&lt;br /&gt;
==新しいagglomeration visualisation==&lt;br /&gt;
Field agglomerationのqualityは、GAMG solverのperformanceに大きな影響を与えます。&lt;br /&gt;
&lt;br /&gt;
GAMGは特にpressure equationのsolutionで高い効果を発揮します。Steady-state simulationではpressure equationの計算時間が全体のrun timeの大きな割合を占めることがあるため、agglomeration structureの確認はsolver performanceの分析に有用です。&lt;br /&gt;
===agglomerationInfo function object===&lt;br /&gt;
新しい`agglomerationInfo` function objectを使用すると、agglomeration regionごとに異なる値を持つvolume fieldを生成できます。&lt;br /&gt;
&lt;br /&gt;
これにより、一般に「blobs」と呼ばれるGAMGのagglomeration structureをParaViewなどで直接visualiseできます。&lt;br /&gt;
&lt;br /&gt;
典型的な設定は以下です。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
agglom1&lt;br /&gt;
{&lt;br /&gt;
    type            agglomerationInfo;&lt;br /&gt;
    libs            (utilityFunctionObjects);&lt;br /&gt;
    writeControl    writeTime;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;生成されたvolume fieldを可視化することで、&lt;br /&gt;
*Agglomeration regionの大きさ&lt;br /&gt;
*Regionの空間分布&lt;br /&gt;
*不自然に細かい、または大きなagglomeration&lt;br /&gt;
*Mesh構造とcoarse levelの関係&lt;br /&gt;
などを確認しやすくなります。&lt;br /&gt;
===Agglomeration table===&lt;br /&gt;
Visualisation用のvolume fieldに加えて、agglomeration tableもfileへ出力されます。&lt;br /&gt;
&lt;br /&gt;
そのため、GAMGのconvergenceやperformanceに問題がある場合に、agglomeration構造を定性的・定量的に確認するdiagnostic toolとして利用できます。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*`$FOAM_SRC/functionObjects/utilities/agglomerationInfo`&lt;br /&gt;
=Infrastructure=&lt;br /&gt;
==Community contribution: GPU==&lt;br /&gt;
OpenFOAM v2606は、GPU offloadingを初めてサポートするreleaseです。&lt;br /&gt;
&lt;br /&gt;
C++17/20の`std::execution` policyを利用し、loop処理を複数のexecution unit上で自動的にparallel実行します。Execution unitとしてはGPU deviceだけでなく、memoryを共有する複数のCPU coreも想定されています。&lt;br /&gt;
===Background===&lt;br /&gt;
Modern computer architectureでは、performanceは単純な演算性能だけではなく、memoryからcompute unitへdataを転送する速度によって制限される傾向が強くなっています。&lt;br /&gt;
&lt;br /&gt;
今回のGPU対応は、これまで行われてきたGPU portingの成果を基礎としています。&lt;br /&gt;
&lt;br /&gt;
最新の開発では、Keysight/OpenCFDが以下の組織と協力しています。&lt;br /&gt;
*UK Science and Technology Facility Council（STFC）&lt;br /&gt;
*Exeter University&lt;br /&gt;
*AMD&lt;br /&gt;
*Nvidia&lt;br /&gt;
Modern C++の機能を利用し、OpenFOAMの中でも特にperformanceへの影響が大きい部分をGPU offloadingに対応させています。&lt;br /&gt;
===GPU対応の基本方針===&lt;br /&gt;
主に以下の領域が対象となっています。&lt;br /&gt;
*Order-dependentではなくrace conditionを発生させないalgorithmの利用&lt;br /&gt;
**例えばface-based loopではなくcell-based loopを使用&lt;br /&gt;
*C++17 execution policyを使用し、可能なloopをoffload&lt;br /&gt;
*Umpireをbackendとするmemory poolを使用し、必要な場所へmemoryをallocate&lt;br /&gt;
*User-facing APIへの影響を抑えるため、変更を可能な限りlow-levelに実装&lt;br /&gt;
**Field algebra&lt;br /&gt;
**Linear solver&lt;br /&gt;
**Boundary evaluation&lt;br /&gt;
*Intermediate fieldのallocationを可能な限り回避&lt;br /&gt;
**Intermediate interpolated fieldを生成せずon-the-flyでinterpolation&lt;br /&gt;
**Expression templatingの利用&lt;br /&gt;
===開発協力===&lt;br /&gt;
今回のGPU対応には以下の組織・開発者が協力しています。&lt;br /&gt;
*STFC&lt;br /&gt;
**Jony Castagna&lt;br /&gt;
**Mayank Kumar&lt;br /&gt;
*Exeter University&lt;br /&gt;
**Gavin Tabor&lt;br /&gt;
**Liam Berrisford&lt;br /&gt;
*AMD&lt;br /&gt;
**Leopold Grinsberg&lt;br /&gt;
**Kumar Saurabh&lt;br /&gt;
*Nvidia&lt;br /&gt;
**Filippo Spiga&lt;br /&gt;
**Matthew Martineau&lt;br /&gt;
**Stan Posey&lt;br /&gt;
**Hardwareの提供&lt;br /&gt;
===Performance===&lt;br /&gt;
初期実装の段階ですが、有望なperformance improvementが確認されています。&lt;br /&gt;
&lt;br /&gt;
Release pageでは、high-end 32-core CPUであるIntel Xeon Gold 6448Yを基準としてGPU実行時のspeed-upが比較されています。&lt;br /&gt;
===Memory management===&lt;br /&gt;
GPU performanceではmemory managementが非常に重要です。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMでは`UMPIRE`を使用し、memory chunkをどこに配置するかを管理します。&lt;br /&gt;
&lt;br /&gt;
これにより、CPUおよびGPUの双方から効率的にmemoryへaccessできるようにします。&lt;br /&gt;
&lt;br /&gt;
GH100やMI300Aなどのunified memory architectureにおいても、このmemory managementは重要とされています。&lt;br /&gt;
===GAMGによるperformance===&lt;br /&gt;
より複雑なlinear solver configurationとして、GAMGと専用smootherを組み合わせることで、大規模caseでは良好なspeed-upが得られています。&lt;br /&gt;
&lt;br /&gt;
MI300Aについても同程度のspeed-upが期待されていますが、performance tuningは現在も継続されています。&lt;br /&gt;
===Patch数によるperformanceへの影響===&lt;br /&gt;
現在のimplementationではpatch fusingが実装されておらず、それぞれのpatchが個別に処理されます。&lt;br /&gt;
&lt;br /&gt;
そのため、patch数が多いcaseではperformanceが明確に低下することがあります。&lt;br /&gt;
&lt;br /&gt;
今後は以下の改善が進められています。&lt;br /&gt;
*Patch merging&lt;br /&gt;
**OpenFOAM内部でのmerge&lt;br /&gt;
**Pre-processingによるmerge&lt;br /&gt;
*Operation mergingの拡大&lt;br /&gt;
**Kernel内でよりcomplexなoperationをまとめて実行&lt;br /&gt;
*Intermediate fieldのさらなる削減&lt;br /&gt;
現状のperformanceはhardwareのtheoretical maximumにはまだ達しておらず、今後の最適化余地が大きいとされています。&lt;br /&gt;
===使用上の注意===&lt;br /&gt;
GPU版では、明示的にserialなlinear solver routineを使用しないことが推奨されています。&lt;br /&gt;
&lt;br /&gt;
以下のsolver / smootherは避ける必要があります。&lt;br /&gt;
*`DIC`&lt;br /&gt;
*`DILU`&lt;br /&gt;
*`GaussSeidel`&lt;br /&gt;
*`symGaussSeidel`&lt;br /&gt;
代わりに、例えば以下の組み合わせが推奨されています。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
solver      GAMG;&lt;br /&gt;
smoother    twoStageGaussSeidel;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===CPU版との数値結果の違い===&lt;br /&gt;
GPU版で使用されるparallelisationでは、operationの実行順序がrunごとに変化する可能性があります。&lt;br /&gt;
&lt;br /&gt;
また、CPU版とGPU版ではloop structure自体が異なる場合があります。&lt;br /&gt;
&lt;br /&gt;
例えば、&lt;br /&gt;
*CPU版: face-based loop&lt;br /&gt;
*GPU版: cell-based loop&lt;br /&gt;
となる場合があります。&lt;br /&gt;
&lt;br /&gt;
この違いはtruncation errorに影響するため、GPUとCPUでsimulation結果がわずかに異なる可能性があります。&lt;br /&gt;
&lt;br /&gt;
したがって、bitwise identicalな結果が保証されるわけではありません。&lt;br /&gt;
===Compile-time option===&lt;br /&gt;
GPU parallelisationおよびoffloadingはcompile-time optionです。&lt;br /&gt;
&lt;br /&gt;
新しいarchitectureとしてpackage化されており、同じsource treeからCPU版またはGPU版をcompileできます。&lt;br /&gt;
&lt;br /&gt;
GPU用にcompileしない限り、GPU対応によって通常のCPU版のbehaviorが変化しないよう配慮されています。&lt;br /&gt;
===現時点での制約===&lt;br /&gt;
現在のGPU implementationには以下の制約があります。&lt;br /&gt;
*GPU developmentはmain development lineとは別のdevelopment trackで進められている&lt;br /&gt;
*Main development lineより若干遅れている可能性がある&lt;br /&gt;
*CPU threadingの`-stdpar=multicore`は現時点では正式にはサポートされていない&lt;br /&gt;
**Work-in-progress&lt;br /&gt;
===Test case===&lt;br /&gt;
TestingにはHPC Committeeのbenchmark caseから選択したcaseが使用されています。&lt;br /&gt;
===Source code===&lt;br /&gt;
GPU対応codeはdevelopment repositoryのbranchとして公開されています。&lt;br /&gt;
&lt;br /&gt;
Repositoryのwikiおよび関連guideに導入方法がまとめられています。&lt;br /&gt;
&lt;br /&gt;
Communityによる追加testingとfeedbackを経て、OpenFOAM v2612へのcode integrationが予定されています。&lt;br /&gt;
==Coding==&lt;br /&gt;
OpenFOAM codebaseのmodernisationの一環として、modern C++への対応がさらに進められています。&lt;br /&gt;
===constexprとnoexceptの拡大===&lt;br /&gt;
より多くのmethodが、&lt;br /&gt;
*`constexpr`&lt;br /&gt;
*`noexcept`&lt;br /&gt;
に対応しました。&lt;br /&gt;
&lt;br /&gt;
これにより、compilerがoffloading architectureをtargetとする場合のoptimizationを支援します。&lt;br /&gt;
===C++17 structured bindings===&lt;br /&gt;
OpenFOAMの基本typeの一部がC++17 structured bindingsに対応しました。&lt;br /&gt;
&lt;br /&gt;
対象には以下が含まれます。&lt;br /&gt;
*`FixedList`&lt;br /&gt;
*`Pair`&lt;br /&gt;
*`Tuple2`&lt;br /&gt;
*`edge`&lt;br /&gt;
*その他の基本type&lt;br /&gt;
例えば、以下のような記述が可能です。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
auto [minId, maxId] = findMinMax_locations(fld);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;従来よりも自然で簡潔なcodeを記述できます。&lt;br /&gt;
===List type detection traits===&lt;br /&gt;
Template programmingを支援するため、各種list typeを判定するtraitが追加されています。&lt;br /&gt;
&lt;br /&gt;
例として、&lt;br /&gt;
*`is_dynamiclist_v`&lt;br /&gt;
*`is_fixedlist_v`&lt;br /&gt;
*`is_indirectlist_v`&lt;br /&gt;
などがあります。&lt;br /&gt;
===C++20 type traitsのbackport===&lt;br /&gt;
Complexなtemplate codeを簡略化するため、一部のC++20 type traitがbackportされています。&lt;br /&gt;
&lt;br /&gt;
例として、&lt;br /&gt;
*`remove_cvref`&lt;br /&gt;
*`type_identity`&lt;br /&gt;
などがあります。&lt;br /&gt;
&lt;br /&gt;
また、&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
stdFoam::is_template_base_of_v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;が追加されています。&lt;br /&gt;
&lt;br /&gt;
これはtemplated classを扱える`std::is_base_of`相当の機能を提供します。&lt;br /&gt;
===その他のtemplate programming支援===&lt;br /&gt;
`vectorspace_data()`なども追加され、templated code内でのcomponent-wiseなdata処理が簡略化されています。&lt;br /&gt;
==Debugging supportの改良==&lt;br /&gt;
OpenFOAM v2606では、programmingおよびdebuggingを支援する機能も強化されています。&lt;br /&gt;
===macOSでのstack trace===&lt;br /&gt;
macOSにおける`error::printStack`の内部処理が更新され、新しく`atos` utilityを使用するようになりました。&lt;br /&gt;
&lt;br /&gt;
従来使用していた`addr2line`の代替処理は、新しいmacOS versionで正しく動作しなくなっていました。&lt;br /&gt;
&lt;br /&gt;
今回の変更により、macOS上でのstack traceを利用したdebuggingが容易になります。&lt;br /&gt;
===Symbol nameのdemangle===&lt;br /&gt;
新しく、&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
error::demangle()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;functionが追加されました。&lt;br /&gt;
&lt;br /&gt;
このfunctionは、compilerによってmangleされたsymbol nameをhuman-readableな形式へ変換して返します。&lt;br /&gt;
&lt;br /&gt;
Templateを多用するC++ codeなどのdebuggingで有用です。&lt;br /&gt;
===Memory high-water mark===&lt;br /&gt;
Memory usageのhotspotを調査するため、node単位でmemory high-water markを取得するhigh-level methodが追加されました。&lt;br /&gt;
&lt;br /&gt;
`error::list_mem_hwm()`は、nodeごとに集計されたmemory high-water markのlistを返します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
Info&amp;lt;&amp;lt; &amp;quot;mem.hwm = &amp;quot;&lt;br /&gt;
    &amp;lt;&amp;lt; flatOutput(error::list_mem_hwm())&lt;br /&gt;
    &amp;lt;&amp;lt; nl;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Memory表示macro===&lt;br /&gt;
以下のgeneral macroも利用できます。&lt;br /&gt;
*`PrintMemoryIn(functionName)`&lt;br /&gt;
*`PrintMemoryInFunction`&lt;br /&gt;
これらを使用すると、現在のnodeごとのmemory high-water markをdecorated stringとして表示できます。&lt;br /&gt;
&lt;br /&gt;
出力例は以下です。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[node0][mem.hwm=&amp;lt;digits&amp;gt;](file.cxx:123)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これにより、どの処理やsource code位置でmemory usageが増加しているかを追跡しやすくなります。&lt;br /&gt;
===Profilingとの連携===&lt;br /&gt;
Profilingを有効にした場合、そのoutputにもmemory high-water markが含まれるようになりました。&lt;br /&gt;
&lt;br /&gt;
Performance profilingとmemory consumptionの分析を同時に行いやすくなっています。&lt;br /&gt;
==Porting==&lt;br /&gt;
Compilation ruleが拡張され、Windows ARM64 targetへのcross-compilationがサポートされました。&lt;br /&gt;
===Windows ARM64===&lt;br /&gt;
Windows ARM64向けのcross-compilationには`llvm-mingw` infrastructureを使用します。&lt;br /&gt;
&lt;br /&gt;
Example setupとして、&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
build_llvm-mingwARM64.Dockerfile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;が提供されています。&lt;br /&gt;
===MPIの制約===&lt;br /&gt;
現時点ではWindows ARM64環境におけるMPI supportは限定的です。&lt;br /&gt;
&lt;br /&gt;
そのため、Windows ARM64へのporting自体は可能になったものの、parallel OpenFOAM applicationを本格的に利用する場合にはMPI implementationの対応状況に注意が必要です。&lt;br /&gt;
=Parallel=&lt;br /&gt;
==GAMG processor agglomeration: communication-aware multiple masters==&lt;br /&gt;
今回のリリースでは、`procFaces`がoptionalな`nMasters`（または`nProcessorsPerMaster`）設定を受け付けるように拡張されました。&lt;br /&gt;
&lt;br /&gt;
これにより、coarsest levelでprocessorをagglomerateし、`nMasters`以下になるまでまとめることで、`masterCoarsest`と同様の動作が可能になります。&lt;br /&gt;
&lt;br /&gt;
`nMasters 1`とした場合は、processor間boundaryが残らないため、`masterCoarsest`と同じ動作になります。&lt;br /&gt;
===効果===&lt;br /&gt;
`simpleFoam`の`pitzDaily` tutorialを、以下の設定で実行します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
p&lt;br /&gt;
{&lt;br /&gt;
    solver                  GAMG;&lt;br /&gt;
    ..&lt;br /&gt;
    processorAgglomerator   procFaces;&lt;br /&gt;
    nMasters                4;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Debug switchを有効にします。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
DebugSwitches&lt;br /&gt;
{&lt;br /&gt;
    GAMGAgglomeration 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;出力例は以下の通りです。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
                              nCells       nFaces/nCells         nInterfaces    nIntFaces/nCells     profile&lt;br /&gt;
   Level  nProcs         avg     max         avg     max         avg     max         avg     max         avg&lt;br /&gt;
   -----  ------         ---     ---         ---     ---         ---     ---         ---     ---         ---&lt;br /&gt;
       0      16         764     770       1.926   1.927         3.5       5      0.1025  0.1299   2.044e+04&lt;br /&gt;
       1      16         381     385       1.964   2.143         3.5       5      0.1686  0.2158        8367&lt;br /&gt;
       2      16         189     192       2.292   2.774         3.5       5      0.2689   0.349        3062&lt;br /&gt;
       3      16          93      96       2.321   2.645         3.5       5      0.4439  0.5532        1028&lt;br /&gt;
       4      16          45      47        2.33   2.489         3.5       5      0.6251  0.8043         362&lt;br /&gt;
       5       4          89      90       2.497   2.596         1.5       2      0.2982  0.4432       902.5&lt;br /&gt;
       6       4          41      43       2.298   2.429         1.5       2      0.4132    0.65       272.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Master-coarsestでcompact masterを使用===&lt;br /&gt;
今回のリリースでは、新しい`compactMasters` optionを使用して、master processorをcompactに割り当てることもできます。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
p&lt;br /&gt;
{&lt;br /&gt;
    solver                  GAMG;&lt;br /&gt;
    ..&lt;br /&gt;
    processorAgglomerator   masterCoarsest;&lt;br /&gt;
    nMasters                4;&lt;br /&gt;
    compactMasters          true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;16 processor、4 masterのcaseでは、defaultのmaster allocationは以下のようになります。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
master  nProcs  procIDs&lt;br /&gt;
0       4       (1 2 3)&lt;br /&gt;
4       4       (5 6 7)&lt;br /&gt;
8       4       (9 10 11)&lt;br /&gt;
12      4       (13 14 15)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;`compactMasters`を有効にすると、masterは番号の小さいprocessorから順に割り当てられます。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
master  nProcs  procIDs&lt;br /&gt;
0       4       (4 5 6)&lt;br /&gt;
1       4       (7 8 9)&lt;br /&gt;
2       4       (10 11 12)&lt;br /&gt;
3       4       (13 14 15)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===効果===&lt;br /&gt;
Compact masterを使用しない場合の出力例です。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
                              nCells       nFaces/nCells         nInterfaces    nIntFaces/nCells     profile&lt;br /&gt;
   Level  nProcs         avg     max         avg     max         avg     max         avg     max         avg&lt;br /&gt;
   -----  ------         ---     ---         ---     ---         ---     ---         ---     ---         ---&lt;br /&gt;
       0      16         764     770       1.926   1.927         3.5       5      0.1025  0.1299   2.044e+04&lt;br /&gt;
       1      16         381     385       1.964   2.143         3.5       5      0.1686  0.2158        8367&lt;br /&gt;
       2      16         189     192       2.292   2.774         3.5       5      0.2689   0.349        3062&lt;br /&gt;
       3      16          93      96       2.321   2.645         3.5       5      0.4439  0.5532        1028&lt;br /&gt;
       4      16          45      47        2.33   2.489         3.5       5      0.6251  0.8043         362&lt;br /&gt;
       5       4          89      90       2.536   2.596         1.5       2      0.2191  0.2889       949.5&lt;br /&gt;
       6       4          41      43        2.36   2.429         1.5       2      0.2897     0.4       291.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Compact masterを使用した場合の出力例です。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
                              nCells       nFaces/nCells         nInterfaces    nIntFaces/nCells     profile&lt;br /&gt;
   Level  nProcs         avg     max         avg     max         avg     max         avg     max         avg&lt;br /&gt;
   -----  ------         ---     ---         ---     ---         ---     ---         ---     ---         ---&lt;br /&gt;
       0      16         764     770       1.926   1.927         3.5       5      0.1025  0.1299   2.044e+04&lt;br /&gt;
       1      16         381     385       1.964   2.143         3.5       5      0.1686  0.2158        8367&lt;br /&gt;
       2      16         189     192       2.292   2.774         3.5       5      0.2689   0.349        3062&lt;br /&gt;
       3      16          93      96       2.321   2.645         3.5       5      0.4439  0.5532        1028&lt;br /&gt;
       4      16          45      47        2.33   2.489         3.5       5      0.6251  0.8043         362&lt;br /&gt;
       5       4          89      90       2.319   2.433           3       3       0.653  0.8621       599.8&lt;br /&gt;
       6       4          41      43       2.029   2.116           3       3      0.9538   1.268       172.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Compact master configurationでは、processor間boundaryが増加し、profileも高くなります。&lt;br /&gt;
&lt;br /&gt;
より大規模なagglomeration、例えば64 coreでは、この影響は小さくなります。&lt;br /&gt;
&lt;br /&gt;
ただし、必ずしも同じ大きさのclusterが生成される保証はありません。大規模なdecompositionでは、不均等な大きさのclusterによってbottleneckが発生する可能性があります。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/blob/OpenFOAM-v2606/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/procFacesGAMGProcAgglomeration/procFacesGAMGProcAgglomeration.C $FOAM_SRC/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/procFacesGAMGProcAgglomeration/procFacesGAMGProcAgglomeration.C]&lt;br /&gt;
===Tutorial===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/blob/OpenFOAM-v2606/tutorials/compressible/rhoSimpleFoam/squareBendLiq $FOAM_TUTORIALS/compressible/rhoSimpleFoam/squareBendLiq]&lt;br /&gt;
===Merge request===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/merge_requests/818 Merge request #818]&lt;br /&gt;
==Parallel==&lt;br /&gt;
今回のリリースでは、MPIへのinterfaceである`Pstream`に複数の改良が加えられています。&lt;br /&gt;
===probeMessage()===&lt;br /&gt;
通常の`MPI_Probe`を使用するためのparameterが簡略化されました。&lt;br /&gt;
===probeMessages()===&lt;br /&gt;
複数のsourceを同時にprobeし、それぞれのmessage sizeを取得できるようになりました。&lt;br /&gt;
===IPstreamの拡張===&lt;br /&gt;
`IPstream`（input/receive stream）は、新しく「receive from any」modeで呼び出せるようになりました。&lt;br /&gt;
&lt;br /&gt;
また、receive bufferを解放することもできます。&lt;br /&gt;
&lt;br /&gt;
これによりalgorithm側では、`IPstream`を使用して以下の処理を行えるようになります。&lt;br /&gt;
*Probe&lt;br /&gt;
*Receive&lt;br /&gt;
*Bufferの回収&lt;br /&gt;
*Forwarding&lt;br /&gt;
*Delayed deserialisationを伴うstorage&lt;br /&gt;
===Pstreamの追加method===&lt;br /&gt;
Inputおよびoutput `Pstream`に、以下のmethodが追加されました。&lt;br /&gt;
*`align`&lt;br /&gt;
*`tell`&lt;br /&gt;
*`seek`&lt;br /&gt;
*その他の補助method&lt;br /&gt;
これにより、rewritingを伴うcomposite outputにも使用できるようになり、aggregated data handlingの柔軟性が向上しました。&lt;br /&gt;
===Field function objectにおけるMPI overheadの削減===&lt;br /&gt;
以下のfunction objectについて、MPI operationの総数およびmemory overheadが大幅に削減されました。&lt;br /&gt;
*`fieldExtent`&lt;br /&gt;
*`fieldMinMax`&lt;br /&gt;
*`fieldStatistics`&lt;br /&gt;
これらはcritical code pathではありませんが、OpenFOAM内部に残るhidden overheadを評価するための初期対象として選ばれました。&lt;br /&gt;
&lt;br /&gt;
主な改善点は以下の通りです。&lt;br /&gt;
*`mag()`演算に必要だったintermediate volume fieldを、ほとんどの場合で生成しないように変更&lt;br /&gt;
*Bounding box reductionをまとめて実行&lt;br /&gt;
**従来の`2*(nPatches+1)`回のMPI reductionから、正確に2回へ削減&lt;br /&gt;
*`fieldMinMax`と`fieldStatistics`では、6回の個別MPI operationの代わりに1回の`MPI_AllGather`を使用&lt;br /&gt;
Core数が増えるにつれて、このようなhidden overheadの影響はより顕著になるため、今後も同様の改善が進められる予定です。&lt;br /&gt;
===Specialised reduction===&lt;br /&gt;
`MinMax`と`sumOp`の組み合わせに対して、specialisedな`Foam::reduce`が追加されました。&lt;br /&gt;
&lt;br /&gt;
この処理は、intermediateなtree communicationやserialisation／deserialisationを介さず、対応するMPI reductionへ直接渡されます。&lt;br /&gt;
&lt;br /&gt;
これにより、通信処理のoverheadを削減できます。&lt;br /&gt;
=Plugins=&lt;br /&gt;
==Community contribution: pybFoam==&lt;br /&gt;
今回のリリースでは、Henning Scheuflerによって開発されたOpenFOAM向けPython bindingである`pybFoam`が導入されました。この貢献に感謝いたします。&lt;br /&gt;
&lt;br /&gt;
Pythonは、scientific computing、data analysis、machine learning、およびworkflowをつなぐgeneral-purposeな言語として、ますます重要になっています。&lt;br /&gt;
&lt;br /&gt;
CFDにおいて重要性が高まっている多くの手法もPython ecosystem上で開発されています。例えば、以下のようなものがあります。&lt;br /&gt;
*Data-driven turbulence closure&lt;br /&gt;
*Surrogate model&lt;br /&gt;
*Reduced-order model&lt;br /&gt;
*Physics-informed neural network&lt;br /&gt;
`pybFoam` projectは、これらの手法をOpenFOAMからより利用しやすくし、Python ecosystemへのentry pointとして機能します。&lt;br /&gt;
&lt;br /&gt;
このbindingを導入することで、PythonとOpenFOAMを連携させた利用を促進し、統一されたPython/OpenFOAM interfaceを提供することが期待されています。&lt;br /&gt;
===pybFoamの構成===&lt;br /&gt;
`pybFoam`は`nanobind`を基盤として構築されており、OpenFOAMのclassをPythonから利用できるようにします。&lt;br /&gt;
&lt;br /&gt;
現在、以下の機能がbindingされています。&lt;br /&gt;
*'''Core type'''&lt;br /&gt;
**`Time`&lt;br /&gt;
**`fvMesh`&lt;br /&gt;
**`dictionary`&lt;br /&gt;
**`volField` family&lt;br /&gt;
**`surfaceField` family&lt;br /&gt;
**Field dataはNumPyへ直接公開可能&lt;br /&gt;
&lt;br /&gt;
*'''Field operation'''&lt;br /&gt;
**Fieldに対する算術演算&lt;br /&gt;
**`cos`&lt;br /&gt;
**`sin`&lt;br /&gt;
**その他のelement-wise function&lt;br /&gt;
&lt;br /&gt;
*'''Finite-volume operator'''&lt;br /&gt;
**`fvc`&lt;br /&gt;
**`fvm`&lt;br /&gt;
**`grad`&lt;br /&gt;
**`div`&lt;br /&gt;
**`laplacian`&lt;br /&gt;
**`ddt`&lt;br /&gt;
**その他のOpenFOAM実装operator&lt;br /&gt;
&lt;br /&gt;
*'''Sampling'''&lt;br /&gt;
**Surface sampling&lt;br /&gt;
**Line sampling&lt;br /&gt;
**Interpolation&lt;br /&gt;
&lt;br /&gt;
*'''Model'''&lt;br /&gt;
**Turbulence model binding&lt;br /&gt;
**Thermophysical model binding&lt;br /&gt;
&lt;br /&gt;
*'''Meshing'''&lt;br /&gt;
**`blockMesh`&lt;br /&gt;
**`snappyHexMesh`&lt;br /&gt;
**`checkMesh`&lt;br /&gt;
&lt;br /&gt;
*'''Embedded solver'''&lt;br /&gt;
**Solverまたはlibraryへ組み込むことができるinterpreter&lt;br /&gt;
===使用例===&lt;br /&gt;
以下はpressure fieldを読み込み、そのgradientを計算し、field dataのNumPy viewを作成する例です。&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import pybFoam as pyb&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
runTime = pyb.Time(&amp;quot;.&amp;quot;, &amp;quot;.&amp;quot;)&lt;br /&gt;
mesh = pyb.fvMesh(runTime)&lt;br /&gt;
p = pyb.volScalarField.read_field(mesh, &amp;quot;p&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
grad_p = pyb.fvc.grad(p)&lt;br /&gt;
np_p = np.asarray(p[&amp;quot;internalField&amp;quot;])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この例では、OpenFOAMの`p` fieldをPythonから直接読み込み、OpenFOAMの`fvc::grad`に相当する演算を実行した後、internal fieldをNumPy arrayとして参照しています。&lt;br /&gt;
&lt;br /&gt;
追加のdocumentationはexternal repositoryで提供されています。&lt;br /&gt;
===Repository===&lt;br /&gt;
*https://github.com/HenningScheufler/pybFoam&lt;br /&gt;
===Documentation===&lt;br /&gt;
*https://henningscheufler.github.io/pybFoam/index.html&lt;br /&gt;
==Community contribution: pyOFTools==&lt;br /&gt;
`pyOFTools`もHenning Scheuflerによって開発されており、`pybFoam`によって提供されるinfrastructureを基盤として、OpenFOAMと連携するための基本的なPython method群を提供します。&lt;br /&gt;
&lt;br /&gt;
Simulationの両端、すなわち、&lt;br /&gt;
*Initial fieldを準備するpre-processing&lt;br /&gt;
*計算結果を抽出するpost-processing&lt;br /&gt;
の両方でPythonを使用することで、workflowをより簡潔に記述し、容易に拡張できるようになります。&lt;br /&gt;
===目的===&lt;br /&gt;
このlibraryは、以下の実装例を示すことも目的としています。&lt;br /&gt;
*Python interpreterをOpenFOAMへembedし、`pybFoam`と組み合わせて使用する方法&lt;br /&gt;
*Custom bindingによってlibraryを拡張する方法&lt;br /&gt;
*`pybFoam`上に構築したPython libraryをPython ecosystem向けにpackage化する方法&lt;br /&gt;
===Function Objectによるpost-processing===&lt;br /&gt;
`pyOFTools`はFunction Objectを使用し、OpenFOAM solver内部でpost-processingを実行します。&lt;br /&gt;
&lt;br /&gt;
設定例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
functions&lt;br /&gt;
{&lt;br /&gt;
    pyPostProcessing&lt;br /&gt;
    {&lt;br /&gt;
        libs            (embeddingPython);&lt;br /&gt;
        type            pyPostProcessing;&lt;br /&gt;
        writeControl    timeStep;&lt;br /&gt;
        writeInterval   1;&lt;br /&gt;
        pyFileName      postProcess;   // postProcess.py (no extension)&lt;br /&gt;
        pyClassName     postProcess;   // module-level PostProcessorBase instance&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この設定では、ユーザーが作成した`postProcess.py`を読み込み、`postProcess` classを呼び出します。&lt;br /&gt;
&lt;br /&gt;
Python側の例は以下です。&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from pyOFTools.postprocessor import PostProcessorBase&lt;br /&gt;
from pyOFTools.builders import field&lt;br /&gt;
from pyOFTools.aggregators import VolIntegrate&lt;br /&gt;
&lt;br /&gt;
postProcess = PostProcessorBase()&lt;br /&gt;
&lt;br /&gt;
@postProcess.Table(&amp;quot;water_volume.csv&amp;quot;)&lt;br /&gt;
def water_volume(mesh):&lt;br /&gt;
    return field(mesh, &amp;quot;alpha.water&amp;quot;) | VolIntegrate()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Decorator、&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@postProcess.Table(&amp;quot;water_volume.csv&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;は、output formatおよびfile nameを定義します。&lt;br /&gt;
&lt;br /&gt;
Function bodyでは、&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
field(mesh, &amp;quot;alpha.water&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;によってregistryからfieldを読み込み、operationを適用します。&lt;br /&gt;
&lt;br /&gt;
この例では、&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
| VolIntegrate()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;によって`alpha.water`をdomain volume全体で積分します。&lt;br /&gt;
===Additional Features===&lt;br /&gt;
'''Surface dataset'''&lt;br /&gt;
&lt;br /&gt;
以下のようなsurfaceを生成できます。&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
plane(mesh, point, normal)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;または、&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
iso_surface(mesh, &amp;quot;alpha.water&amp;quot;, 0.5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;さらに、`area()`や`sample(mesh, field)`、aggregatorへpipelineとして接続できます。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
iso_surface(mesh, &amp;quot;alpha.water&amp;quot;, 0.5) | area() | Sum()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;のように記述できます。&lt;br /&gt;
&lt;br /&gt;
'''Point dataset'''&lt;br /&gt;
&lt;br /&gt;
`line()`を使用してfieldをline上でsamplingできます。&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
line(mesh, name, start, end, n_points, field)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;例えば、&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
line(mesh, &amp;quot;centreline&amp;quot;, (0,0,0), (1,0,0), 100, &amp;quot;p&amp;quot;) | Mean()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;のように、line上のpressureをsamplingしてmeanを計算できます。&lt;br /&gt;
&lt;br /&gt;
'''Composable pipeline'''&lt;br /&gt;
&lt;br /&gt;
Spatial selectorとして、&lt;br /&gt;
*`Box`&lt;br /&gt;
*`Sphere`&lt;br /&gt;
などを使用でき、&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;&lt;br /&gt;
|&lt;br /&gt;
~&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;operatorによって組み合わせることができます。&lt;br /&gt;
&lt;br /&gt;
また、以下のようなcomponentを`|` operatorでchainできます。&lt;br /&gt;
*Binner: `Directional`&lt;br /&gt;
*Aggregator:&lt;br /&gt;
**`Sum`&lt;br /&gt;
**`Mean`&lt;br /&gt;
**`VolIntegrate`&lt;br /&gt;
**`SurfIntegrate`&lt;br /&gt;
これらは異なるdataset type間でも組み合わせることができます。&lt;br /&gt;
&lt;br /&gt;
'''PythonによるsetFields'''&lt;br /&gt;
&lt;br /&gt;
Post-processingと同じgeometric selectorを使用し、initial `0/` fieldをPythonから準備できます。&lt;br /&gt;
&lt;br /&gt;
これにより、`setFieldsDict`の代わりにPythonによるfield初期化が可能になります。&lt;br /&gt;
&lt;br /&gt;
'''Command-line interface'''&lt;br /&gt;
&lt;br /&gt;
`pyoftools` CLIが提供されています。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pyoftools setFields &amp;lt;spec&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;を使用すると、`.py`または`.json`形式のfield specificationをcaseに対して実行できます。&lt;br /&gt;
&lt;br /&gt;
また、&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pyoftools version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;も利用できます。&lt;br /&gt;
&lt;br /&gt;
'''Sampling'''&lt;br /&gt;
&lt;br /&gt;
Surfaceおよびline/set samplingに対応し、interpolationも利用できます。&lt;br /&gt;
&lt;br /&gt;
Volume dataの場合と同じselectorおよびaggregatorを再利用できます。&lt;br /&gt;
===Repository===&lt;br /&gt;
*https://github.com/HenningScheufler/pyOFTools&lt;br /&gt;
===Documentation===&lt;br /&gt;
*https://henningscheufler.github.io/pyOFTools/index.html&lt;br /&gt;
==新しいVTK-HDF support==&lt;br /&gt;
今回のOpenFOAM releaseでは、新しいVTK-HDF data formatへのOpenFOAM data exportが初めてサポートされました。&lt;br /&gt;
&lt;br /&gt;
VTK-HDFは、ParaView 6.1以降で正式にサポートされているnative VTK data formatであり、HDF5（Hierarchical Data Format）を基盤としています。&lt;br /&gt;
&lt;br /&gt;
従来のlegacy VTK formatやXML-based VTK formatで発生していたparsing overheadおよびdata duplicationを削減できます。&lt;br /&gt;
&lt;br /&gt;
また、true binary fileとして扱えるため、&lt;br /&gt;
*Readingの高速化&lt;br /&gt;
*最新のVTK data modelへの柔軟な対応&lt;br /&gt;
*複雑なdata compositionへの対応&lt;br /&gt;
が可能になります。&lt;br /&gt;
===将来的な利点===&lt;br /&gt;
長期的な利点の1つとして、static mesh geometryの再利用が挙げられます。&lt;br /&gt;
&lt;br /&gt;
これはEnsight formatではすでに可能ですが、VTK-HDFでは専用のparserを別途必要としません。&lt;br /&gt;
&lt;br /&gt;
また、将来のreleaseでは、&lt;br /&gt;
*Data compression&lt;br /&gt;
*その他のformat enhancement&lt;br /&gt;
を追加できる可能性があります。&lt;br /&gt;
===現在の対応範囲===&lt;br /&gt;
初期implementationでは、最もdata量が大きく、頻繁に出力される以下のdataが対象です。&lt;br /&gt;
*Volume geometry&lt;br /&gt;
*Volume field&lt;br /&gt;
生成時のdata compressionにはまだ対応していません。&lt;br /&gt;
&lt;br /&gt;
ただし、HDF5の`h5repack` commandを使用することで、出力後にcompressionを適用できます。&lt;br /&gt;
===vtkhdfWrite function object===&lt;br /&gt;
新しい`vtkhdfWrite` function objectは、既存の`vtkWrite` function objectをそのまま置き換えて使用できるように設計されています。&lt;br /&gt;
&lt;br /&gt;
既存の`vtkWrite`と同じkeywordをサポートします。&lt;br /&gt;
&lt;br /&gt;
`legacy`および`format` keywordも受け付けますが、VTK-HDF formatには適用されないため、指定されても無視されます。&lt;br /&gt;
&lt;br /&gt;
基本的な設定は以下です。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    type    vtkhdfWrite;&lt;br /&gt;
    libs    (foam-vtkhdfWrite);&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;今回の初期提供に対して十分な需要が確認された場合、将来のreleaseで以下への対応が検討されます。&lt;br /&gt;
*その他のOpenFOAM data generator&lt;br /&gt;
*Time-series data&lt;br /&gt;
*Static geometry&lt;br /&gt;
===foamToVTKHDF utility===&lt;br /&gt;
`foamToVTKHDF` utilityは、その名称が示す通り、`foamToVTK`のVTK-HDF版です。&lt;br /&gt;
&lt;br /&gt;
基本機能は`foamToVTK`とほぼ同じですが、現時点では以下のみを扱います。&lt;br /&gt;
*Volume geometry&lt;br /&gt;
*Volume field&lt;br /&gt;
現在、以下には対応していません。&lt;br /&gt;
*Finite-area&lt;br /&gt;
*Lagrangian data&lt;br /&gt;
*Special-purpose diagnostic dump&lt;br /&gt;
関連するtutorial exampleは提供されていません。&lt;br /&gt;
&lt;br /&gt;
これは、`vtkhdfWrite`および`foamToVTKHDF`が既存の`vtkWrite`および`foamToVTK`をdrop-in replacementとして利用できることを想定しているためです。&lt;br /&gt;
=Community=&lt;br /&gt;
==謝辞==&lt;br /&gt;
OpenFOAMに貢献してくださった以下のCommunity memberの皆様に、心より感謝いたします。&lt;br /&gt;
===貢献: Merge request===&lt;br /&gt;
*'''Robert Perry'''&lt;br /&gt;
**MR#823 - BUG: `Time::setControls`における`startTime`整合性checkのfalse-positiveを回避（#3544をclose）&lt;br /&gt;
**MR#810 - BUG: overflowを防ぐため、有効なpointのみを対象にsample statisticsを計算（#3526をclose）&lt;br /&gt;
**MR#808 - BUG: `nearWallFields`のcrashを防ぐ`invalidTetHandling` optionを追加（#3523をclose）&lt;br /&gt;
**MR#804 - ENH: `wallShearStress`で使用する`U` fieldを指定するoption&lt;br /&gt;
**MR#803 - BUG: `noise` utilityがEnsightの`collateTimes` writeOptionを無視する問題&lt;br /&gt;
**MR#801 - ENH: `createPatch -fields` optionによりfieldを保持可能&lt;br /&gt;
**MR#800 - ENH: `snappyHexMesh -no-intermediate-write` optionを追加&lt;br /&gt;
**MR#798 - ENH: `forces`／`forcesCoeffs`に含めるporous cellZoneを選択するoption&lt;br /&gt;
**MR#797 - ENH: `yPlus`のfield entryにより、使用する`U` fieldをユーザーが選択可能&lt;br /&gt;
**MR#786 - `fusedGauss`のTBB link問題を修正&lt;br /&gt;
&lt;br /&gt;
*'''tulasihazarath-mcw'''&lt;br /&gt;
**MR#829 - ENH: Windows on ARMのsupportを有効化&lt;br /&gt;
&lt;br /&gt;
*'''Sajad Khodadadi'''&lt;br /&gt;
**MR#815 - library、solver、tutorialおよびcore integration変更を含むImmersed Boundary frameworkを追加&lt;br /&gt;
**MR#814 - library、solver、tutorialおよび必要なcore integration変更を含むsolver-level Immersed Boundary frameworkを追加&lt;br /&gt;
&lt;br /&gt;
*'''Qizhe Wen'''&lt;br /&gt;
**MR#816 - Non-orthogonal mesh向けに`limitedCubic`を採用&lt;br /&gt;
&lt;br /&gt;
*'''Thorsten Zirwes'''&lt;br /&gt;
**MR#812 - https://bugs.openfoam.org/view.php?id=4279 で報告されたcubic schemeのbugfix&lt;br /&gt;
&lt;br /&gt;
*'''Marine Lasbleis'''&lt;br /&gt;
**MR#827 - BUG: `interFoam`のalpha equationでoff-centered coefficientが正しく使用されない問題&lt;br /&gt;
**MR#793 - `inverseDistance`に`.correctBoundaryConditions()`を追加する修正&lt;br /&gt;
&lt;br /&gt;
*'''David Von Rüden'''&lt;br /&gt;
**MR#805 - Tutorial: `interFoam`の`sloshingTank2D`で`Allclean`から`CleanFunctions`をsourceするよう修正&lt;br /&gt;
&lt;br /&gt;
*'''Ilya Popov'''&lt;br /&gt;
**MR#790 - `wmakeLnInclude`における`ln` callをbatch化&lt;br /&gt;
&lt;br /&gt;
*'''Zhisong Li'''&lt;br /&gt;
**MR#785 - `BoussinesqWaveModel.C`、`GrimshawWaveModel.C`、`McCowanWaveModel.C`のbugを修正&lt;br /&gt;
===貢献: Issue tracking===&lt;br /&gt;
*Gerasimos Chourdakis（MakisH）: v2512 — Ubuntu 24.04向けDebian packageが破損 GL#3480&lt;br /&gt;
*Masashi Imano（masaz）: `ThirdParty-v2512.tgz`へのlink切れ（404 Not Found） GL#3482&lt;br /&gt;
*Robert Perry（skoloCFD）: `pitzDaily_fused` tutorialが実行できない問題 GL#3485&lt;br /&gt;
*franco otaola（otaola.franc）: `blockMesh`のprojectionに関する問題 GL#3490&lt;br /&gt;
*Carsten Thorenz（cthorenz）: `fvOptions` — geometric selectionが反対方向へ移動する問題 GL#3491&lt;br /&gt;
*Carsten Thorenz（cthorenz）: `fvOptions` — geometric selectionが誤ったconsole情報を生成する問題 GL#3492&lt;br /&gt;
*xpqiu（xpqiu）: SPDP modeにおける`ensightSurfaceWriter`の予期しない動作 GL#3493&lt;br /&gt;
*Frederic Simonis（fsimonis）: Ubuntu 25.10 Questingにおけるpackage mismatch GL#3496&lt;br /&gt;
*Asahi Yoshimitsu（YAsahi）: `chtMultiRegionTwoPhaseEulerFoam`と`jouleHeatingSource`の組み合わせで存在しないtime directoryを読み込もうとする問題 GL#3499&lt;br /&gt;
*xpqiu（xpqiu）: PIMPLE dictionary内の`residualControl`に関する可能性のあるbug GL#3500&lt;br /&gt;
*Santiago Marquez Damian（santiagomarquezd）: `twoPhaseMixture`で作成後に`alpha2`が更新されなくなる問題 GL#3501&lt;br /&gt;
*Marine Lasbleis（marinelasbleis）: `inverseDistance` diffusivity GL#3502&lt;br /&gt;
*Mahi_848（MahishMohan）: `patchDistanceToCell`／`topoSet` GL#3503&lt;br /&gt;
*yongsheng fu（fuys）: `wmakeFilesAndOptions: command not found` GL#3505&lt;br /&gt;
*Masaru Sato（satorccm）: coded source termにおける`eqn.diag()`および`eqn.source()`の符号が逆 GL#3508&lt;br /&gt;
*David Von Ruden（OpenFoe）: Third-Party-v2512のScotch 6.1.0がUbuntu 25.10でbuildに失敗 GL#3510&lt;br /&gt;
*Yannick Eberhard（Yannick.Eberhard）: `propellerInfo` functionObjectが誤ったcylindrical velocityを計算 GL#3511&lt;br /&gt;
*Anna Hochberger（hochbean）: Solar radiationを追加するとsurfaceが冷却される問題 GL#3512&lt;br /&gt;
*GiuseppeGq20（GiuseppeGq20）: `snappyHexMesh` error — `wheelRotMesh`のstatic meshがv2106より新しいOpenFOAMで失敗 GL#3513&lt;br /&gt;
*Robert Perry（skoloCFD）: `snappyHexMesh`で最終meshのみを書き出し、intermediate stepを書き出さないoption GL#3515&lt;br /&gt;
*Robert Perry（skoloCFD）: `hostCollated`使用時にnode数を変更すると`redistributePar`が失敗する問題の修正 GL#3516&lt;br /&gt;
*Robert Perry（skoloCFD）: `driveAer` test caseにおける`fusedGauss`の大きな差異 GL#3519&lt;br /&gt;
*Robert Perry（skoloCFD）: `snappyHexMesh`およびutilityの高速化 — phaseごとのdecompositionと`foamMeshPipeline` GL#3520&lt;br /&gt;
*Robert Perry（skoloCFD）: sampled wall faceを有効なtet decompositionに配置できない場合に`nearWallFields`がcrashする問題 GL#3523&lt;br /&gt;
*Mark Olesen（olesenm）: Python binding supportの追加 GL#3524&lt;br /&gt;
*Robert Perry（skoloCFD）: single precision solveで無効なpointが存在する場合に`sample` utilityがcrashする問題 GL#3526&lt;br /&gt;
*Zhouping Li（bajfi）: `ISpanStream` bug GL#3530&lt;br /&gt;
*Robert Perry（skoloCFD）: `applyBoundaryLayer`でslip wall、`movingWallVelocity` patchなどを除外すべき問題 GL#3534&lt;br /&gt;
*Sajad Khodadadi（sajad.khodadadi）: library、solver、tutorialおよび必要なcore integration変更を含むsolver-level Immersed Boundary framework GL#3536&lt;br /&gt;
*tulasihazarath-mcw（tulasihazarath-mcw）: OpenFOAMのWindows on ARM（ARM64）support GL#3538&lt;br /&gt;
*Robert Perry（skoloCFD）: BUG — single precision DESがrestartに失敗。「Start time is not the same for all processors」 GL#3544&lt;br /&gt;
*Zhouping Li（bajfi）: `objectRegistry` bug GL#3550&lt;br /&gt;
*Alexey Matveichev（alexey.matveichev）: ENH — multi-region solver向けconvergence control GL#3555&lt;br /&gt;
*Zhouping Li（bajfi）: symmetry patch向け`PatchInteraction` GL#3556&lt;br /&gt;
*Zhouping Li（bajfi）: `StochasticCollision`のprobability comparison error GL#3559&lt;br /&gt;
*Rbemi（Rbemi）: `regionFaMaxCo`が読み込まれなくなった問題 GL#3560&lt;br /&gt;
=OpenFOAM Teamについて=&lt;br /&gt;
OpenFOAMは、KeysightのOpenFOAM core teamによって開発されています。&lt;br /&gt;
*Andrew Heather&lt;br /&gt;
*Mattijs Janssens&lt;br /&gt;
*Mark Olesen&lt;br /&gt;
*Prashant Sonakar&lt;br /&gt;
*Pawan Ghildiyal&lt;br /&gt;
*Kutalmış Berçin&lt;br /&gt;
*Matej Forman&lt;br /&gt;
*Chiara Pesci&lt;br /&gt;
*Martin Lichtmes&lt;br /&gt;
*Jiri Polansky&lt;br /&gt;
*Niloufar Bordbar&lt;br /&gt;
*Vijaya Kumar G&lt;br /&gt;
*Swapnil Salokhe&lt;br /&gt;
*Matthieu Niess&lt;br /&gt;
*Solange Lecat&lt;br /&gt;
より広範なサポートとして、&lt;br /&gt;
*Keysight Technologiesのglobal team&lt;br /&gt;
からの支援を受けています。&lt;br /&gt;
&lt;br /&gt;
また、&lt;br /&gt;
*[https://www.openfoam.com/news/main-news/openfoam-v2606/community OpenFOAM Community]&lt;br /&gt;
からの貢献を受けています。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2512_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=883</id>
		<title>OpenFOAM v2512 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2512_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=883"/>
		<updated>2026-08-10T23:44:15Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「=OpenFOAM® v2512 新リリース= OpenFOAM Teamは、2025年12月リリースとなるOpenFOAM® v2512を発表しました。  このリリースでは、[https://www.openfoam.com/news/main-news/openfoam-v2506 OpenFOAM-v2506]の機能を、コードの多くの領域にわたって拡張しています。  新しい機能は、Keysightの顧客による支援を受けた開発、社内資金による開発、および[https://www.openfoam.com/governance/overview O…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=OpenFOAM® v2512 新リリース=&lt;br /&gt;
OpenFOAM Teamは、2025年12月リリースとなるOpenFOAM® v2512を発表しました。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、[https://www.openfoam.com/news/main-news/openfoam-v2506 OpenFOAM-v2506]の機能を、コードの多くの領域にわたって拡張しています。&lt;br /&gt;
&lt;br /&gt;
新しい機能は、Keysightの顧客による支援を受けた開発、社内資金による開発、および[https://www.openfoam.com/governance/overview OpenFOAM community]から提供された機能や変更を統合したものです。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはKeysightによって[http://www.gnu.org/licenses/quick-guide-gplv3.html GPL License]の下で配布されています。&lt;br /&gt;
&lt;br /&gt;
さまざまなLinuxおよびその他のPOSIXシステムでコンパイル可能な[https://gitlab.com/openfoam/core/openfoam/-/blob/master/doc/Build.md ソースコードパッケージ]に加え、このリリースでは複数の[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled コンパイル済みバイナリパッケージ]も提供されています。&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/debian Ubuntu Linux]: Ubuntu 24.04（LTS）、22.04（LTS）など向けのパッケージインストール。&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/suse openSUSE Linux]: Leap 16.0、15.7、15.6向けのパッケージインストール。&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/redhat Red Hat Linux系]: EPEL 9、Fedora 41、42向けのパッケージインストール。&lt;br /&gt;
*[https://hub.docker.com/r/opencfd/openfoam-dev/tags Apptainer images]: Docker Hubから`openfoam-dev:2606-apptainer`および`openfoam-dev:apptainer`として利用可能。&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージを利用するための3つの選択肢があります（[https://gitlab.com/openfoam/core/openfoam/-/wikis/precompiled/windows 詳細情報]）。&lt;br /&gt;
*Windows Subsystem for Linuxを使用する方法（Ubuntu、openSUSEなどをベースとする）。&lt;br /&gt;
*クロスコンパイルによるネイティブ実行ファイルを使用する方法。&lt;br /&gt;
*Dockerを使用する方法。&lt;br /&gt;
OpenFOAMのApptainerサポートは、事前に構築されたイメージではなくdescription fileによって提供されます。&lt;br /&gt;
*[https://gitlab.com/openfoam/packaging/containers packaging/containers]を参照してください。&lt;br /&gt;
macOSユーザーは、ソースコードからコンパイルするか、コンパイル済みパッケージをDocker containerから利用できます（[https://gitlab.com/openfoam/core/openfoam/-/wikis/building#darwin-mac-os 詳細情報]）。&lt;br /&gt;
=ニュース=&lt;br /&gt;
OpenFOAMリポジトリのGitLabへの移行が完了しました。&lt;br /&gt;
&lt;br /&gt;
v2506のリリース発表以降、OpenFOAMのすべてのcore repositoryは、従来の&amp;lt;nowiki/&amp;gt;https://develop.openfoam.com&amp;lt;nowiki/&amp;gt;から、新しい&amp;lt;nowiki/&amp;gt;https://gitlab.com/openfoam&amp;lt;nowiki/&amp;gt;へ正常に移行されました。&lt;br /&gt;
&lt;br /&gt;
現在、OpenFOAMのすべてのcore repositoryには以下からアクセスできます。&lt;br /&gt;
*https://gitlab.com/openfoam/core/openfoam&lt;br /&gt;
ユーザーはGitLabアカウントを作成することで、repositoryへのアクセス、issueの投稿、およびmerge requestによる貢献が可能です。&lt;br /&gt;
&lt;br /&gt;
今回の移行は、コミュニティでの共同開発をさらに進めるための重要な一歩となります。&lt;br /&gt;
&lt;br /&gt;
GitLabプラットフォームは、version control、merge request、code review workflowのための強化されたツールを提供しており、世界中のcontributorがOpenFOAMの開発へより容易に参加できるようになります。&lt;br /&gt;
&lt;br /&gt;
新しいrepository locationで作業を開始するには、remote URLを更新してください。また、OpenFOAMへの貢献を予定している場合はGitLabアカウントを作成してください。&lt;br /&gt;
&lt;br /&gt;
以前のプラットフォームのユーザー情報については、アカウント名の競合により完全には移行できませんでした。ただし、新しいGitLabアカウントは簡単に作成でき、作成後すぐにすべてのrepository機能を利用できます。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM Teamはコミュニティからの貢献を歓迎しています。GitLabへの移行以降、すでに複数のmerge requestを受け取り、対応しています。&lt;br /&gt;
&lt;br /&gt;
このような共同開発の取り組みにより、主要なオープンソースCFDプラットフォームとしてのOpenFOAMの位置付けがさらに強化されます。&lt;br /&gt;
=前処理=&lt;br /&gt;
==コミュニティ貢献: leak-path検出の改良==&lt;br /&gt;
shortestPathSetは、2組の点群を受け取り、その2組を接続する「mesh」上の経路を特定するline-sampling手法です。&lt;br /&gt;
&lt;br /&gt;
これは通常、メッシュのデバッグに使用されるほか、snappyHexMeshメッシュジェネレータでも使用されています。&lt;br /&gt;
&lt;br /&gt;
今回のリリースではRobert Perryによる貢献が取り込まれ、複雑な並列計算ケースにおいて複数の経路が存在する場合に、より適切に処理できるようになりました。&lt;br /&gt;
&lt;br /&gt;
`sets` Function Objectを使用してleak pathを検出する代表的な入力例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
leakFind&lt;br /&gt;
{&lt;br /&gt;
    type            sets;&lt;br /&gt;
&lt;br /&gt;
    writeControl    timeStep;&lt;br /&gt;
    interpolationScheme cell;&lt;br /&gt;
    setFormat       vtk;&lt;br /&gt;
&lt;br /&gt;
    // Needs at least one field&lt;br /&gt;
    fields          ( processorID );&lt;br /&gt;
&lt;br /&gt;
    sets&lt;br /&gt;
    {&lt;br /&gt;
        leakFind&lt;br /&gt;
        {&lt;br /&gt;
            type    shortestPath;&lt;br /&gt;
            insidePoints   ((3.0001 3.0001 0.43));&lt;br /&gt;
            outsidePoints  ((1 0 1.3));&lt;br /&gt;
            axis    xyz;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/sampling/sampledSet/shortestPath/shortestPathSet.H&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*$FOAM_TUTORIALS/mesh/snappyHexMesh/insidePoints&lt;br /&gt;
*$FOAM_TUTORIALS/mesh/snappyHexMesh/motorBike_leakDetection&lt;br /&gt;
===GitLab Issue===&lt;br /&gt;
*Issue #3464&lt;br /&gt;
*Issue #3453&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #779&lt;br /&gt;
===貢献者===&lt;br /&gt;
Robert Perryによる貢献です。&lt;br /&gt;
==コミュニティ貢献: createPatchの改良==&lt;br /&gt;
createPatchユーティリティを使用して、boundary faceを既存または新規のpatchへ移動できるようになりました。&lt;br /&gt;
&lt;br /&gt;
今回のリリースでは、以下の機能が追加されています。&lt;br /&gt;
*patch fieldに対して指定された入力値を使用します（Alexey Matveichevによって提供されたpatch）。&lt;br /&gt;
*サイズが0のpatchを作成できるようになりました。&lt;br /&gt;
`patchFields`を使用した設定例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
//- Optional override of added patchFields. If not specified&lt;br /&gt;
//  any added patchFields are of type calculated.&lt;br /&gt;
patchFields&lt;br /&gt;
{&lt;br /&gt;
    p&lt;br /&gt;
    {&lt;br /&gt;
        type            fixedValue;&lt;br /&gt;
        value           uniform 300;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_UTILITIES/mesh/manipulation/createPatch&lt;br /&gt;
===GitLab Issue===&lt;br /&gt;
*Issue #2726&lt;br /&gt;
*Issue #3410&lt;br /&gt;
===貢献者===&lt;br /&gt;
Alexey Matveichevによる貢献です。&lt;br /&gt;
=数値計算=&lt;br /&gt;
&lt;br /&gt;
==gradient cachingの改良==&lt;br /&gt;
既存のgradient caching機能を発展させ、今回のリリースではgradientをin-placeで更新する機能が導入されました。これにより繰り返し行われていたメモリ割り当てが不要となり、gradient計算を多用する解析における計算オーバーヘッドが削減されます。&lt;br /&gt;
&lt;br /&gt;
Gradient cachingは`system/fvSolution`ファイルで設定します。ユーザーはpattern matchingを使用して、すべてのgradientまたは特定の変数のgradientについてcachingを有効にできます。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cache&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;grad(.*)&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;と設定します。&lt;br /&gt;
&lt;br /&gt;
改良されたcachingシステムでは、gradient用のストレージを一度だけ割り当て、fieldの値が変化した際にはそのストレージ上で値を直接更新します。&lt;br /&gt;
&lt;br /&gt;
これにより、わずかな設定だけで計算性能を向上させることができます。&lt;br /&gt;
&lt;br /&gt;
デモケースは以下に用意されています。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily_fused&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;このチュートリアルを使用した性能テストでは、以下のように段階的な性能向上が確認されています。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Gradient scheme             Time [s]&lt;br /&gt;
Gauss                       1.63&lt;br /&gt;
fusedGauss                  1.56&lt;br /&gt;
fusedGauss + cache all      1.40&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ユーザーはdebug出力を有効にすることで、cachingの動作を確認できます。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DebugSwitches&lt;br /&gt;
{&lt;br /&gt;
    solution    1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;通常、以下のようなメッセージが表示されます。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Cache: Calculating and caching grad(U) : allocating and calculating a gradient.&lt;br /&gt;
Cache: Reusing grad(U) : found a cached grad(U) originating from the same U.&lt;br /&gt;
Cache: Updating grad(U) : found cached grad(U) but U has changed so update.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/finiteVolume/finiteVolume/gradSchemes&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*$FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily_fused&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #764&lt;br /&gt;
==新しいexpression template==&lt;br /&gt;
今回のリリースには、field演算の実行方法を変えるexpression template libraryの初期バージョンが含まれています。&lt;br /&gt;
&lt;br /&gt;
この強力な最適化手法では、中間fieldのメモリ割り当てを排除し、複数の演算を単一の計算kernelへ統合するとともに、GPU offloadingを含むハードウェアアクセラレーションを可能にします。&lt;br /&gt;
&lt;br /&gt;
基本機能はcontainer level（List）で動作し、さらにgeometric field level（volScalarFieldなど）で動作するよう拡張されています。&lt;br /&gt;
&lt;br /&gt;
実用的な例として、fused scheme群があります。&lt;br /&gt;
&lt;br /&gt;
なお、現在の機能仕様はまだ確定したものではなく、コードは引き続き活発に開発されています。&lt;br /&gt;
&lt;br /&gt;
以下は、CPU上での`volScalarField` expressionのテスト例です。&lt;br /&gt;
&lt;br /&gt;
'''単純な代数演算'''&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
c = a + b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;'''複雑な代数演算'''&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
c = cos(a + 0.5*sqrt(b-sin(a)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===注意事項===&lt;br /&gt;
GeometricFieldに対するexpression evaluationは、以下の3つの独立した評価に分けられます。&lt;br /&gt;
*internal field&lt;br /&gt;
*uncoupled patch field&lt;br /&gt;
*coupled patch field&lt;br /&gt;
AMDから提供された革新的な機能により、fused patch evaluationが可能になりました。&lt;br /&gt;
&lt;br /&gt;
この機能では、すべてのuncoupled patch（またはcoupled patch）が単一のkernelによって処理されます。これにより、多数のboundary patchを持つケースでは性能を大幅に向上できます。&lt;br /&gt;
===用途===&lt;br /&gt;
*現在の機能は、基本的なListおよびGeometricFieldについてテストされています。&lt;br /&gt;
*Off-loading機能は、AMDおよびNVIDIAの主要なunified-memory architecture上でテストされています。&lt;br /&gt;
*現在の構文はかなり冗長であり、より簡単に使用できるようにするための開発が進められています。&lt;br /&gt;
*Expression templatingは、surface fieldやfinite-area fieldなど、任意のGeometricFieldへ適用できます。&lt;br /&gt;
*内部的には、incompressible kEpsilonおよびkOmegaモデルのexpression template版が作成されており、既存モデルを比較的容易に変換できることが実証されています。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/OpenFOAM/expressionTemplates/ListExpression.H&lt;br /&gt;
*$FOAM_SRC/OpenFOAM/expressionTemplates/GeometricFieldExpression.H&lt;br /&gt;
*$FOAM_SRC/fused/finiteVolume/fusedGaussLaplacianSchemes.C&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*$FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily_fused&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #764&lt;br /&gt;
==AMI: 新しいcached interpolation addressingおよびweight==&lt;br /&gt;
Arbitrary Mesh Interpolation（AMI）のstencilおよびweightをcacheできるようになりました。&lt;br /&gt;
&lt;br /&gt;
これにより、特にコア数の多い環境において、移動メッシュ解析の性能を大幅に向上できる可能性があります。&lt;br /&gt;
&lt;br /&gt;
新しいcaching機能では、保存されている情報を再利用することで、AMI構築時の並列通信およびstencil assemblyを不要にします。&lt;br /&gt;
&lt;br /&gt;
初期テストでは、移動する車輪を含む外部空力解析において、コア数が多い場合に10～30%の高速化が確認されました。&lt;br /&gt;
&lt;br /&gt;
固定時間刻みを使用し、1回転が整数個のtime stepに分割されている場合に最適な性能が得られます。この場合、cacheされた情報を直接再利用できます。&lt;br /&gt;
&lt;br /&gt;
それ以外の場合には、cacheされたinstance間で線形補間が適用されます。&lt;br /&gt;
&lt;br /&gt;
Cacheされた値はangular binに保存されます。&lt;br /&gt;
&lt;br /&gt;
binは`polyMesh/boundary`ファイルでpatchを定義する際に、オプションの`cacheSize`エントリを使用して指定します。&lt;br /&gt;
&lt;br /&gt;
例えば、1度間隔でbinを作成する場合は以下のように設定します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
AMI1&lt;br /&gt;
{&lt;br /&gt;
    type            cyclicAMI;&lt;br /&gt;
    AMIMethod       faceAreaWeightAMI;&lt;br /&gt;
    neighbourPatch  AMI2;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    // New optional entries&lt;br /&gt;
&lt;br /&gt;
    // Cache size: deactivated if not present/zero-sized&lt;br /&gt;
    cacheSize       360;&lt;br /&gt;
&lt;br /&gt;
    // Always store a set of AMI data if the bin is empty&lt;br /&gt;
    forceCache      false;&lt;br /&gt;
&lt;br /&gt;
    // Maximum number of bins from current bin to search to construct&lt;br /&gt;
    // the interpolation stencil. Default = 2&lt;br /&gt;
    nThetaStencilMax 2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation&lt;br /&gt;
*$FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation/AMICache.H&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*$FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/mixerVesselAMI2D&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #744&lt;br /&gt;
==GAMG: 新しいdecomposition agglomeration==&lt;br /&gt;
GAMG solver向けの新しいdecomposition agglomeration手法では、既存の領域分割アルゴリズムを利用します。&lt;br /&gt;
&lt;br /&gt;
これにより、研究者や上級ユーザーはmultigridのcoarsening strategyを検討する際に、より柔軟な設定を行えるようになります。&lt;br /&gt;
&lt;br /&gt;
入力例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
p&lt;br /&gt;
{&lt;br /&gt;
    solver          GAMG;&lt;br /&gt;
    smoother        GaussSeidel;&lt;br /&gt;
    agglomerator    decomposition;&lt;br /&gt;
    decompositionCoeffs&lt;br /&gt;
    {&lt;br /&gt;
        numberOfSubdomains  8;&lt;br /&gt;
        method              scotch;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Optional renumbering&lt;br /&gt;
    // renumber         true;&lt;br /&gt;
&lt;br /&gt;
    // Optional avoid enforcing connectedness of each coarse level&lt;br /&gt;
    // forceConnected   false;&lt;br /&gt;
&lt;br /&gt;
    interpolateCorrection   true;&lt;br /&gt;
    nCellsInCoarsestLevel   8;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;`numberOfSubdomains`パラメータを制御することで、ユーザーは個々の問題特性および計算要件に合わせてcoarsening levelを細かく調整できます。&lt;br /&gt;
&lt;br /&gt;
一般的に、2段階を超えるcoarsening levelを使用する場合には、second-order correctionを使用することが推奨されます。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
interpolateCorrection true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;decomposition methodは起動時に各coarse cellに対して呼び出されるため、計算全体のコストが増加することに注意が必要です。&lt;br /&gt;
&lt;br /&gt;
Connectivity enforcement処理では、領域の接続性を維持するためにcoarse levelのcellが追加生成される場合があります。ただし、`forceConnected`を`false`に設定することで、この処理を無効化できます。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
forceConnected false;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;また、Scotchなどのdecomposition methodは、コンパイルオプションによって非決定論的な動作を示す場合があり、連続した計算実行の間で結果に差異が生じる可能性があることに注意してください。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/parallel/decompose/decompositionMethods/decompositionAgglomeration&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #774&lt;br /&gt;
==コミュニティ貢献: GAMGの再現可能な計算結果==&lt;br /&gt;
この改良は、geometric agglomeration（faceAreaPairGAMGAgglomeration）を使用する解析の再現性に関するものです。&lt;br /&gt;
&lt;br /&gt;
一部のアーキテクチャでは、agglomerationの結果が実行ごとに変化する場合があります。&lt;br /&gt;
&lt;br /&gt;
これは、OpenMP形式のoffloadingを使用した場合に、agglomerationの構築処理が異なる経路をたどる可能性があることに起因します。&lt;br /&gt;
&lt;br /&gt;
初期agglomerationに何らかの変化が生じると、その影響は最も粗いlevelに至るまで、agglomeration全体へ伝播します。&lt;br /&gt;
&lt;br /&gt;
その結果、収束挙動にも違いが生じます。この影響はtoleranceを厳しくすることである程度軽減できます。&lt;br /&gt;
&lt;br /&gt;
この問題を発見し、修正したAMDに感謝いたします。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/pairGAMGAgglomeration&lt;br /&gt;
===GitLab Issue===&lt;br /&gt;
*Issue #3450&lt;br /&gt;
===貢献者===&lt;br /&gt;
Advanced Micro Devices（AMD）&lt;br /&gt;
=ソルバーおよび物理モデル=&lt;br /&gt;
==乱流: kEpsilonモデル向けの新しいtwo-layer wall treatment==&lt;br /&gt;
標準k-epsilonモデルは高Reynolds数モデルであるため、例えば`y+ &amp;lt; 11`のように壁面近傍を解像した格子では、壁面せん断応力および熱流束の予測が不正確になります。&lt;br /&gt;
&lt;br /&gt;
この問題に対応するため、two-layer wall treatmentが導入されました。&lt;br /&gt;
&lt;br /&gt;
壁面に近いinner-layerでは、代数関係式によって`νt`および`ε`を定義します。一方、outer-layerでは、これらの値を標準k-epsilonモデルから求めます。&lt;br /&gt;
&lt;br /&gt;
このモデルは、オプションの`twoLayerTreatment`フラグによって有効化できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、このフラグは無効になっています。&lt;br /&gt;
&lt;br /&gt;
平板上の流れのケースでは、`y+ ∼ 1`の格子において、skin frictionおよびNusselt数の予測値が高くなることが確認できます。&lt;br /&gt;
&lt;br /&gt;
これに対して、`twoLayerTreatment`フラグを使用すると、格子依存性が大幅に低減します。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/TurbulenceModels/turbulenceModels/RAS/kEpsilon&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #783&lt;br /&gt;
==Finite-area: 新しいzonal dynamicContactAngle==&lt;br /&gt;
Finite-area frameworkに、zoneに基づいてcontact angleを指定する機能が追加されました。&lt;br /&gt;
&lt;br /&gt;
これにより、液膜表面上で空間的に変化する濡れ特性を設定できるようになりました。&lt;br /&gt;
&lt;br /&gt;
例えば、複数の材料で構成される表面や、領域ごとに異なる化学処理が施された表面など、領域によってcontact angleが異なる複雑な状況をモデル化できます。&lt;br /&gt;
&lt;br /&gt;
Contact angleは、contact lineにおける力のバランス計算に影響するため、液膜が固体表面上でどのように広がり、時間発展するかを決定する重要な要素です。&lt;br /&gt;
&lt;br /&gt;
従来は、finite-area surfaceごとに単一のcontact angle値しか指定できなかったため、不均一な濡れ挙動を表現する能力に制限がありました。&lt;br /&gt;
&lt;br /&gt;
`dynamicContactAngle`モデルでは、persistent field storageを使用することで、zoneに基づく定義をサポートするようになりました。&lt;br /&gt;
&lt;br /&gt;
これにより、`setFields`ユーティリティを使用して、空間的に変化するcontact angle分布を設定できます。&lt;br /&gt;
&lt;br /&gt;
液膜のforce modelにおけるzone-based contact angleは、以下のように設定します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
// Mandatory entries&lt;br /&gt;
forces (dynamicContactAngle);&lt;br /&gt;
&lt;br /&gt;
dynamicContactAngleCoeffs&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    Ccf             &amp;lt;scalar&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    mode            &amp;lt;word&amp;gt;;&lt;br /&gt;
    hCrit           &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    distribution    &amp;lt;subDict&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Conditional entries&lt;br /&gt;
        // Option-1: when 'mode' is 'zonal'&lt;br /&gt;
        // 'dynamicContactAngleForce:theta' field can be set using 'setFields'&lt;br /&gt;
        // utility. If there is no such field, a zero field is assigned&lt;br /&gt;
        // to the entire finite-area surface, ie single zone. The units of&lt;br /&gt;
        // the 'dynamicContactAngleForce:theta' field is [deg].&lt;br /&gt;
&lt;br /&gt;
        // Option-2: when 'mode' is 'filmSpeed'&lt;br /&gt;
        Utheta           &amp;lt;Function1&amp;lt;scalar&amp;gt;&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
        // Option-3: when 'mode' is 'filmTemperature'&lt;br /&gt;
        Ttheta           &amp;lt;Function1&amp;lt;scalar&amp;gt;&amp;gt;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/regionFaModels/liquidFilm/subModels/kinematic/force/contactAngleForces/dynamicContactAngleForce/dynamicContactAngleForce.H&lt;br /&gt;
==Finite-area: 新しいImmersed Boundary Method（IBM）==&lt;br /&gt;
今回のリリースでは、finite area（FA）libraryに新しいImmersed Boundary Method（IBM）機能が追加されました。&lt;br /&gt;
&lt;br /&gt;
これにより、境界形状に適合したメッシュを作成することなく、複雑な形状と薄膜との相互作用をより柔軟にモデル化できるようになりました。&lt;br /&gt;
&lt;br /&gt;
このモデルは新しい`regionFaModel`として実装されています。&lt;br /&gt;
&lt;br /&gt;
Velocity boundary fieldの設定で`kinematicThinFilmIBM`を選択することで有効化できます。&lt;br /&gt;
&lt;br /&gt;
例えば、新しく追加されたwindshieldチュートリアルでは、`U`の境界条件を以下のように設定します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
myPatch&lt;br /&gt;
{&lt;br /&gt;
    type                velocityFilmShell;&lt;br /&gt;
    ...&lt;br /&gt;
    region              film;&lt;br /&gt;
&lt;br /&gt;
    // New model: kinematicThinFilmIBM&lt;br /&gt;
    liquidFilmModel     kinematicThinFilmIBM;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;このモデルを使用するには、`&amp;lt;constant&amp;gt;/regionFaIBMProperties`ファイルが必要です。&lt;br /&gt;
&lt;br /&gt;
このファイルに各bodyを記述します。&lt;br /&gt;
&lt;br /&gt;
例えば、以下のように設定します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
IBM1&lt;br /&gt;
{&lt;br /&gt;
    surface             &amp;quot;&amp;lt;constant&amp;gt;/surface1.obj&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    solidBodyMotionFunction ...;&lt;br /&gt;
&lt;br /&gt;
    // Motion properties for body IBM1&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
IBM2&lt;br /&gt;
{&lt;br /&gt;
    surface             &amp;quot;&amp;lt;constant&amp;gt;/surface2.obj&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    solidBodyMotionFunction ...;&lt;br /&gt;
&lt;br /&gt;
    // Motion properties for body IBM2&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;各obstacleは閉じたsurface geometry fileによって表現されます。&lt;br /&gt;
&lt;br /&gt;
また、それぞれのobstacleには`solidBodyMotionFunction`を使用してmotionを設定できます。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/regionFaModels/liquidFilm/kinematicThinFilmIBM/regionFaIBM&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*$FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/windshield&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #784&lt;br /&gt;
=後処理=&lt;br /&gt;
==Function Object: mapFieldsの改良==&lt;br /&gt;
`mapFields` Function Objectが拡張され、mesh motionを扱えるようになりました。&lt;br /&gt;
&lt;br /&gt;
代表的な入力dictionaryは以下のようになります。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type            mapFields;&lt;br /&gt;
    libs            (fieldFunctionObjects);&lt;br /&gt;
    mapRegion       myTetMesh;&lt;br /&gt;
    mapMethod       cellVolumeWeight;&lt;br /&gt;
    consistent      yes;&lt;br /&gt;
    fields          (U); // (&amp;quot;U.*&amp;quot; &amp;quot;p.*&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;上記の例では、転送先メッシュ（`mapRegion`）は`cellDecomposer` Function Objectを使用して別途生成されていることに注意してください。&lt;br /&gt;
&lt;br /&gt;
`cellDecomposer` Function Objectは、cellをtetrahedronへ分割することができます。&lt;br /&gt;
&lt;br /&gt;
元ページの図は、`mixerVesselAMI2D`チュートリアルの移動メッシュ上のvelocity fieldを、静止メッシュへmappingした結果を示しています。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/functionObjects/field/mapFields/mapFields.H&lt;br /&gt;
===GitLab Issue===&lt;br /&gt;
*Issue #3472&lt;br /&gt;
==Function Object: wallHeatFluxの改良と新しいgauge model==&lt;br /&gt;
Heat-flux gaugeは、実験装置の壁面に設置される物理的な計測装置です。&lt;br /&gt;
&lt;br /&gt;
その多くは水冷されているため、gaugeの温度は周囲の壁面温度とは異なります。&lt;br /&gt;
&lt;br /&gt;
従来、このような計測装置をシミュレーションするには、OpenFOAMの`wallHeatFlux` Function Objectを使用するために、各gauge位置に小さな専用patchを作成する必要がありました。このため、メッシュ生成やケース設定が複雑になっていました。&lt;br /&gt;
&lt;br /&gt;
新しいgauge wall-heat flux後処理機能では、個別のpatchを作成することなく、heat-flux gaugeを通過する対流および放射熱流束を計算できます。&lt;br /&gt;
&lt;br /&gt;
これらのgaugeは任意の位置に指定でき、以下の物性を設定できます。&lt;br /&gt;
*温度&lt;br /&gt;
*吸収率&lt;br /&gt;
*放射率&lt;br /&gt;
出力は、以下の熱流束予測値について、それぞれ個別のファイルとして提供されます。&lt;br /&gt;
*対流熱流束&lt;br /&gt;
*放射熱流束&lt;br /&gt;
*全熱流束&lt;br /&gt;
さらに、`wallHeatFlux` Function Objectのリファクタリングが行われ、将来的に追加のheat flux modelを組み込めるような構造になりました。&lt;br /&gt;
&lt;br /&gt;
なお、今回の更新には既存の`wallHeatFlux`設定との後方互換性が含まれています。&lt;br /&gt;
&lt;br /&gt;
gauge modelの最小構成例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
FOwallHeatFlux&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type        wallHeatFlux;&lt;br /&gt;
    libs        (fieldFunctionObjects);&lt;br /&gt;
    model       gauge;  // or 'wall' for the existing wallHeatFlux model&lt;br /&gt;
    Tgauge      &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    patch       &amp;lt;word&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    absorptivity  &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    emissivity    &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    T             &amp;lt;word&amp;gt;;&lt;br /&gt;
    qin           &amp;lt;word&amp;gt;;&lt;br /&gt;
    alphat        &amp;lt;word&amp;gt;;&lt;br /&gt;
    convective    &amp;lt;bool&amp;gt;;&lt;br /&gt;
    radiative     &amp;lt;bool&amp;gt;;&lt;br /&gt;
    writeFields   &amp;lt;bool&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Inherited entries&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/functionObjects/field/wallHeatFlux/wallHeatFlux.H&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*$FOAM_TUTORIALS/compressible/rhoSimpleFoam/squareBend&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #767&lt;br /&gt;
==Function Object: 新しいradiometer probes model==&lt;br /&gt;
`radiometerProbes` Function Objectを使用することで、計算領域内の任意の位置における入射放射熱流束をモニタリングできるようになりました。&lt;br /&gt;
&lt;br /&gt;
この機能により、放射解析をboundary surfaceだけでなく計算領域内部へ拡張できます。&lt;br /&gt;
&lt;br /&gt;
例えば、以下のような用途に利用できます。&lt;br /&gt;
*放射センサーの配置検討&lt;br /&gt;
*内部熱環境の評価&lt;br /&gt;
従来、入射放射熱流束（`qin`）の計算はboundary patch faceに限定されており、解析可能な位置は表面上に限られていました。&lt;br /&gt;
&lt;br /&gt;
そのため、計算領域内部の点で放射データを必要とする技術者や研究者には、直接的なsampling手段がありませんでした。&lt;br /&gt;
&lt;br /&gt;
新しいFunction Objectは、OpenFOAMの`probes` sampling基盤を利用することでこの問題を解決し、ユーザーが指定した計算領域内の位置において、方向を考慮した入射放射を取得できるようにします。&lt;br /&gt;
&lt;br /&gt;
`radiometerProbes` Function Objectの最小構成例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
radiometer&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type                radiometerProbes;&lt;br /&gt;
    libs                (utilityFunctionObjects);&lt;br /&gt;
    probeLocations      (&amp;lt;vectorList&amp;gt;);&lt;br /&gt;
    probeNormals        (&amp;lt;vectorList&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
    // Inherited entries&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/functionObjects/utilities/radiometerProbes/radiometerProbes.H&lt;br /&gt;
===Merge request===&lt;br /&gt;
*Merge request #766&lt;br /&gt;
=基盤機能=&lt;br /&gt;
==メモリ: メモリ割り当てを回避する新しいPatchField関数==&lt;br /&gt;
この機能強化は、最新の計算機アーキテクチャ上でOpenFOAMの性能を向上させるための継続的な取り組みの一環です。&lt;br /&gt;
&lt;br /&gt;
現在のprocessorでは、cache効率やmemory bandwidthが性能を左右する重要な要因となっており、メモリ割り当てに伴うオーバーヘッドの影響がますます大きくなっています。&lt;br /&gt;
&lt;br /&gt;
まず、patch field関数はtemporary fieldを戻り値として返す代わりに、結果を格納するbufferを引数として受け取るようになりました。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
patchNeighbourField(UList&amp;lt;Type&amp;gt;&amp;amp; result)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;が、&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
tmp&amp;lt;Field&amp;lt;Type&amp;gt;&amp;gt; patchNeighbourField()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;に代わって使用されます。&lt;br /&gt;
&lt;br /&gt;
次に、`GeometricField` objectのinternal storage部分は、`Field`ではなく`DynamicField`から派生するようになりました。&lt;br /&gt;
&lt;br /&gt;
これにより、address可能なサイズを超えるstorageを自動的に扱えるようになります。&lt;br /&gt;
&lt;br /&gt;
追加のstorageは一度だけ割り当てられ、その後はfieldとともに保持されます。&lt;br /&gt;
&lt;br /&gt;
この追加storageは、API callによってデータを書き込むためのscratchpadとして使用されます。また、internal valueと取得したboundary valueに対して、同じindexingを使用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
このscratchpadを使用しない場合のオーバーヘッドは、単一の`label`のみであり、ほぼゼロです。&lt;br /&gt;
&lt;br /&gt;
これらの拡張機能はfused discretisation methodで使用されています。&lt;br /&gt;
&lt;br /&gt;
これにより、`fvPatchFields`に対する演算で発生するメモリ割り当ての大部分を回避できます。&lt;br /&gt;
&lt;br /&gt;
さらに、offloadingを目的としたcell-based loopの実装も大幅に簡略化されます。&lt;br /&gt;
===チュートリアル===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/blob/OpenFOAM-v2512/tutorials/incompressible/simpleFoam/pitzDaily_fused $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily_fused]&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/blob/OpenFOAM-v2512/src/fused $FOAM_SRC/fused]&lt;br /&gt;
===Merge request===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/merge_requests/757 Merge request #757]&lt;br /&gt;
==メモリ: Memory pool==&lt;br /&gt;
最新の計算機アーキテクチャをサポートするための継続的な取り組みの一環として、OpenFOAMの`List`および`Field` containerで[https://umpire.readthedocs.io/ Umpire memory management]を使用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
Memory poolの使用は、特にGPUシステムやhigh-bandwidth memoryを搭載したシステムで重要となります。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMがUmpireを有効にしてコンパイルされている場合、その使用方法は`FOAM_MEMORY_POOL`環境変数または`memory_pool` optimisation switchによって制御できます。&lt;br /&gt;
&lt;br /&gt;
現在は、以下のmemory poolを選択できます。&lt;br /&gt;
*host memory&lt;br /&gt;
*device memory&lt;br /&gt;
*managed（unified）memory&lt;br /&gt;
さらに、memory poolのサイズやincrementに関するパラメータも設定できます。&lt;br /&gt;
&lt;br /&gt;
Memory poolへのinterfaceは外部から詳細が見えないopaqueな構造として維持されています。&lt;br /&gt;
&lt;br /&gt;
このため、既存のOpenFOAM installationにmemory pool supportを追加する場合でも、ごくわずかな再コンパイル（OSspecific）と再リンク（OpenFOAM）だけで対応できます。&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/blob/OpenFOAM-v2512/src/OSspecific/POSIX/memory/MemoryPool.cxx $FOAM_SRC/OSspecific/POSIX/memory/MemoryPool.cxx]&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/blob/OpenFOAM-v2512/src/OpenFOAM/memory/pool/MemoryPool.H $FOAM_SRC/OpenFOAM/memory/pool/MemoryPool.H]&lt;br /&gt;
==VTK: OpenFOAM/VTK基盤の更新==&lt;br /&gt;
将来的な新しいVTKHDF data formatへの対応を見据え、OpenFOAM/VTK基盤の調整がすでに進められています。&lt;br /&gt;
&lt;br /&gt;
`globalOffset`などの並列計算基盤の更新に加え、unstructured（volume）meshの内部管理機構では、現在のstream-based formattingに代わる方法として、global addressing spaceをサポートするようになりました。&lt;br /&gt;
&lt;br /&gt;
VTKHDF formatは新しい標準として引き続き発展しているため、今後のOpenFOAMリリースでもさらなる対応が追加される予定です。&lt;br /&gt;
=ユーザビリティ=&lt;br /&gt;
==ParaView: reader moduleの改良==&lt;br /&gt;
OpenFOAMの[https://paraview.org/ ParaView]向け追加reader module（`paraFoam`）が更新され、新しいmulti-area finite-area frameworkをサポートするようになりました。&lt;br /&gt;
&lt;br /&gt;
Finite-area frameworkの更新の一環として、area fieldはvolume fieldおよびpoint fieldとは別に登録されるようになりました。&lt;br /&gt;
&lt;br /&gt;
これに対応して、reader moduleには新しくarea fieldを選択する項目が追加されました。&lt;br /&gt;
&lt;br /&gt;
ParaViewの`blockMeshDict` reader module（`paraFoam -block`）も更新され、異なるregionをサポートするようになりました。&lt;br /&gt;
&lt;br /&gt;
また、blockMeshのpointについては、OpenFOAMで使用されているものと同じ精度（floatまたはdouble）が維持されるようになりました。&lt;br /&gt;
==Repository: GitLabへの移行が正常に完了==&lt;br /&gt;
OpenFOAM repositoryのGitLabへの移行が完了しました。&lt;br /&gt;
&lt;br /&gt;
v2506のリリース発表以降、OpenFOAMのすべてのcore repositoryは、従来のプラットフォームである&amp;lt;nowiki/&amp;gt;https://develop.openfoam.com&amp;lt;nowiki/&amp;gt;から、新しい&amp;lt;nowiki/&amp;gt;https://gitlab.com/openfoam&amp;lt;nowiki/&amp;gt;へ正常に移行されました。&lt;br /&gt;
&lt;br /&gt;
現在、OpenFOAMのすべてのcore repositoryには以下からアクセスできます。&lt;br /&gt;
*https://gitlab.com/openfoam/core/openfoam&lt;br /&gt;
ユーザーはGitLabアカウントを作成することで、repositoryへのアクセス、issueの投稿、およびmerge requestによる貢献が可能です。&lt;br /&gt;
&lt;br /&gt;
今回の移行は、コミュニティによる共同開発をさらに進めるための重要な一歩となります。&lt;br /&gt;
&lt;br /&gt;
GitLabプラットフォームは、version control、merge request、およびcode review workflowのための強化されたツールを提供しています。&lt;br /&gt;
&lt;br /&gt;
これにより、世界中のcontributorがOpenFOAMの開発へより容易に参加できるようになります。&lt;br /&gt;
&lt;br /&gt;
新しいrepository locationで作業を開始するには、remote URLを更新してください。また、OpenFOAMへの貢献を予定している場合には、GitLabアカウントを作成してください。&lt;br /&gt;
&lt;br /&gt;
以前のプラットフォームのユーザー情報については、アカウント名の競合により完全には移行できませんでした。&lt;br /&gt;
&lt;br /&gt;
ただし、新しいGitLabアカウントは簡単に作成でき、作成後すぐにすべてのrepository機能を利用できます。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM Teamはコミュニティからの貢献を歓迎しています。&lt;br /&gt;
&lt;br /&gt;
GitLabへの移行以降、すでに複数のmerge requestを受け取り、対応しています。&lt;br /&gt;
&lt;br /&gt;
このような共同開発の取り組みにより、主要なオープンソースCFDプラットフォームとしてのOpenFOAMの位置付けがさらに強化されます。&lt;br /&gt;
=並列計算=&lt;br /&gt;
==Collated-IO==&lt;br /&gt;
Collated formatを処理するコードが更新され、簡素化されました。&lt;br /&gt;
&lt;br /&gt;
今回の変更では、データ転送時のメモリオーバーヘッドを削減するとともに、rank間で必要となる並列処理の協調動作（同期ポイント）の一部を削減することを目的としています。&lt;br /&gt;
&lt;br /&gt;
Non-collatedのmaster-only writingでは、ファイル内容が利用可能になった時点で書き込みを行うpolling dispatch方式が使用されるようになりました。&lt;br /&gt;
&lt;br /&gt;
従来のcollated writingに加えて、今回のバージョンではcollated formatのbackendとしてMPI-IOを使用するオプションも追加されています。&lt;br /&gt;
&lt;br /&gt;
作成されるファイルは、既存および過去のcollated formatと完全な後方互換性があります。&lt;br /&gt;
&lt;br /&gt;
つまり、MPI-IOを使用してcollated fileを作成し、それを古いバージョンのOpenFOAMで読み込むことができます。&lt;br /&gt;
&lt;br /&gt;
一時的に使用する場合、ユーザーはcollated backendのoptimization switchを使用して選択できます。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpirun -np NN redistributePar \&lt;br /&gt;
    -decompose -parallel \&lt;br /&gt;
    -fileHandler collated -opt-switch collated.backend=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;と指定します。&lt;br /&gt;
&lt;br /&gt;
継続的に使用する場合は、`etc/controlDict`内の対応するentryを変更できます。&lt;br /&gt;
==OffsetRangeおよびGlobalOffset==&lt;br /&gt;
新しい`OffsetRange`および`globalOffset` containerは、メモリおよび通信のオーバーヘッドを最小限に抑えながら、global addressingを簡単に扱うためのものです。&lt;br /&gt;
&lt;br /&gt;
これらはいずれも、start、size、totalの情報を保持するシンプルで軽量なcollectionですが、slabまたはhyperslab addressingと呼ばれるaddressing方式の意味付けを提供します。&lt;br /&gt;
&lt;br /&gt;
使用例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
globalOffset cellSlab = mesh.nCells();&lt;br /&gt;
globalOffset pointSlab = mesh.nPoints();&lt;br /&gt;
globalOffset faceSlab = mesh.nFaces();&lt;br /&gt;
&lt;br /&gt;
Foam::reduceOffsets(comm, cellSlab, pointSlab, faceSlab);&lt;br /&gt;
&lt;br /&gt;
Info&amp;lt;&amp;lt; &amp;quot;nCells:&amp;quot; &amp;lt;&amp;lt; cellSlab.total() &amp;lt;&amp;lt; nl;&lt;br /&gt;
&lt;br /&gt;
// OR&lt;br /&gt;
&lt;br /&gt;
List&amp;lt;globalOffset&amp;gt; slabs = ...;&lt;br /&gt;
&lt;br /&gt;
Foam::reduceOffsets(comm, slabs);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*$FOAM_SRC/OpenFOAM/primitives/ranges/offsets/OffsetRange.H&lt;br /&gt;
*$FOAM_SRC/OpenFOAM/parallel/globalOffset/globalOffset.H&lt;br /&gt;
==MPI Intrinsics==&lt;br /&gt;
今回のバージョンでは、`Pstream` libraryにいくつかの小規模ながら有用な変更が加えられました。&lt;br /&gt;
&lt;br /&gt;
`Pstream`はMPIへの中間interfaceであり、上位レベルのコードを特定のMPI versionやMPI vendorから分離する役割を持っています。&lt;br /&gt;
===ScanおよびExscan===&lt;br /&gt;
`Pstream` classに、これまで対応していなかった`MPI_Scan`および`MPI_Exscan`（exclusive scan）関数へのinterfaceが追加されました。&lt;br /&gt;
&lt;br /&gt;
これらの機能はこれまで特に必要とされていませんでしたが、exclusive scan関数をsummationと組み合わせることで、globalに一貫したoffsetを生成するための非常に有用でscalableな方法を提供できます。&lt;br /&gt;
&lt;br /&gt;
また、現在の`globalIndex`で必要となる通信よりも、通信オーバーヘッドを削減できます。&lt;br /&gt;
===Broadcast===&lt;br /&gt;
今回のバージョンではbroadcast機能が拡張され、任意のrankをrootとしてprimitive dataをbroadcastできるようになりました。&lt;br /&gt;
&lt;br /&gt;
これにより、異なるprocessor rankが処理を担当し、データを配布するような協調アルゴリズムを構築できます。&lt;br /&gt;
===find_first、find_last===&lt;br /&gt;
新しい`UPstream::find_first()`および`UPstream::find_last()` methodは、異なるprocessor rank間で処理を協調させるための便利で低コストな手段を提供します。&lt;br /&gt;
&lt;br /&gt;
使用例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// Find the first rank with a valid reference point&lt;br /&gt;
&lt;br /&gt;
label refCelli = mesh.findCell(&amp;lt;point&amp;gt;, ...);&lt;br /&gt;
&lt;br /&gt;
label ranking = UPstream::find_first((refCelli &amp;gt;= 0), communicator);&lt;br /&gt;
&lt;br /&gt;
if (ranking &amp;lt; 0)&lt;br /&gt;
{&lt;br /&gt;
    // Nobody found it - try something else&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Lowest rank takes the lead&lt;br /&gt;
if (ranking != UPstream::myProcNo(communicator))&lt;br /&gt;
{&lt;br /&gt;
    refCelli = -1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この例では、有効なreference pointを検出した最初のrankを検索しています。&lt;br /&gt;
&lt;br /&gt;
どのrankも検出できなかった場合には、別の処理を実行できます。&lt;br /&gt;
&lt;br /&gt;
有効なreference pointが見つかった場合には、最も番号の小さいrankが処理を担当します。&lt;br /&gt;
&lt;br /&gt;
この例をさらに拡張し、他のrankへ情報をbroadcastするかどうかを決定することもできます。&lt;br /&gt;
===reduceOffset、reduceOffsets===&lt;br /&gt;
新しい`Foam::reduceOffset()`および`Foam::reduceOffsets()`関数は、メモリおよび通信のオーバーヘッドを最小限に抑えながら、globalに一貫したoffset rangeを定義するための機能です。&lt;br /&gt;
&lt;br /&gt;
これらの関数では、新たに追加された`Exscan`関数を利用して各rank固有のoffsetを決定します。&lt;br /&gt;
&lt;br /&gt;
さらに、更新されたbroadcast methodと組み合わせることで、全体のsizeをすべてのrankへ通知します。&lt;br /&gt;
&lt;br /&gt;
既存の`globalIndex`と比較すると、この新しい方法ではMPIの`Allgather`通信パターンを`Exscan`とbroadcastに置き換えることで、scalabilityを向上させています。&lt;br /&gt;
&lt;br /&gt;
また、`reduceOffsets()`関数を使用することで、複数のoffset collectionをまとめて計算できます。&lt;br /&gt;
&lt;br /&gt;
この関数では、すべての値をまとめて通信するため、必要となるMPI function callは正確に2回だけです。&lt;br /&gt;
=プラグイン=&lt;br /&gt;
==新しいplugin: Research repository==&lt;br /&gt;
`plugins` submoduleに新しいrepositoryである[https://gitlab.com/openfoam/community/research Research]が追加されました。&lt;br /&gt;
&lt;br /&gt;
新しいResearch repositoryは、OpenFOAM本体のリリースにはまだ含まれていない、実験的または研究用途のOpenFOAM開発成果を共有するためのプラットフォームとして導入されました。&lt;br /&gt;
&lt;br /&gt;
このrepositoryは、以下のような開発成果を公開するためのstaging areaとして使用されます。&lt;br /&gt;
*まだ開発が完了していないもの&lt;br /&gt;
*非常に実験的なもの&lt;br /&gt;
*特殊な用途に特化したもの&lt;br /&gt;
*その他、core distributionへ含める準備が整っていないもの&lt;br /&gt;
一方で、これらの成果はユーザーや研究者にとって有用である可能性があり、同様のcustom applicationを開発する際の実装例としても利用できます。&lt;br /&gt;
&lt;br /&gt;
このrepositoryの内容は現状のまま提供されます。&lt;br /&gt;
&lt;br /&gt;
安定性、後方互換性、長期的なサポートは保証されていません。また、API、名称、動作などが予告なく変更される場合があり、componentそのものが削除される可能性もあります。&lt;br /&gt;
&lt;br /&gt;
各開発成果は自己完結した構成となっており、通常は以下のものが含まれています。&lt;br /&gt;
*コード&lt;br /&gt;
*`README.md`または`README.pdf`によるドキュメント&lt;br /&gt;
*オプションのtest case&lt;br /&gt;
Repositoryに最初に収録されたmodelとその概要は以下の通りです。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Directory                         Context                 Short description&lt;br /&gt;
redistributedResistivityAlgorithm Solver                  多孔質媒体向けRhie-Chow interpolation method&lt;br /&gt;
FastRK                            Solver                  fractional methodに基づくpressure-velocity coupling algorithm&lt;br /&gt;
PRECISE                           Incompressible solver   PISOに代わるpressure-velocity coupling algorithm&lt;br /&gt;
HelicalForce                      Lagrangian              指定した軸周りのparcelのhelical motion&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;各modelの詳細については以下を参照してください。&lt;br /&gt;
*[https://gitlab.com/openfoam/community/research/-/blob/main/redistributedResistivityAlgorithm/README.pdf redistributedResistivityAlgorithm]&lt;br /&gt;
*[https://gitlab.com/openfoam/community/research/-/blob/main/FastRK/README.pdf FastRK]&lt;br /&gt;
*[https://gitlab.com/openfoam/community/research/-/blob/main/PRECISE/README.pdf PRECISE]&lt;br /&gt;
*[https://gitlab.com/openfoam/community/research/-/blob/main/HelicalForce/README.pdf?ref_type=heads HelicalForce]&lt;br /&gt;
==Re-Distributed Resistivity algorithm==&lt;br /&gt;
CFDによる単相流体のmacro-scale porosity modellingでは、fluid-porous interface近傍で物理的に妥当な数値解を得ることが一般的な課題となります。&lt;br /&gt;
&lt;br /&gt;
アルゴリズム上の特別な対策を行わない場合、このinterfaceにおける材料物性、特にporous resistivityの不連続性によって、数値解に望ましくない振動が発生する可能性があります。&lt;br /&gt;
&lt;br /&gt;
Fluid-porous domainの急峻なinterface近傍で発生する非物理的な振動を回避する有望な手法として、[https://dx.doi.org/10.1016/j.jcp.2015.11.035 Nordlund et al. (2016)]によるRe-Distributed Resistivity（RDR）algorithmがあります。&lt;br /&gt;
&lt;br /&gt;
この手法では、従来のPISO algorithmおよびRhie-Chow interpolation methodが修正されています。&lt;br /&gt;
&lt;br /&gt;
さらに、PISOのpredictor stepの前に追加の処理が導入され、porous resistanceをinterfaceに隣接するcellへ再分配します。&lt;br /&gt;
&lt;br /&gt;
高Reynolds数かつ低Darcy数の流れにおけるtime-stepの制約を回避するため、modeling termはimplicitに扱われます。&lt;br /&gt;
&lt;br /&gt;
標準PISOとRDR algorithmを使用し、fluid-porous interfaceにおいて流れ方向に1-to-2のmesh refinementを適用したtest結果が示されています。&lt;br /&gt;
&lt;br /&gt;
詳細およびその他のtestについては以下を参照してください。&lt;br /&gt;
*[https://gitlab.com/openfoam/community/research/-/blob/main/redistributedResistivityAlgorithm/README.pdf redistributedResistivityAlgorithm::README.pdf]&lt;br /&gt;
掲載されている比較結果は以下の通りです。&lt;br /&gt;
*Mesh: 流れ方向に1-to-2 refinement&lt;br /&gt;
*Streamwise flow speed: 流れ方向に1-to-2 refinement&lt;br /&gt;
*Centreline streamwise-velocity profile: 流れ方向に1-to-2 refinement&lt;br /&gt;
==Fast Runge-Kutta method==&lt;br /&gt;
DES/LES approachを使用した非定常性の強いsimulationでは、SIMPLE系のpressure-velocity coupling algorithmは計算速度が遅いことが報告されています。&lt;br /&gt;
&lt;br /&gt;
Pressure-velocity coupling algorithmの別の手法として、fractional-step（projection）algorithmがあります。&lt;br /&gt;
&lt;br /&gt;
Fractional-step algorithmはSIMPLE系algorithmと比較して、大規模な非定常simulationにおける計算コストの面で有利であることが報告されています。&lt;br /&gt;
&lt;br /&gt;
[https://doi.org/10.1016/j.jcp.2023.112557 Karam &amp;amp; Saad (2023)]によって提案された「FastRK」と呼ばれる有望な手法が実装されました。&lt;br /&gt;
&lt;br /&gt;
このalgorithm familyは、velocity fieldを以下の成分に分解するHelmholtz decompositionに基づいています。&lt;br /&gt;
*solenoidal（divergence-free）成分&lt;br /&gt;
*irrotational（curl-free）成分&lt;br /&gt;
この手法では、まずincompressibility constraintを必ずしも満たさないintermediate velocity fieldを計算します。&lt;br /&gt;
&lt;br /&gt;
その後、projection stepを実行してincompressibility constraintを満足させることで、pressureとvelocityをcouplingします。&lt;br /&gt;
&lt;br /&gt;
例として、2次元Taylor-Green vortex問題において以下のsimulation CPU timeが得られています。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Solver      tcpu [s]    Difference vs pisoFoam&lt;br /&gt;
pisoFoam       12.47    -&lt;br /&gt;
RK00            7.95     4.52&lt;br /&gt;
RK01           18.74    -6.27&lt;br /&gt;
RK10           19.37    -6.90&lt;br /&gt;
RK11           26.51   -14.04&lt;br /&gt;
RK000           9.21     3.26&lt;br /&gt;
RK001          18.06    -5.59&lt;br /&gt;
RK010          20.23    -7.76&lt;br /&gt;
RK100          15.47    -3.00&lt;br /&gt;
RK101          23.24   -10.77&lt;br /&gt;
RK110          25.08   -12.61&lt;br /&gt;
RK011          26.34   -13.87&lt;br /&gt;
RK111          31.3    -18.83&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この結果は各solverのCPU timeを比較したものです。&lt;br /&gt;
&lt;br /&gt;
詳細およびその他のtestについては以下を参照してください。&lt;br /&gt;
*[https://gitlab.com/openfoam/community/research/-/blob/main/FastRK/README.pdf FastRK::README.pdf]&lt;br /&gt;
==PRECISE algorithm==&lt;br /&gt;
Co-located-gridを使用したfinite-volume applicationでは、PISO algorithmがtime-stepおよびrelaxation factorに依存することが確認されています。&lt;br /&gt;
&lt;br /&gt;
これは主としてRhie-Chow interpolation methodに起因することが知られています。&lt;br /&gt;
&lt;br /&gt;
この問題に対する有望な手法の一つとして、[https://doi.org/10.2514/6.2024-3177 Ammad et al. (2024)]によって提案された「PRECISE」algorithmがあります。&lt;br /&gt;
&lt;br /&gt;
PRECISEは、&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
PISO with consistent Rhie and Chow Interpolation and Second-Order Extrapolation&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;の略称です。&lt;br /&gt;
&lt;br /&gt;
PRECISE algorithmでは、PISO algorithmにおけるtime-stepおよびrelaxation factorへの依存性が軽減されるとされています。&lt;br /&gt;
&lt;br /&gt;
さらに、second-order interpolation unitを追加することで、計算挙動の安定性が向上しています。&lt;br /&gt;
&lt;br /&gt;
元のtest caseを再現した結果に加え、under-relaxation factorおよびtime-step sizeを変化させた各種control studyの結果が示されています。&lt;br /&gt;
&lt;br /&gt;
掲載されている比較は以下の通りです。&lt;br /&gt;
*各solverにおけるlift coefficientの計算結果に対するunder-relaxation factorの影響の比較&lt;br /&gt;
*各solverにおけるlift coefficientの計算結果に対するtime-step sizeの影響の比較&lt;br /&gt;
詳細およびその他のtestについては以下を参照してください。&lt;br /&gt;
*[https://gitlab.com/openfoam/community/research/-/blob/main/PRECISE/README.pdf PRECISE::README.pdf]&lt;br /&gt;
===ソースコード===&lt;br /&gt;
*[https://gitlab.com/openfoam/core/openfoam/-/blob/OpenFOAM-v2512/plugins/research $WM_PROJECT_DIR/plugins/research]&lt;br /&gt;
===貢献者===&lt;br /&gt;
Markus Nordlund、Tony Saad、Ammad Ammad、およびその共同研究者の貴重な貢献と支援に感謝いたします。&lt;br /&gt;
=コミュニティ=&lt;br /&gt;
==謝辞==&lt;br /&gt;
OpenFOAMに貢献してくださった以下の方々に、心より感謝いたします。&lt;br /&gt;
===貢献: Merge request===&lt;br /&gt;
*'''Robert Perry''': leak path detection algorithmの`shortestPathSet`の改良: MR#779（merge済み）&lt;br /&gt;
**Sampling pointが複数のprocessorに分散している場合のmulti-processor robustnessを向上。&lt;br /&gt;
**Processor boundary付近のpointに対してperturbationを用いたcell searchを追加。&lt;br /&gt;
**Processor数が多い場合に処理が停止することを防ぐため、すべてのMPI reduction operationがすべてのprocessorから呼び出されることを保証。&lt;br /&gt;
**Target cellがlocalで見つからない場合に、最も近い有効なcellを検索するfallback mechanismを追加。&lt;br /&gt;
&lt;br /&gt;
*'''Yann R''': `rhoCentralFoam`で`localEuler`を使用した場合にCourant numberが誤って出力される問題を修正: MR#776（merge済み）。&lt;br /&gt;
&lt;br /&gt;
*'''Christian Rohr''': `simpleFoam`に`frozenFlow` optionを追加: MR#770（議論中）。&lt;br /&gt;
&lt;br /&gt;
*'''Carsten Thorenz''': wall functionにおけるcell-to-wall distance計算に関する問題: MR#773（議論中）。&lt;br /&gt;
&lt;br /&gt;
*'''AMD''': 再現性のあるagglomeration。&lt;br /&gt;
===貢献: Issue tracking===&lt;br /&gt;
*Johan Roenby（johan_roenby）: documentationおよびcommentの改善 GL#3457&lt;br /&gt;
*Chris Schleicher（PorscheGTIII）: `dynamicMotionSolverFvMeshAMI`使用時のrestartに関する問題 GL#3456&lt;br /&gt;
*Shinji Nakagawa（snaka）: Debian 12（Bookworm）向けprecompiled package（v2406）の不足 GL#3455&lt;br /&gt;
*Martin Niemann（mniemann）: `waveModel`がinflowで誤った方向にphaseを生成する問題 GL#3454&lt;br /&gt;
*Robert（Skolo）: 特定のcore数でのみleak path detectionによって`snappyHexMesh`がnullptr crashする問題 GL#3453&lt;br /&gt;
*Ian Cowan（Tobermory）: `multiRegionHeater` tutorial scriptのbug GL#3448&lt;br /&gt;
*Umut Can Coskun（umutcc）: `sphereDrop`の`Allrun-parallel`で`reconstructParMesh`が失敗する問題（v2406、v2506で確認） GL#3447&lt;br /&gt;
*Kumar Krishna（kpishar20）: `kinematicParcelFoam`のsource termに修正が必要 GL#3446&lt;br /&gt;
*Carsten Thorenz（cthorenz）: time steppingに関する問題 GL#3444&lt;br /&gt;
*Julio Pieri（JulioPieri）: PaSR combustion model使用時にprocessor subdomain内でscalar fieldが自発的に拡散／生成される問題 GL#3442&lt;br /&gt;
*Tobias Holzmann（shorty）: `ViscosityModels::read()`関数がどこからも呼び出されていない問題 GL#3441&lt;br /&gt;
*Martino Pinto（mPinto_TUDelft）: `sampleLine`によってsimulationが停止するbug GL#3437&lt;br /&gt;
*Martin Aunola（aunola）: `compressibleInterFoam`がrestartに失敗する問題 GL#3435&lt;br /&gt;
*MANOEL SILVINO ARAUJO（silvino）: `Foam::multiphaseMixture::calcAlphas()`のerror GL#3434&lt;br /&gt;
*muez abdalla（muez）: OpenFOAM MinGW版へのdead link GL#3433&lt;br /&gt;
*Shinji Nakagawa（snaka）: `ArrheniusNewtonian` modelでtemperatureに応じてviscosityが更新されない問題 GL#3432&lt;br /&gt;
*Sergey Lesnik（Serge）: parallel I/O性能を改善するcoherent mesh formatのリリース GL#3431&lt;br /&gt;
*Daniel Jasinski（daniel.jasinski）: `Ranges minMaxOp`がcomment outされているにもかかわらずTurboWGで使用されている問題 GL#3430&lt;br /&gt;
*Shinji Nakagawa（snaka）: Lee modelにおけるsolid-to-liquid mass transferの符号が誤っている問題 GL#3429&lt;br /&gt;
*Thorsten Zirwes（g3）: AMRと`fieldAverage`に関する問題 GL#3428&lt;br /&gt;
*Tomasz Gorniak（Gabriel777）: `https://dl.openfoam.com/add-debian-repo.sh`が停止している問題 GL#3425&lt;br /&gt;
*Carsten Thorenz（cthorenz）: `potentialFoam`で`flowRateInletVelocity`が誤って動作するbug GL#3424&lt;br /&gt;
*Charl Mare（Charlfmare）: OpenFOAM binary installationが動作しない問題 — `www.dl.openfoam.com`のアカウントが停止 GL#3423&lt;br /&gt;
*Johan Roenby（johan_roenby）: openfoam.com Webページに古いAPI linkが残っている問題 GL#3420&lt;br /&gt;
*Vigneshwaran Sankar（Vicky3141）: `foamFormatConvert` v2312で0以外のtimeについて`hostCollated` → `uncollated`のfield変換ができない問題 GL#3418&lt;br /&gt;
*Bagus Hanindhito（bagus）: OpenFOAMをsourceからcompileする際のOpenQBMM libraryのcompile error GL#3394&lt;br /&gt;
*Sam Mallinson（SamMallinson）: v2506のinstallation processが動作しない問題 GL#3417&lt;br /&gt;
*Mohamed Shabara（mshabara）: 複数のnested overset mesh GL#3416&lt;br /&gt;
*Christoph Petsch（zxchris）: Web site停止 GL#3415&lt;br /&gt;
*O L（olly）: `dl.openfoam.com`が停止している問題 GL#3414&lt;br /&gt;
*Ruyue Cheng（ruyue）: `patchFlowRateInjection` modelのbugにより、`sprayCloud`使用時にfloating point exceptionが発生する問題 GL#3413&lt;br /&gt;
*Timofey Mukha（timofeymukha）: OpenFOAM solverにcustom MPI communicatorを使用させる機能 GL#3408&lt;br /&gt;
*Mohammad Fazli（mostanad）: `icoReactingMultiphaseInterFoam`におけるsolid phase convection GL#3407&lt;br /&gt;
*L C（Gallinator）: `momentumError` function objectがporosityを考慮していない問題 GL#3403&lt;br /&gt;
*Aaron（aerogt3）: `surfaceHookup`がsurfaceを改善しないまま過剰なiterationを繰り返す問題 GL#3401&lt;br /&gt;
*Vi Ig（viSig）: `snappyHexMesh`のbug — cyclic boundary使用時のcastellation error GL#3400&lt;br /&gt;
*Filippo Pucci（filpucfd）: `chtMultiRegionSimpleFoam`における`decomposeParDict`と`useImplicit` GL#3399&lt;br /&gt;
*Daniel Jasinski（daniel.jasinski）: macOSで`viewFactorsGen`がfailure exit codeで終了する問題 GL#3398&lt;br /&gt;
*Aaron（aerogt3）: `noise` utilityがEnsightの`collatedTime` writeOptionを適用しない問題 GL#3397&lt;br /&gt;
*Daniel Jasinski（daniel.jasinski）: Windows版の`memInfo::populate`実装 GL#3396&lt;br /&gt;
*Marcelo Joao（gu1）: `prghPermeableAlphaTotalPressure`における`updateCoeffs(const scalarField&amp;amp; snGradp)`のERROR GL#3392&lt;br /&gt;
*O L（olly）: Linux Ubuntu EC2 instanceでOpenFOAM installer scriptをdownloadできない問題 GL#3391&lt;br /&gt;
*gng（gng015）: 64bit labelを使用したMinGWによるWindows向けcross compileができない問題 GL#3390&lt;br /&gt;
*sariew8（sariew8）: `icoReactingMultiphaseInterFoam`のbug report GL#3388&lt;br /&gt;
*Tobias Holzmann（shorty）: `RunFunctions`をprefixおよびlog file用log-directoryに対応させる改善 GL#3386&lt;br /&gt;
*Saurabh Deshkar（saurabhd_cdac）: OpenFOAM v1706のcompatibilityについて GL#3385&lt;br /&gt;
*Aaron（aerogt3）: v2506で多くの（またはすべての）utility／solverが`Finalising parallel run`の後に`opt-switch opt-switch`を出力する問題 GL#3384&lt;br /&gt;
*Gerasimos Chourdakis（MakisH）: Ubuntu 25.04向けDebian package GL#3382&lt;br /&gt;
*Thorsten Zirwes（g3）: time precisionの問題によりrestartできない問題 GL#3380&lt;br /&gt;
*Guanyang Xue（BrushXue）: `variableHeatTransfer`でdivision by zeroが発生する問題 GL#3475&lt;br /&gt;
*Ilya Popov（ipopov）: Web siteのRepositories pageが依然として古いrepositoryを参照している問題 GL#3473&lt;br /&gt;
*Johan Roenby（roenby）: `dynamicMotionSolverListFvMesh`と`displacementMotionSolvers`の非互換性 GL#3471&lt;br /&gt;
*Carsten Thorenz（cthorenz）: 複数のwall functionで誤ったcell-to-wall distanceが使用されているbug GL#3470&lt;br /&gt;
*Daniel Jasinski（daniel.jasinski1）: scalar transportにおけるnon-uniform diffusion coefficient GL#3469&lt;br /&gt;
*Frederic Simonis（fsimonis）: Ubuntu 25.10 Questing向けpackageの不足 GL#3467&lt;br /&gt;
*Bernhard Gschaider（bgschaid）: OpenCFDに対するTalos Security Advisory（TALOS-2025-2292） GL#3466&lt;br /&gt;
*Daniel Jasinski（daniel.jasinski1）: `porousBafflePressure`がDPM/MPPIC solverで動作しない問題 GL#3465&lt;br /&gt;
*Robert Perry（skoloCFD）: 特定のcore数でのみleak path detectionによって`snappyHexMesh`がnullptr crashする問題 GL#3464&lt;br /&gt;
*Yann R（Yann-R）: `rhoCentralFoam` — `localEuler`（LTS）使用時にCourant numberが誤って出力される問題 GL#3463&lt;br /&gt;
*Dag Feder（dagfeder）: `rotorDiskSource` — blade angleを使用したpropeller thrustおよびtorqueの計算 GL#3462&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2506_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=882</id>
		<title>OpenFOAM v2506 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2506_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=882"/>
		<updated>2026-08-10T23:03:09Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「 =Keysight OpenCFD、OpenFOAM® v2506をリリース= 5月1日より、OpenFOAM TeamはKeysight Technologiesの一員となりました。新しいKeysightのプロセスや組織構造への適応、および新しい同僚の間でOpenFOAMの認知度を高める活動など、統合作業によってTeamは多忙な日々を送っています。OpenFOAM Development Teamの構成に変更はなく、オープンソースに対する方針への取り組みも変…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=Keysight OpenCFD、OpenFOAM® v2506をリリース=&lt;br /&gt;
5月1日より、OpenFOAM TeamはKeysight Technologiesの一員となりました。新しいKeysightのプロセスや組織構造への適応、および新しい同僚の間でOpenFOAMの認知度を高める活動など、統合作業によってTeamは多忙な日々を送っています。OpenFOAM Development Teamの構成に変更はなく、オープンソースに対する方針への取り組みも変わりません。リリースについても、これまでと同じスケジュールで継続されます。&lt;br /&gt;
&lt;br /&gt;
7月にはドイツおよびインドから新しいメンバーを迎える予定で、今後数か月でDevelopment Teamをさらに拡大する計画です（求人情報も近日中に公開予定です）。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM Teamは、2025年6月リリースとなるOpenFOAM® v2506を発表しました。このリリースでは、[https://www.openfoam.com/news/main-news/openfoam-v2412 OpenFOAM-v2412]の機能を、コードの多くの領域にわたって拡張しています。&lt;br /&gt;
&lt;br /&gt;
新しい機能は、OpenCFDの顧客による支援を受けた開発、社内資金による開発、および[https://www.openfoam.com/governance/overview OpenFOAM community]から提供された機能や変更を統合したものです。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはOpenCFDによって[http://www.gnu.org/licenses/quick-guide-gplv3.html GPL License]の下で配布されています。&lt;br /&gt;
&lt;br /&gt;
さまざまなLinuxおよびその他のPOSIXシステムでコンパイル可能な[https://develop.openfoam.com/Development/openfoam/-/blob/master/doc/Build.md ソースコードパッケージ]に加え、このリリースでは複数の[https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled コンパイル済みバイナリパッケージ]も提供されています。&lt;br /&gt;
&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/debian Ubuntu Linux]: Ubuntu 24.04（LTS）、22.04（LTS）向けのパッケージインストール。&lt;br /&gt;
&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/suse openSUSE Linux]: Leap 15.6、15.5向けのパッケージインストール。&lt;br /&gt;
&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/redhat Redhat Linux系]: epel 9、Fedora 41、42向けのパッケージインストール。&lt;br /&gt;
&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージを利用するための3つの選択肢があります（[https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/windows 詳細情報]）。&lt;br /&gt;
&lt;br /&gt;
Windows Subsystem for Linuxを使用する方法（Ubuntu、openSUSEなどをベースとする）。&lt;br /&gt;
&lt;br /&gt;
クロスコンパイルによるネイティブ実行ファイルを使用する方法。&lt;br /&gt;
&lt;br /&gt;
Dockerを使用する方法。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのApptainerサポートは、事前に構築されたイメージではなく、description fileによって提供されます。&lt;br /&gt;
&lt;br /&gt;
[https://develop.openfoam.com/packaging/containers packaging/containers]を参照してください。&lt;br /&gt;
&lt;br /&gt;
macOSユーザーはソースコードからコンパイルするか、コンパイル済みパッケージをDocker containerから利用できます（[https://develop.openfoam.com/Development/openfoam/-/wikis/building#darwin-mac-os 詳細情報]）。&lt;br /&gt;
==ニュース==&lt;br /&gt;
今後数週間で、公開コードリポジトリを&amp;lt;nowiki/&amp;gt;https://develop.openfoam.com&amp;lt;nowiki/&amp;gt;から&amp;lt;nowiki/&amp;gt;https://gitlab.com/openfoam&amp;lt;nowiki/&amp;gt;へ移行する予定です。&lt;br /&gt;
&lt;br /&gt;
この変更はコラボレーションの強化を目的としています。例えば、よりgit-flowに近い形で、ユーザーがコードをforkし、ローカルで変更を行い、その変更をOpenFOAM Teamへ取り込むためのpull request／merge requestを発行できるようになります。&lt;br /&gt;
&lt;br /&gt;
残念ながら、ユーザーアカウントを移行することはできません。&lt;br /&gt;
&lt;br /&gt;
issue trackerやmerge requestなどに参加するユーザーは、https://gitlab.com&amp;lt;nowiki/&amp;gt;上で新たにアカウントを作成する必要があります。&lt;br /&gt;
==前処理==&lt;br /&gt;
===refineMeshの改良===&lt;br /&gt;
refineMeshユーティリティでは、ユーザー定義の座標系を使用して細分化方向を指定できるようになりました。&lt;br /&gt;
&lt;br /&gt;
例えば、以下のように設定します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt; coordinateSystem user;&lt;br /&gt;
&lt;br /&gt;
userCoeffs&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
type    cylindrical;&lt;br /&gt;
&lt;br /&gt;
origin  (0 0 0);&lt;br /&gt;
&lt;br /&gt;
e1      (1 0 0);    // tan1 direction&lt;br /&gt;
&lt;br /&gt;
e3      (0 1 0);    // normal direction&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;以下に、円筒ケースにおいて半径方向へ2段階の細分化を適用した例を示します。&lt;br /&gt;
====チュートリアル====&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/blob/OpenFOAM-v2506/tutorials/mesh/refineMesh/cylinder $FOAM_TUTORIALS/mesh/refineMesh/cylinder]&lt;br /&gt;
====ソースコード====&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/blob/OpenFOAM-v2506/applications/utilities/mesh/manipulation/refineMesh $FOAM_SRC/utilities/mesh/manipulation/refineMesh]&lt;br /&gt;
==境界条件==&lt;br /&gt;
===境界constraintの改良===&lt;br /&gt;
constraint境界のvalue fieldは、値の代入時に明示的に更新されるようになりました。&lt;br /&gt;
&lt;br /&gt;
これにより、例えばbuoyantSimpleFoamで知られていた問題が解決されます。buoyantSimpleFoamでは修正圧力（p_rgh）を解き、圧力（p）を明示的に更新します。この変更はunder-relaxation（不足緩和）にも適用されます。&lt;br /&gt;
&lt;br /&gt;
一例として、fanなどのjump cyclic条件を使用するケースがあります。この場合、fan jumpはconstraintであり、解析全体を通して考慮される必要があります。&lt;br /&gt;
&lt;br /&gt;
この変更により、constraint境界条件が一貫して適用されていなかった以前のバージョン（v2306より前）のコード動作が復元されます。&lt;br /&gt;
&lt;br /&gt;
下図はbuoyantSimpleFoamのケースから得られたものです。流れは左側から流入し（流れ方向はX軸に沿っています）、fan境界を通過することで旋回（オレンジ色のglyph）を持つようになります。&lt;br /&gt;
====ソースコード====&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/blob/OpenFOAM-v2506/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C $FOAM_SRC/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C]&lt;br /&gt;
====Merge request====&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/merge_requests/701 Merge request #701]&lt;br /&gt;
====Issue====&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/issues/3292 Issue #3292]&lt;br /&gt;
==数値計算==&lt;br /&gt;
===GAMG agglomerationの改良===&lt;br /&gt;
GAMG agglomeration tableの名前を指定できるようになりました。&lt;br /&gt;
&lt;br /&gt;
これにより、デフォルト名であるGAMGAgglomerationを上書きし、変数ごとに異なるagglomerationアルゴリズムや設定を使用できます。&lt;br /&gt;
&lt;br /&gt;
例えば、以下のように設定します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
h&lt;br /&gt;
{&lt;br /&gt;
    solver          GAMG;&lt;br /&gt;
    // Optional name (default is GAMGAgglomeration)&lt;br /&gt;
    name            hAgglomeration;&lt;br /&gt;
    agglomerator    algebraicPair;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この例では、変数hに対するGAMG agglomeration tableの名前としてhAgglomerationを指定し、agglomeratorとしてalgebraicPairを使用しています。&lt;br /&gt;
====ソースコード====&lt;br /&gt;
$FOAM_SRC/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.H&lt;br /&gt;
====Merge request====&lt;br /&gt;
MR !749&lt;br /&gt;
==後処理==&lt;br /&gt;
===新しいbladeForces Function Object===&lt;br /&gt;
新しいbladeForces Function Objectは、単一または複数のblade（例えばプロペラやタービン翼）について、推力、抗力、トルク、および揚力／抗力／圧力係数を計算します。&lt;br /&gt;
&lt;br /&gt;
主な目的は、半径方向に分割された各sectionについてblade特性を求めることです。&lt;br /&gt;
&lt;br /&gt;
既存のforcesおよびpropellerInfo Function Objectとは異なり、すべての局所的な物理量は円筒座標系を基準として計算されます。&lt;br /&gt;
&lt;br /&gt;
出力には以下が含まれます。&lt;br /&gt;
&lt;br /&gt;
半径方向の各binに対する係数&lt;br /&gt;
&lt;br /&gt;
面積加重された全体の係数&lt;br /&gt;
&lt;br /&gt;
積分された力およびトルク&lt;br /&gt;
&lt;br /&gt;
結果は、後処理を容易に行えるようVTK（.vtp）形式でも出力されます。&lt;br /&gt;
&lt;br /&gt;
すべてのsurface結果は内部的に登録され、surfaceFieldValueなどの他のFunction Objectからも利用できます。&lt;br /&gt;
====ソースコード====&lt;br /&gt;
$FOAM_SRC/functionObjects/forces/bladeForces&lt;br /&gt;
====チュートリアル====&lt;br /&gt;
$FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller1&lt;br /&gt;
===新しいfieldStatistics Function Object===&lt;br /&gt;
新しいfieldStatistics Function Objectは、ユーザーが指定したフィールドについて各種統計量を計算します。&lt;br /&gt;
&lt;br /&gt;
対象フィールドについて利用可能な統計量は以下の通りです。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
min        | 最小値&lt;br /&gt;
max        | 最大値&lt;br /&gt;
mean       | 算術平均値&lt;br /&gt;
variance   | 標本分散（不偏分散）&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;出力する統計量は、例えばUx、Uy、Uzのようなフィールドの各成分について求めることができます。また、mag(U)のようにフィールドの大きさについて求めることもできます。&lt;br /&gt;
&lt;br /&gt;
平均値は、算術平均または体積加重算術平均を使用して計算できます。&lt;br /&gt;
&lt;br /&gt;
さらに、統計量は計算領域全体について求めることも、internal fieldのみに限定して求めることもできます。&lt;br /&gt;
&lt;br /&gt;
最小構成の使用例を以下に示します。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
fieldStatistics1&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type             fieldStatistics;&lt;br /&gt;
    libs             (fieldFunctionObjects);&lt;br /&gt;
    fields           (&amp;lt;wordList&amp;gt;);&lt;br /&gt;
    statistics       (&amp;lt;wordList&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
// Optional entries&lt;br /&gt;
mode             &amp;lt;word&amp;gt;;&lt;br /&gt;
mean             &amp;lt;word&amp;gt;;&lt;br /&gt;
extrema          &amp;lt;bool&amp;gt;;&lt;br /&gt;
internal         &amp;lt;bool&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Inherited entries&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====ソースコード====&lt;br /&gt;
$FOAM_SRC/functionObjects/field/fieldStatistics/fieldStatistics.H&lt;br /&gt;
====チュートリアル====&lt;br /&gt;
$FOAM_TUTORIALS/incompressible/pisoFoam/RAS/cavity&lt;br /&gt;
====Merge request====&lt;br /&gt;
Merge request #732&lt;br /&gt;
==ユーザビリティ==&lt;br /&gt;
===Homebrewインストール向けの新しいmacOSサポート===&lt;br /&gt;
macOSユーザーは、OpenFOAMでより多くのHomebrewコンポーネントを使用できるようになりました。これには、Homebrewでインストールしたgccの使用も含まれます。&lt;br /&gt;
&lt;br /&gt;
Homebrew版gccを選択するには、通常、適切なWM_COMPILE_CONTROLも指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; export WM_COMPILE_CONTROL=&amp;quot;version=15&amp;quot; &amp;lt;/syntaxhighlight&amp;gt;と指定すると、Homebrewでインストールされたgcc-15、g++-15が選択されます。&lt;br /&gt;
&lt;br /&gt;
その他のHomebrewコンポーネントについては、bin/tools/foamConfigurePathsヘルパースクリプトが便利です。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; bin/tools/foamConfigurePaths -scotch-brew &amp;lt;/syntaxhighlight&amp;gt;を実行します。&lt;br /&gt;
&lt;br /&gt;
これにより、対応するconfigファイルが編集され、versionがsystemに設定されるとともに、brew --prefix PACKAGEから取得されたインストールパスが設定されます。&lt;br /&gt;
&lt;br /&gt;
既知のすべてのHomebrewコンポーネントを使用したい場合には、以下の簡単なショートカットも用意されています。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; bin/tools/foamConfigurePaths -with-homebrew &amp;lt;/syntaxhighlight&amp;gt;これらの変更により、macOSユーザーにとってOpenFOAMがより使いやすくなることが期待されます。&lt;br /&gt;
===一般的なユーザビリティ===&lt;br /&gt;
====Patch group====&lt;br /&gt;
patchおよびzoneの選択・除外処理が改良され、patch groupおよびzone groupの取り扱いが簡略化されました。&lt;br /&gt;
&lt;br /&gt;
この動作は、foamToEnsightやfoamToVTKなどのユーティリティ、およびensightWrite、vtkWrite Function Objectに導入されています。&lt;br /&gt;
====軽微なユーザビリティの改善====&lt;br /&gt;
一部の入力dictionaryでは、n（rev/s）の代わりにrpmを使用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
例えば、propeller Function Objectで使用できます。&lt;br /&gt;
==並列計算==&lt;br /&gt;
===並列計算基盤の変更===&lt;br /&gt;
今回のリリースでは、OpenFOAMとMPIを接続するbridge codeに、多数の低レベルな変更が加えられました。&lt;br /&gt;
&lt;br /&gt;
これらの変更の大部分は一般ユーザーからは見えない部分ですが、スケーラビリティの向上や、将来的な通信パターンの構築に役立ちます。&lt;br /&gt;
====MPIデータ型および演算への直接マッピング====&lt;br /&gt;
現在では、ほとんどの通信をMPIの基本データ型および事前定義された集約MPIデータ型へ直接マッピングできるようになりました。&lt;br /&gt;
&lt;br /&gt;
この変更により、fieldの通信ではバイト数ではなく要素数を送信するようになりました。&lt;br /&gt;
&lt;br /&gt;
通信されるデータ量そのものは変わりませんが、通信可能なデータ項目数はそれに応じて増加します。&lt;br /&gt;
&lt;br /&gt;
vectorの場合、MPIの制限に達するまでに通信可能なfieldのサイズが24倍に増加します。&lt;br /&gt;
&lt;br /&gt;
データ型のマッピングはコンパイル時に行われます。&lt;br /&gt;
&lt;br /&gt;
MPIデータ型へのマッピングに加えて、MPIの基本演算子についてもコンパイル時にマッピングする機能が通信基盤に追加されました。&lt;br /&gt;
&lt;br /&gt;
これらの変更により、例えば以下のコード&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
reduce(someVectors, maxOp());&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;は、複数のpoint-to-point通信を実行した後にbroadcastを行うのではなく、単一のMPI Allreduce呼び出しへマッピングされるようになりました。&lt;br /&gt;
====ノードトポロジー通信のサポート====&lt;br /&gt;
起動時には、以下のnode communicatorが常に作成されます。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
UPstream::commInterNode() - ノード間のcommunicator&lt;br /&gt;
UPstream::commLocalNode() - ノード内のcommunicator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これらは、より高速なローカルノード内通信を活用する、トポロジーを考慮したアルゴリズムを記述する際に役立ちます。&lt;br /&gt;
===新しいlocal AMI communicator===&lt;br /&gt;
cyclicA(C)MI patchを使用する大規模な並列計算では、多くの場合、AMI patchのfaceを保持しているprocessorは全processorのうちのごく一部に限られます。&lt;br /&gt;
&lt;br /&gt;
今回のリリースでは、ローカルなcommunicatorを割り当てることによって、A(C)MI固有の通信に実際に参加するprocessorのみにデータ転送を限定するようになりました。&lt;br /&gt;
&lt;br /&gt;
複数のAMI setを含む大規模ケースでは、これによって通信量および通信の重複を大幅に削減できる場合があります。&lt;br /&gt;
&lt;br /&gt;
新しい動作は、controlDictのOptimisationSwitchesセクションにあるlocalAMIComm設定によって制御されます。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
localAMIComm = 0 : 従来の動作 - すべてのprocessorを通信に含める&lt;br /&gt;
localAMIComm = 1 : デフォルト - patch faceを持つprocessorのみ&lt;br /&gt;
localAMIComm = 2 : 1と同様だが、processor 0を常に含める&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;option 1と2の違いは、option 1の場合、例えばAMI matchingのweightのmin/maxといった統計情報が、通常のprocessor 0ではなく、patch faceを持つprocessorのうち最も番号の小さいprocessorから出力される点です。&lt;br /&gt;
&lt;br /&gt;
並列実行方法によっては、その出力がログファイル内の通常とは異なる位置に現れる場合があります。他のすべてのメッセージはprocessor 0から出力されます。&lt;br /&gt;
&lt;br /&gt;
processor 0を常に追加するoption 2を使用すると、出力元を一定にすることができますが、その一方で追加のbottleneckが発生します。&lt;br /&gt;
&lt;br /&gt;
4096コア上で4組のAMI pairを持つ大規模ケースを使用した代表的な例では、以下の計算時間が得られました。&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
communicator                 time [s]&lt;br /&gt;
0 (all cores)                11514&lt;br /&gt;
1 (min cores)                 6349&lt;br /&gt;
2 (min cores + master)        6370&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;なお、これらの結果は1回の実行から得られたものです。&lt;br /&gt;
&lt;br /&gt;
コア数が少ない場合や、AMI pairの数が少ない場合には、この変更による効果は小さくなります。&lt;br /&gt;
====ソースコード====&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/blob/OpenFOAM-v2506/src/meshTools/AMIInterpolation/AMIInterpolation $FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation]&lt;br /&gt;
====コード====&lt;br /&gt;
[https://develop.openfoam.com/Development/openfoam/-/commit/34c933c1cebb66911629a3a29b2cefad7f6dfa12 Commit 34c933]&lt;br /&gt;
==コミュニティ==&lt;br /&gt;
===コミュニティ貢献: Turbulence Committee===&lt;br /&gt;
Turbulence Technical Committeeのリポジトリに、新しい機能が提供されたことをお知らせします。&lt;br /&gt;
*'''HelicitySpalartAllmaras''': Liuらによるhelicity correctionを組み込んだSpalart-Allmaras乱流モデル。&lt;br /&gt;
====ソースコード====&lt;br /&gt;
*$WM_PROJECT_DIR/plugins/turbulence-community&lt;br /&gt;
====貢献者====&lt;br /&gt;
University of WindsorのTurbomachinery and Unsteady Flows Research Groupによって開発されました。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMへの最初の実装はZhifan Yuによって行われ、その後Jeff Defoeによって、より新しいバージョンのOpenFOAM向けに更新されました。&lt;br /&gt;
===コミュニティ貢献: HPC Committee===&lt;br /&gt;
HPC Technical Committeeは、Ivan Spissoが主導した基礎的な取り組みを発展させ、benchmark suiteの大規模な更新と大幅な拡張を発表しました。&lt;br /&gt;
&lt;br /&gt;
更新されたリポジトリには現在30のbenchmark caseが含まれており、外部空力から反応流まで、幅広いCFDアプリケーションを網羅しています。&lt;br /&gt;
&lt;br /&gt;
メッシュサイズについても、数千セル規模のものから20億セルを超えるものまで含まれています。&lt;br /&gt;
&lt;br /&gt;
このbenchmark suiteは、ハードウェアアーキテクチャ、ソフトウェア環境、および設定方法の違いによる性能を評価するための標準的なリファレンスとして利用できます。特に、再現性と評価指標の一貫性を重視しています。&lt;br /&gt;
&lt;br /&gt;
この開発はexaFOAM projectの一環として、Henrik Rusche（Wikki GmbH）が主導するwork package内で実施されました。&lt;br /&gt;
&lt;br /&gt;
リポジトリの更新はSergey Lesnik（Wikki GmbH）が担当し、Charles Mockett（Upstream CFD）およびIvan Spisso（Leonardo Finmeccanica）との協力によって行われました。&lt;br /&gt;
&lt;br /&gt;
各ケースの作成者や設定に関する情報など、ケース固有の詳細については以下のリポジトリを参照してください。&lt;br /&gt;
*https://develop.openfoam.com/committees/hpc&lt;br /&gt;
====コミュニティ貢献: Turbomachinery Special Interest Group====&lt;br /&gt;
Turbomachinery Special Interest Groupは、OpenFOAM Governanceによる支援を受け、foam-extendのmixingPlaneコードをOpenFOAMへ移植しました。&lt;br /&gt;
*https://sourceforge.net/p/turbowg/mixingPlane&lt;br /&gt;
このコードはAMI coupled patchと互換性があり、foam-extendから移植されたGGIにも対応しています。&lt;br /&gt;
&lt;br /&gt;
このリポジトリには、軸流タービンに関する一連のチュートリアルも含まれています。&lt;br /&gt;
&lt;br /&gt;
これらのチュートリアルでは、以下の機能を使用した解析の設定例が提供されています。&lt;br /&gt;
*SRF&lt;br /&gt;
*MRF&lt;br /&gt;
*部分的な回転メッシュ&lt;br /&gt;
*cyclicAMI&lt;br /&gt;
*cyclicPeriodicAMI&lt;br /&gt;
*mixingPlane&lt;br /&gt;
*回転機械向けの特殊な境界条件&lt;br /&gt;
&lt;br /&gt;
*https://sourceforge.net/p/turbowg/axialTurbine&lt;br /&gt;
===謝辞===&lt;br /&gt;
OpenFOAMへ貢献してくださった以下の皆様に、心より感謝いたします。&lt;br /&gt;
====Issue trackingへの貢献====&lt;br /&gt;
*PorscheGTIII (Chris Schleicher) — fixedJumpAMI does not work for Distributed Parallel GL#3292&lt;br /&gt;
*tkeskita (Tuomo Keskitalo) — extrude2DMesh is sensitive to face normal direction GL#3293&lt;br /&gt;
*cris (Cristian Catellani) — Strange behavior of velocity field when using coupled velocity solver and domain symmetries are present GL#3294&lt;br /&gt;
*Nathanael3 (Victor Pozzobon) — Typo in twoPhaseEulerFoam GL#3295&lt;br /&gt;
*wyldckat (Bruno Santos) — api.openfoam.com &amp;quot;Invalid SSL certificate Error code 526&amp;quot; GL#3296&lt;br /&gt;
*pkanninen (Pekka) — castellatedBufferLayer fail if buffer zone is false in other patch GL#3297&lt;br /&gt;
*hnoda (Hiroshi Noda) — Not convert the force unit in the &amp;quot;umpedPointMovement&amp;quot; GL#3299&lt;br /&gt;
*tkeskita (Tuomo Keskitalo) — snappyHexMesh type castellatedBufferLayer crashes when using addBufferLayers false and true for adjacent patches GL#3300&lt;br /&gt;
*raffara2 (Maria Raffaella Vuolo) — Vertical profiles of k for atmospheric empty domain GL#3301&lt;br /&gt;
*tkeskita (Tuomo Keskitalo) — snappyHexMesh type castellatedBufferLayer always creates buffer layer on face zone type baffle GL#3302&lt;br /&gt;
*shorty (Tobias Holzmann) — functionObject energyScalar misses write() behavior GL#3303&lt;br /&gt;
*tkeskita (Tuomo Keskitalo) — snappyHexMesh type castellatedBufferLayer with face zones crash: All edges of face seem to have same neighbour GL#3304&lt;br /&gt;
*Ramkumar47 (Ramkumar) — new postprocessing application contribution GL#3305&lt;br /&gt;
*wyldckat (Bruno Santos) — API Doxygen-based website does not point to the correct location for the original source code files GL#3306&lt;br /&gt;
*tttt (Yanjun Tong) — Bug of thermo:mu on windows .exe version, compiled by mingw GL#3307&lt;br /&gt;
*a_reinhold (Alexander Reinhold) — chtMultiRegionFoam log files fluid regions incorrect GL#3309&lt;br /&gt;
*spignatiello (Sonia Pignatiello) — Non-physical linear momentum with PatchInjection/PatchFlowRateInjection + particle collisions in DPMFoam/MPPICFoam GL#3311&lt;br /&gt;
*burgreen (Greg Burgreen) — VoF rho improperly updated GL#3312&lt;br /&gt;
*darioZ (Dario Zivkovic) — Adding Crank-Nicolson off-centred flux correction to multiphaseInterFoam GL#3314&lt;br /&gt;
*raffara2 (Maria Raffaella Vuolo) — Vertical profiles of k not conserved for the case atmDownstreamDevelopment GL#3315&lt;br /&gt;
*otaolafr (franco otaola) — foamToEnsight crashing when having rhoInlet from thermo:rho.air GL#3317&lt;br /&gt;
*openfoamUser (openfoam user) — sampleCp file in the backwardFacingStep2D tutorial doesn't work GL#3319&lt;br /&gt;
*tsiapkinis (Iason Tsiapkinis) — Checker board effect with pimpleFoam and interfaceTracking GL#3320&lt;br /&gt;
*otaolafr (franco otaola) — error in sizeDistribution.h and tutorial case GL#3321&lt;br /&gt;
*reverseila (Ali Bozorgzadeh) — Incorrect Parsing of -with-bear and -bear-output-dir in AllwmakeParseArguments GL#3322&lt;br /&gt;
*biswa (Biswaroop Mukherjee) — Compilation Issues with dsmcfoamplus-v2306 GL#3324&lt;br /&gt;
*daniel.jasinski (Daniel) — Incorrect Heat Flux Coefficient Calculation with Radiation GL#3325&lt;br /&gt;
*SamMallinson (Sam Mallinson) — Tutorial: OpenFOAM-v2412 pimpleFoam/laminar/cylinder2D crashes GL#3327&lt;br /&gt;
*Lionel.Gamet (Lionel GAMET) — fixedJumpAMI (cyclicAMI) no longer runs in parallel GL#3328&lt;br /&gt;
*e.daniele (Elia Daniele) — foamDictionary works with binary files GL#3329&lt;br /&gt;
*atn (Antoine Bovesse) — Link to Native-windows version is broken GL#3330&lt;br /&gt;
*kstrien (Koen Strien) — GAMGAgglomeration unexpected caching behavior for multiple solvers GL#3332&lt;br /&gt;
*cthorenz (Carsten Thorenz) — snappyHexMesh type castellatedBufferLayer crashes GL#3333&lt;br /&gt;
*DL (David Ludlow) — volPointInterpolation fails on a subMesh, when the baseMesh contains cyclicAMIs and the subMesh doesn't. GL#3334&lt;br /&gt;
*Skolo (Robert) — distributedTriSurfaceMesh breaks distance-based refinementRegion when using subTriSurfaceMesh GL#3335&lt;br /&gt;
*dslarm (david lecomber) — Arm Compiler for Linux 24.10+ fails to compile OpenFOAM - due to removal of -fsimdmath flag GL#3336&lt;br /&gt;
*vaggelisp (Vaggelis Papoutsis) — v2412 does not compile with clang in distributions with an old flex version GL#3337&lt;br /&gt;
*Yann (Yann) — foamReport: wrong mesh statistics when running in parallel GL#3338&lt;br /&gt;
*janga (Jan Gärtner) — Rosin Rammler Distribution Mean Value Calculation GL#3342&lt;br /&gt;
*morella (Michael Orella) — WSL Syntax Error near unexpected token curl install script GL#3344&lt;br /&gt;
*DL (David Ludlow) — jumpCyclic (and jumpCyclicAMI) and derived boundary conditions will probably operate incorrectly in mixed precision (SPDP) mode. GL#3345&lt;br /&gt;
*Skolo (Robert) — Castellation runs infinitely until out of memory if a refinementRegion is partly outside domain - only in 2412 GL#3349&lt;br /&gt;
*e.daniele (Elia Daniele) — reorderPatches GL#3350&lt;br /&gt;
*muez (muez abdalla) — after sourcing openfoam paraview can not find libhdf5.so.103 GL#3351&lt;br /&gt;
*cthorenz (Carsten Thorenz) — functionObject surface sampling: Ensight collated format is not collated GL#3352&lt;br /&gt;
*otaolafr (franco otaola) — extra constants in tutorial case GL#3353&lt;br /&gt;
*DS.J (Da-Sol Joo) — The buoyancy solvers do not function correctly under cyclic boundary conditions. GL#3354&lt;br /&gt;
*Fahner (Tom) — Using an expression for d in atmBoundaryLayerInlet results in incorrect description upon writing GL#3355&lt;br /&gt;
*shorty (Tobias Holzmann) — Exend output of fvOptions with respect to the status of activate keyword GL#3356&lt;br /&gt;
*DamianHurschler (Damian Hurschler) — missing 'triSurface' directory in tutorial - /tutorials/incompressible/pimpleFoam/RAS/rotatingFanInRoom/constant GL#3358&lt;br /&gt;
*otaolafr (franco otaola) — bubbleColumnIATE tutorial wrongly defined GL#3362&lt;br /&gt;
*DIgitalPeer1 (Ishaa Patel) — Installing on fedora 42 GL#3363&lt;br /&gt;
*twhihehead (Tyson Whitehead) — Missing plugins tarball in v2412 release GL#3365&lt;br /&gt;
*gng015 (gng) — snappyHexMesh addLayer issue with relativeSizes enabled for v2312 and above GL#3369&lt;br /&gt;
*muez (muez abdalla) — runing multiphase LES case with adaptive mesh refinement result in floating point exception GL#3370&lt;br /&gt;
*MarianFuchs (Marian Fuchs) — Wrong definition of LES constant in sigma LES model GL#3371&lt;br /&gt;
*johan_roenby (Johan Roenby) — BUG: Wrong behaviour of cylinderToCell when axis is long GL#3378&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_14_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=881</id>
		<title>OpenFOAM 14 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_14_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=881"/>
		<updated>2026-08-10T22:50:19Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「=OpenFOAM 14 リリース= OpenFOAM Foundationは、CFD Directによって開発されたオープンソースCFDツールボックスOpenFOAMのバージョン14のリリースを発表しました。  バージョン14には、次のような機能が含まれています。setFieldsのような前処理ユーティリティを使用せずに、非一様フィールドおよび固定値境界条件を初期化するためのfield functionsおよびfunctionalFixedV…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=OpenFOAM 14 リリース=&lt;br /&gt;
OpenFOAM Foundationは、CFD Directによって開発されたオープンソースCFDツールボックスOpenFOAMのバージョン14のリリースを発表しました。&lt;br /&gt;
&lt;br /&gt;
バージョン14には、次のような機能が含まれています。setFieldsのような前処理ユーティリティを使用せずに、非一様フィールドおよび固定値境界条件を初期化するためのfield functionsおよびfunctionalFixedValue境界条件、入力パラメータの標準機能としての単位系（新しいfoamUnitsユーティリティおよび名前付き次元（named dimensions）によってサポート）、coded file input（dynamic code）フレームワークの全面的な改良と複数の新しいディレクティブ（#codeDict、#stream、#printなど）の追加、既存コードをより柔軟で拡張性が高く効率的なものへ置き換えるmodular Lagrangianのさらなる開発、MULESを用いた多相流アプローチによるXiFluid燃焼ソルバーの新しい全面的な書き換えなど、多数の機能が含まれています。&lt;br /&gt;
&lt;br /&gt;
CFD Directでは、OpenFOAM v14のトレーニングも提供されています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 14には、以下の主要な変更が含まれています。&lt;br /&gt;
&lt;br /&gt;
'''モジュラーソルバー''': isothermalFilmおよびisothermalFluidソルバーを改良。&lt;br /&gt;
&lt;br /&gt;
'''多相流''': multiphaseEulerソルバーにおける壁面沸騰および凝縮を改良。&lt;br /&gt;
&lt;br /&gt;
'''輸送／熱物性''': 液体、混合物、液膜、相の取り扱いを改良。&lt;br /&gt;
&lt;br /&gt;
'''燃焼''': XiFluidをMULESを用いた二相流ソルバーとして全面的に書き換え。&lt;br /&gt;
&lt;br /&gt;
'''Modular Lagrangian''': 80%まで完成した、柔軟で拡張性が高く効率的な代替機能。&lt;br /&gt;
&lt;br /&gt;
'''メッシュ''': メッシュ生成、ゾーン、NCC、メッシュ移動、surfaceに関する改良および機能追加。&lt;br /&gt;
&lt;br /&gt;
'''Function Object''': 渦の可視化およびflux計算を改良し、sectional forceを追加。&lt;br /&gt;
&lt;br /&gt;
'''フィールド／境界初期化''': 新しいfield functionsおよびfunctionalFixedValue境界条件。&lt;br /&gt;
&lt;br /&gt;
'''境界条件''': 熱境界条件を改良し、field functionsを使用して条件を簡略化。&lt;br /&gt;
&lt;br /&gt;
'''Coded Case Configuration''': coded file input用ディレクティブを改良および追加。&lt;br /&gt;
&lt;br /&gt;
'''単位と次元''': 単位を標準機能とし、新しいfoamUnitsユーティリティを追加。&lt;br /&gt;
&lt;br /&gt;
'''その他のケース設定''': 表面波の初期化などを簡略化。&lt;br /&gt;
&lt;br /&gt;
'''可視化''': 不正な入力ファイルを読み込んだ際にParaViewがクラッシュしにくいよう改良。&lt;br /&gt;
&lt;br /&gt;
'''ケース''': 熱放射、Joule heatingを伴う熱伝導などの新しい例題を追加。&lt;br /&gt;
&lt;br /&gt;
'''その他''': coded file inputを記述しやすくするため、プログラミング関連の機能を多数強化。&lt;br /&gt;
&lt;br /&gt;
約938件のコードcommit、約130件のissueを解決。&lt;br /&gt;
&lt;br /&gt;
ISO/IEC 14882:2014（C++14）: GCC v5.5以降、Clang v14以降でテスト済み。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 14は、x86 64bit（IntelおよびAMD CPUなど）およびARM 64bitハードウェアアーキテクチャ向けに、以下のプラットフォーム用パッケージとして提供されています。&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu Linux''': Ubuntu 22.04、24.04、26.04向けのパッケージインストール。&lt;br /&gt;
&lt;br /&gt;
'''Windows''': Ubuntuパッケージを使用したWindows Subsystem for Linux（WSL）によるインストール。&lt;br /&gt;
&lt;br /&gt;
'''macOS''': Ubuntuパッケージを使用したCanonical Multipassによるインストール。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 14 Source Packは、対応するLinuxプラットフォーム上でコンパイルできます。&lt;br /&gt;
==モジュラーソルバー==&lt;br /&gt;
'''一般''': モジュラーソルバーを誤って選択した場合のエラーメッセージを改善しました [ commit b2a4dbe5 ]。&lt;br /&gt;
&lt;br /&gt;
'''液膜''': isothermalFilmソルバーについて、固定速度境界条件において体積fluxを拘束するよう修正しました [ commit 521783a6 ]。また、体積fluxが速度と整合し、fixed-flux条件において液膜体積が保存されるよう修正しました [ commit aa7d0397 ]。&lt;br /&gt;
&lt;br /&gt;
'''熱''': isothermalFluidおよびその派生ソルバーについて、入口における超音速流れの取り扱いを改善しました [ commit 34ce8aaf ]。&lt;br /&gt;
&lt;br /&gt;
CFD DirectのProgramming CFDコースではモジュラーソルバーの作成方法を扱っており、すべてのコースでモジュラーソルバーを使用しています。&lt;br /&gt;
==多相流==&lt;br /&gt;
'''ソルバー''': multiphaseEulerソルバーにおけるPopulation Balanceについて、コード構造および入力ファイルの構文を簡略化しました [ commit fcf0025e ]。multiphaseEulerソルバーでは、surfaceScalarFieldにzeroFixedValue境界条件を使用できるようになりました。これにより、壁面で相fluxフィールドをゼロに保ち、適切なflux balanceを維持する際にも変更されないようにできます [ commit 1526d1b7 ]。&lt;br /&gt;
&lt;br /&gt;
'''物質移動（VTT Finlandからの貢献を含む）''': multiphaseEulerソルバーにwallCondensationおよびphaseSurfaceCondensationモデルを追加しました [ commit 7be080d2 ]。新しいalphatPhaseChangeWallFunction境界条件を使用することで、単一のpatch上で壁面沸騰と凝縮を同時に扱えるようになりました [ commit bc4d03d4 ]。wallCondensationのチュートリアル例 [ commit 08770d7e ] およびcondenserのチュートリアルケース [ commit eadb0749 ] を追加しました。&lt;br /&gt;
&lt;br /&gt;
'''粒子相''': 多相流におけるhomogeneous nucleationモデルをリファクタリングおよび改良し、CFDアルゴリズム上で最適なタイミングに更新計算を行うようにしました [ commit 3f45a68f ]。&lt;br /&gt;
&lt;br /&gt;
'''Population Balance''': Population Balanceモデルにおける合体（coalescence）および分裂（breakup）の設定ファイル制御を簡略化しました [ commit 87f81af6 ]。&lt;br /&gt;
==輸送／熱力学==&lt;br /&gt;
'''物質移動''': 新しいfunction1Pressure飽和モデルでは、温度の関数として飽和圧力曲線を指定できます [ commit cb25fc14 ]。&lt;br /&gt;
&lt;br /&gt;
'''物質輸送''': 気体の二成分拡散係数についてFuller（Fuller-Schettler-Giddings）モデルを追加しました [ commit 50c59837 ]。流体のthermophysical transportに、サブモデルで使用する層流拡散関数Dを追加しました [ commit 9d586d54 ]。&lt;br /&gt;
&lt;br /&gt;
'''運動量輸送''': 粘弾性モデルで複数の緩和時間と、それぞれに対応する粘度を指定できるようになりました [ commit a4a5df3d ]。新しいsimplifiedViscousStressモデルは、膨張項が理論的にゼロとなる非圧縮性流体向けに、応力モデルを簡略化したものです [ commit 9ed5c044 ]。液膜解析では、複雑な表面上での解析を安定化するため、StokesおよびlambdaThixotropic momentumTransportモデルの簡略版を追加しました [ commit 74e89223 ]。&lt;br /&gt;
&lt;br /&gt;
'''スカラー輸送''': scalarTransport、phaseScalarTransportおよびage Function Objectにおいて、schemesFieldとは独立した設定として、オプションのsolverField設定を追加しました [ commit 304397e1 ]。&lt;br /&gt;
&lt;br /&gt;
'''熱物性輸送''': thermophysical transportにおける相の取り扱いコードを簡略化しました [ commit 035d535f ]。&lt;br /&gt;
&lt;br /&gt;
'''熱力学''': 新しいzonalMixture熱物性混合モデルでは、cell zoneごとに異なる物性を設定できます [ commit 76e7a20c ]。&lt;br /&gt;
&lt;br /&gt;
'''電気''': 新しいsolidElectricalConduction fvModelは、固体領域内の電気伝導を計算し、それに対応するJoule heatingソースをエネルギー方程式に適用します [ commit dca4e255 ]。&lt;br /&gt;
&lt;br /&gt;
'''インターフェース''': methanolの表面張力物性値を修正しました [ commit e781d7f8 ]。&lt;br /&gt;
&lt;br /&gt;
CFD DirectのApplied CFDおよびProductive CFD part 2コースでは、輸送モデル、熱力学およびスカラー輸送を扱っています。&lt;br /&gt;
==燃焼==&lt;br /&gt;
'''ソルバー''': エンジン燃焼などに使用されるXiFluidソルバーを、多相流アプローチを使用して全面的に書き換えました。未燃ガスと既燃ガスを2つの相として扱い、それぞれのエンタルピー方程式を保存形式で解き、平均物性を2相の物性の平均から計算します [ commit 77b2ca3e ]。さらにmulticomponent thermodynamicsおよび既燃ガス中の反応を含むようになり、過濃燃焼における既燃ガス反応や汚染物質の予測に対応します [ commit 5403c053 ]。火炎法線を計算する際に|grad(b)|へ適用される安定化によって火炎後方でbが厳密に0へ近づかない問題を補償するため、flame burnout stabilization項を追加しました [ commit cb85e247 ]。未燃ガス中の化学反応を含むuMulticomponentMixtureモデル [ commit bf5899d9 ] および未燃ガスの汚染物質における化学反応を含むbMulticomponentMixtureモデル [ commit 3bfa591a ] を追加しました。未燃ガスおよび既燃ガスのエネルギー方程式に浮力を追加しました [ commit a880bdb5 ]。&lt;br /&gt;
&lt;br /&gt;
'''点火''': GaussianbXiIgnition fvModelは、Weller b-Xi燃焼モデル向けの新しい点火速度モデルで、火炎核にわたって時間依存のGaussian profileを使用します [ commit 8089dcd1 ]。bXiKernelCorr fvModelは、点火後の火炎核成長の解析を改善します [ commit cc8faa2f ]。&lt;br /&gt;
&lt;br /&gt;
'''火炎速度''': 新しいサンプルケースでは、laminar momentum transportモデルを選択しXiを1に設定することで、XiFluidによる層流火炎伝播を解析できることを示しています [ commit bad48e27 ]。&lt;br /&gt;
&lt;br /&gt;
'''火炎しわ''': XiFluidソルバーでは、wrinkling differential propagationがオプションとなり、デフォルトではoffになりました [ commit 5d3c782b ]。&lt;br /&gt;
&lt;br /&gt;
'''エンジン解析''': エンジン内のメッシュ移動向けに、専用のmultiValveEngineValveMotionおよびmultiValveEnginePistonMotion motion functionを追加しました [ commit 9369197c ]。&lt;br /&gt;
&lt;br /&gt;
'''その他''': XiFluidの未燃ガス方程式にslip velocity項を追加しました [ commit a34f44c5 ]。XiFluidを用いた燃焼と共役熱伝達について、未燃ガスおよび既燃ガス用のubCoupledTemperature境界条件を追加しました [ commit 5f503182 ]。XiFluidでは、未燃ガスおよび既燃ガスの熱輸送と化学種輸送をmultiphaseEulerソルバーで使用されるphase systemで処理するようになり、幅広い輸送モデルを選択できるようになりました [ commit 836d1680 ]。&lt;br /&gt;
&lt;br /&gt;
'''化学反応''': chemistryModelはchemistryProperties内のtypeキーワードによって選択するようになり、デフォルトはstandardです [ commit 46dcfdbb ]。化学反応をcellZone内に限定できるようになり、化学反応が小さな領域でのみ発生するケースを高速化できます [ commit d5522d02 ]。&lt;br /&gt;
&lt;br /&gt;
'''反応''': fluxLimitedLangmuirHinshelwoodReactionRateモデルを安定化し、モデルのメッシュ依存性を解消しました [ commit efcabe91 ]。新しいbXiQdot Function Objectは、Weller b-Xi燃焼モデルの発熱速度を計算してキャッシュします [ commit d8e537e9 ]。b-Xi燃焼モデルでは、cacheTemporaryObjects(bSource);および#includeFunc writeObjects(bSource)を使用してbSourceフィールドを書き出すことで反応速度を出力できるようになりました [ commit d06ebeb8 ]。&lt;br /&gt;
&lt;br /&gt;
'''後処理''': 新しいubAverageおよびubDWEA Function Objectは、XiFluidソルバーの未燃ガスと既燃ガスについて、それぞれ平均値および密度加重アンサンブル平均値を出力します [ commit ef0a85a3 ]。&lt;br /&gt;
==Modular Lagrangian（粒子）==&lt;br /&gt;
'''Cloud''': 新しいModular Lagrangian機能向けに提供されるCloud fvModels（parcelCloud、kinematicParcelCloudなど）を使用して、ユーザーが解析へparticle／parcelを追加できるようになりました [ commit e2652c4c ]。Modular Lagrangianに、粒子が単純にcarrier flowに追従する新しいtracer cloudタイプを追加しました [ commit 54595e69 ]。&lt;br /&gt;
&lt;br /&gt;
'''境界条件''': Modular Lagrangianでは、注入粒子向けの新しい速度条件としてfanVelocity、flowRateConeDiskVelocity、totalPressureConeVelocityを追加しました [ commit f3c3b3ea ]。&lt;br /&gt;
&lt;br /&gt;
'''モデリング''': Modular Lagrangianにおける乱流分散計算の効率を改善しました [ commit 546cb75d ]。&lt;br /&gt;
&lt;br /&gt;
'''多相流''': Modular Lagrangianモデルに、物質移動および多相流との連成機能を追加しました [ commit fb321367 ]。&lt;br /&gt;
&lt;br /&gt;
'''熱力学''': Modular Lagrangianに熱力学モデルを追加しました [ commit 379aabc6 ]。膨張または収縮する粒子について、エネルギー方程式の収束を大幅に高速化しました [ commit d0253494 ]。&lt;br /&gt;
&lt;br /&gt;
'''組成変化''': particle cloudにmulticomponent thermodynamic modelを指定できるようになり、その機能と構文はEulerian multicomponent thermodynamic modelと同一です [ commit 7d3cf9e3 ]。組成が変化する粒子向けに、multicomponentParticleおよびmulticomponentParcel cloudをModular Lagrangian（別名field Lagrangian）へ追加しました [ commit 7256fd3b ]。&lt;br /&gt;
&lt;br /&gt;
CFD DirectのApplied CFDおよびProductive CFD part 2コースには、Modular Lagrangianに関するトレーニングが含まれています。&lt;br /&gt;
==メッシュ==&lt;br /&gt;
'''NCCインターフェース''': 一部の静的インターフェースを持つNCCについて、不要なstitchingおよびun-stitching処理を削減しました [ commit 9d6af06a ]。NCCインターフェース設定用のcreateNonConformalCouplesDictサンプルファイルを更新し、owner-neighbour順序、moveUpdate、patchFields指定などの新機能を含めました [ commit fe3d7775 ]。&lt;br /&gt;
&lt;br /&gt;
'''snappyHexMesh''': snappyHexMeshのsearchableSurfacesに、単位またはscale factorを指定できるようになりました [ commit 715f7742 ]。insideおよびoutside region refinementのrefinement levelは、単一の値を取るlevelキーワードのみで指定するようになりました [ commit 3284e4e3 ]。&lt;br /&gt;
&lt;br /&gt;
'''blockMesh''': blockMeshに追加のunits制御を導入し、scale 0.001;の代わりにunits [mm];と記述できるようになりました [ commit 854f0834 ]。新しいsweepFaceオプションは、曲面形状へより適合する曲面block faceを記述します [ commit b5a563dd ]。&lt;br /&gt;
&lt;br /&gt;
'''extrudeMesh''': nLayersおよびexpansionRatioパラメータにデフォルト値がなくなったため、入力構文が若干変更されました。これらを使用するextrusion modelでは明示的に指定する必要があり、使用しないモデルでは読み込まれません [ commit 2d57284b ]。extrudeMeshは、現在のケースのtime directory、または別ケースからextrusionを構築した場合にはsource caseのtime directoryへメッシュを書き出せるようになりました [ commit 0779f2a7 ]。&lt;br /&gt;
&lt;br /&gt;
'''操作''': splitMeshRegionsを、合理的で相互運用可能なオプション群を持つよう全面的に書き換えました [ commit cc289fad ]。&lt;br /&gt;
&lt;br /&gt;
'''メッシュ移動''': multiSolidBody motion solverがtopology changeに対応しました [ commit 4d341c1e ]。単一および複数剛体のrigid body motionを、1つのfunctionalRigidBodyMeshMotionシステムへ統合しました [ commit 798bf361 ]。multi-body rigid body motion（multiRigidBodyMotion）はmesh-to-mesh mappingを含めることができます [ commit 06734734 ]。Rigid body motionにpointMasses bodyオプションを追加しました [ commit d891aad3 ]。rigidBodyDynamicsのbodyにsectional moment評価を追加しました [ commit 6973618e ]。&lt;br /&gt;
&lt;br /&gt;
'''その他''': blockMesh設定時にはparaFoam -blockを使用してblockを可視化できます。この機能は設定エラーに対してより堅牢になりました [ commit 587f1d17 ]。bounded sphere機能の品質および性能を改善しました [ commit df030f00 ]。&lt;br /&gt;
&lt;br /&gt;
'''メッシュゾーン''': 新しいpatchCells zoneGeneratorは、patchに隣接するセルのzoneを生成します [ commit 647e20be ]。新しいnearPatchCells zoneGeneratorは、指定したpatchまたはpatch集合から一定距離内にあるセルのcellZoneを生成します [ commit acc41ce6 ]。print zoneGeneratorは、生成されたzoneについてログ情報を出力し、入力ファイルでzoneが正しく設定されているかを確認できるようにします [ commit f671ec4b ]。cell zoneGeneratorはface zoneまたはpoint zoneからcell zoneを生成します [ commit a481c2b6 ]。新しいcoded zoneGeneratorを追加しました [ commit adb69842 ]。MRFZonesは、refinementなどのtopology change後にも正しく更新されるようになりました [ commit aeae3893 ]。&lt;br /&gt;
&lt;br /&gt;
'''Surface''': searchable planeは閉曲面として扱われるようになりました。これは無限大の球の平坦な一部分のように扱われ、そのinsideはsurface normalと反対側になります。このため、例えばcell zoneを定義するためのinside/outside判定に使用できます [ commit 23af80e3 ]。平面surfaceのplaneTypeは、指定したplaneパラメータから自動的に推定されます。例えばpointおよびnormalパラメータの場合はpointAndNormalとなります [ commit afae4d85 ]。新しいsurfaceRenamePatchユーティリティは、surface geometryファイルのpatch（region）の名前を変更します [ commit c4367fbe ]。&lt;br /&gt;
&lt;br /&gt;
'''プログラミング''': mesh.db()は、メッシュデータが登録されているobjectRegistryを返すようになり、そのobjectRegistryの親にはparent()関数でアクセスします [ commit 6a71c69e ]。新しいpoly()関数は、fvMeshなどの上位メッシュ概念に関連するpolygonal／polyhedral dataを返します。特にfvPatchにおけるpatch()を置き換えます [ commit 5504695c ]。polyBoundaryMesh()もpoly().boundary()に置き換えられました。これはfvMeshとpolyMeshのtopologyが異なるNCCコードで特に重要です [ commit bc568d14 ]。mesh()関数によりpatchからmeshへ直接アクセスできるようになりました [ commit a8826e62 ]。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのmesh zoneに関する最新情報については、「User Guide 5.6: Mesh Zones」および「Dynamic Zones in OpenFOAM」を参照してください。blockMeshおよびsnappyHexMeshによるメッシュ生成はCFD DirectのEssential CFDコースで導入され、Applied CFDコースではNCC、mesh zoneなどを含め、さらに詳しく扱われています。&lt;br /&gt;
==Function Objects==&lt;br /&gt;
'''一般''': packaged Function ObjectのcellSumは、フィールドの全セル値の合計を出力します [ commit 224bebc7 ]。&lt;br /&gt;
&lt;br /&gt;
'''フィールド''': フィールドデータのhistogramを処理するhistogram Function Objectは、cell zoneのみに限定して処理できるようになりました [ commit bf016ed3 ]。渦を効果的に可視化するため、flowType Function Objectを全面的に書き換えました [ commit 28133f2f ]。surfaceFieldValue Function Objectについて、並列ケースでのフィールド書き出しを修正しました [ commit bd09281b ]。Peclet数Function Object（PecletNo）が圧縮性ソルバーでも動作するようになりました [ commit b80cc10b ]。Mach数Function Objectが多相流でも動作するようになりました [ commit a619a076 ]。&lt;br /&gt;
&lt;br /&gt;
'''Flux計算''': 新しいpackaged Function ObjectであるpatchFluxおよびfaceZoneFluxは、速度だけでなく任意の物理量のfluxを計算できます [ commit 5fecf83b ]。specieFlux Function Objectはextensive quantityとなり、単位面積当たりの値ではなくface areaを含む値となりました [ commit 7642c735 ]。新しいenergy flux Function Object群として、移流エネルギー用energyAdvectiveFlux、拡散（熱伝導）エネルギー用heatFlux、および両者を合わせたenergyFluxを追加しました [ commit eadb0749 ]。&lt;br /&gt;
&lt;br /&gt;
'''メッシュ''': 新しいwriteMesh Function Objectは、controlDictで指定された通常のwrite time以外の時刻にもメッシュデータを書き出せます [ commit 40db239c ]。generateZone Function Objectは、zoneの生成、登録、および／または書き出しを行えます [ commit 0a05b742 ]。&lt;br /&gt;
&lt;br /&gt;
'''グラフ''': 新しいsectionalForceProbesおよびsectionalForceGraph Function Objectは、指定したpatchを横切るsection-plane上の流体力およびモーメントを計算します。sectionalForceGraphのデータは、せん断力図および曲げモーメント図に使用できます [ commit ebce0762 ]。これらに対応する剛体用のrigidBodySectionalForceProbesおよびrigidBodySectionalForceGraphでは、出力にbodyの加速度も含まれます [ commit fa26917e ]。&lt;br /&gt;
&lt;br /&gt;
'''Coded''': cellZoneを生成するcoded Function Objectのサンプルを追加しました [ commit dbd1ee59 ]。&lt;br /&gt;
&lt;br /&gt;
'''データ出力''': 一連のFunction Objectを含むファイルに対してfoamPostProcessを実行する場合、writeControl none;を指定することで中間フィールドの出力を無効化できます [ commit 91df954f ]。新しいindentOrNl tokenを使用すると、テキスト出力を整然とフォーマットできます [ commit 46a32a7d ]。&lt;br /&gt;
&lt;br /&gt;
Function ObjectはCFD DirectのEssential CFDコースで一般的に扱われています。coded Function ObjectはProductive CFDコースで広く使用され、Programming CFDにはFunction Objectをプログラミングする例が含まれています。&lt;br /&gt;
==フィールド／境界初期化==&lt;br /&gt;
'''Field functions''': internalFieldをzonal、distanceFunction（元のfunction1から変更 [ commit 59226ec4 ]）、surfaces、coded、fieldFunctionとして設定することで、フィールドを非一様な値で初期化できるようになりました。これらは、zone、事前設定された関数、またはcoded functionによって値を設定する新しいオプションです [ commit 136a112c ]。surfacesでは、surfaceと交差するセルにfractional valueを設定することもできます [ commit 310d6dbf ]。fieldFunctionは別のフィールドに対するfunction1を評価し、例えば温度の関数として物性値を設定できます [ commit df4681fb ]。&lt;br /&gt;
&lt;br /&gt;
'''functionalFixedValue境界条件''': 非一様および／または時間変化する入口フィールドを指定するための柔軟かつ効率的な方法で、初期実装ではzonal、distanceFunction、coded functionをサポートします [ commit d8393191 ]。valueエントリを使用して、非一様フィールド用のfield functionを指定します [ commit 0415ffee ]。新しいtimeFunction field functionは、時間のみで変化する条件を指定します [ commit f3a203db ]。&lt;br /&gt;
&lt;br /&gt;
'''内部フィールドと境界フィールドの統合''': functionalGeometricFieldでは、例えば非一様拡散係数フィールドのように、fieldとboundary valueの両方を1つのfunctionでまとめて指定できます [ commit 24f4002b ]。&lt;br /&gt;
&lt;br /&gt;
フィールドおよび境界の初期化についての詳細は、「User Guide 6: Field and Boundary Initialisation」および「Field Functions in OpenFOAM」を参照してください。フィールド初期化の例はApplied CFDおよびProductive CFDコースに含まれ、Programming CFDではカスタマイズしたコードによる例が扱われています。&lt;br /&gt;
==一般境界条件==&lt;br /&gt;
'''速度''': atmosphericBoundaryLayer境界条件を改善しました [ commit e44ff458 ]。freestreamVelocity境界条件では、例えばatmosphericBoundaryLayer field functionのように、freestream velocityの値をfunctionとして指定できるようになりました [ commit b8cd42ce ]。pressureInletOutletVelocity境界条件では、tangentialVelocityパラメータをfield functionによって指定できるようになりました [ commit 68caaa1c ]。&lt;br /&gt;
&lt;br /&gt;
'''温度''': coupledTemperature境界条件に、熱放射に対する数値緩和オプションを追加しました [ commit 65e52cf3 ]。coupledTemperatureおよびexternalTemperature境界条件では、熱伝達係数を時間および空間的に変化させることができます。これにより、coupledTemperature境界条件を使用する領域間に、例えばair gapのような熱抵抗を設定できます [ commit 286aab18 ]。coupledTemperature境界条件は、2領域間に独自の熱伝導物性および熱源を持つlayer／gapを正しく含められるようになりました [ commit cf917412 ]。新しいdisplacementGapHeatTransferCoefficient field functionは、通常は熱変形などによる2領域間のsurface displacementによって形成されたgapについて、熱伝達係数を与えます [ commit a8dcaf5a ]。&lt;br /&gt;
&lt;br /&gt;
'''乱流''': 入口における乱流フィールドの境界条件をturbulentKineticEnergy、turbulentEpsilon、turbulentOmegaへ簡略化しました [ commit e1c2bff9 ]。&lt;br /&gt;
&lt;br /&gt;
'''一般''': 新しいprototype meanInletOutlet境界条件は、scalarのinletOutlet条件に相当し、流入時のinletValueをpatchに隣接するセル値の平均として計算します [ commit 5ea64ebb ]。&lt;br /&gt;
&lt;br /&gt;
Programming CFDには境界条件をプログラミングする例が含まれています。&lt;br /&gt;
==Coded Case Configuration==&lt;br /&gt;
'''一般''': coded file input用のdynamic codeシステムを全面的に改良しました [ commits ab3cece6 ]。coded file inputのコンパイルエラーについて、行番号の表示を改善しました [ commit b3ebfdee ]。foamFindツールに-codedオプションを追加し、指定ファイル内のcoded inputのcodeInclude、codeOptions、codeLibsブロックへエントリを挿入できるようになりました [ commit 1c1995fd ]。foamFindに-Cおよび-Hオプションを追加し、それぞれ.Cまたは.Hファイルのみを検索できるようになりました [ commit f89eedef ]。入力ファイル内のcoded entryが自動コンパイルされる際の行番号表示をさらに改善しました [ commit cf17a1eb ]。コンパイルエラーを調査する際には、wmake -pageを使用してログ出力をスクロールできます [ commit 31b85b01 ]。&lt;br /&gt;
&lt;br /&gt;
'''#if ... #else ... #endif''': より汎用的で柔軟になり、例えば#if (#calc &amp;quot;${Uinlet} &amp;lt; 10&amp;quot;)のように丸括弧をdelimiterとして使用するようになりました [ commit 9febd4b3 ]。その他の全般的な改善も行われました [ commit 096c63e6 ]。&lt;br /&gt;
&lt;br /&gt;
'''#codeBlock ... #endCodeBlock''': 複数の#calcまたは#codeStreamエントリを含め、1つのライブラリへまとめて高速にコンパイルできます [ commit 20fa3471 ]。#codeBlock内にheader fileをincludeすることもできます [ commit 2f99144f ]。&lt;br /&gt;
&lt;br /&gt;
'''#stream''': #codeStreamの代替形式で、よりコンパクトな構文を使用します [ commit b478fe46 ]。&lt;br /&gt;
&lt;br /&gt;
'''#codeDict''': coded inputからdictionaryを生成します [ commit a2fdc21b ]。任意のファイルのkeyword entryを使用できます [ commit 073123ae ]。&lt;br /&gt;
&lt;br /&gt;
'''#calc''': #codeIncludeでincludeされたheader fileを使用できるようになりました [ commit 2a95eec2 ]。&lt;br /&gt;
&lt;br /&gt;
'''#print''': 入力ファイル内のdictionaryの内容を、デフォルト値を含めてdictionary末尾の#print文により出力できます [ commit 7f20b2f0 ]、[ commit 39d3ac1d ]、[ commit 945e9097 ]、[ commit 7527d5f1 ]、[ commit 316297a2 ]。これはwriteOptionalEntries Function Objectを置き換えるものです [ commit a21579d3 ]。fvModelsおよびfvConstraintsにも対応します [ commit 400f7ec9 ]。#includeFunc、#includeModel、#includeConstraintにprint引数を追加することで、デフォルト値を含む使用中の全パラメータを出力できます [ commit c951b1c3 ]。&lt;br /&gt;
&lt;br /&gt;
'''#dump''': マクロ展開後の入力ファイル内容をデバッグ用にterminalへ出力できるようになりました [ commit 7f20b2f0 ]。例えば#codeDictおよび#codeStreamで使用できます（以前は#printと呼ばれ、その後名称変更されました） [ commit 578f5b21 ]。&lt;br /&gt;
&lt;br /&gt;
'''#exit''': 解析を終了させます。テスト目的で有用です [ commit 1101ee51 ]。&lt;br /&gt;
&lt;br /&gt;
'''#include / #includeIfPresent / #includeEtc''': オプションとして引数を受け取り、includeされるファイルへ変数を渡せるようになりました [ commit 723a58bc ]、[ commit 03b4aac8 ]。&lt;br /&gt;
&lt;br /&gt;
Coded Case Configurationについての詳細は、以下を参照してください。&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.10: Macro expansion」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.15: Inline Calculations」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.16: Multiple inline code entries with #codeBlock」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.17: Inline code with #codeStream」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.18: Inline code with #codeDict」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.19: Conditionals」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.20: Checking input parameters」&lt;br /&gt;
==単位と次元==&lt;br /&gt;
'''foamUnitsユーティリティ''': foamUnitsスクリプトはアプリケーションへ置き換えられ、次元と単位の一覧表示に加えて単位変換を計算できるようになりました [ commit f451f2d1 ]。foamUnitsは指定したdimensionに対応するunitも出力できるようになりました [ commit 5792f61d ]。&lt;br /&gt;
&lt;br /&gt;
'''configDictファイル''': DimensionedConstantsなどのグローバル設定は、$FOAM_ETC内のグローバルconfigDictファイルに格納されるようになり、ケースごとのoverrideはsystem/configDictで指定します [ commit fb321367 ]。template configDictファイルには、頻繁に上書きされる設定およびswitchの例が含まれています [ commit 5facde0e ]。単位および単位変換をケースのconfigDictファイル内で定義できるようになり、基礎となる単位系から独立しているため、異なる単位系間でも容易に変換できます [ commit a990b37d ]。&lt;br /&gt;
&lt;br /&gt;
'''次元''': 物性値にdimensionを直接含めるのではなく、値とともにunitを指定し、その次元整合性をチェックする方法が標準となりました [ commit 6a35fbd5 ]。サンプルケースにおける数値によるdimension表記をnamed dimensionに置き換え、新しいnamed dimensionも複数追加しました [ commits 61d4199f ]。すべてのsolverおよびlibraryにおける全GeometricFieldのread constructionにdimension checkingを追加しました [ commit f7f22e73 ]。&lt;br /&gt;
&lt;br /&gt;
'''マクロ展開''': $&amp;lt;scalar&amp;gt;diameterのような型付きマクロ展開が単位を読み込めるようになりました。例えばdiameter 500 [mm];と指定できます [ commit d67b3529 ]。&lt;br /&gt;
&lt;br /&gt;
単位と次元についての詳細は、以下を参照してください。&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.6: Dimensional units」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.2.7: Units and unit conversion」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.3: Global settings」&lt;br /&gt;
&lt;br /&gt;
「User Guide 4.7.7: The foamUnits utility」&lt;br /&gt;
==その他のケース設定==&lt;br /&gt;
'''表面波''': 表面波のフィールド初期化は、waveAlphaおよびwaveVelocity field functionを使用して設定するようになりました [ commit f1926f07 ]。&lt;br /&gt;
&lt;br /&gt;
'''大気境界層''': 大気境界層の速度および乱流フィールドをfield functionを使用して初期化できます [ commit 78952c7c ]。&lt;br /&gt;
&lt;br /&gt;
'''一般設定''': 新しい-createオプションにより、指定したファイルが存在しない場合にfoamDictionaryが新しいケースファイルを作成します [ commit 8801fa0d ]。&lt;br /&gt;
&lt;br /&gt;
'''モデル''': モデル係数を含むサブディクショナリ名からCoeffs接尾辞を削除しました。後方互換性は維持されています [ commits 686d966a ]。&lt;br /&gt;
&lt;br /&gt;
'''ケース初期化''': setFieldsに新しいextrapolatePatchesオプションを追加し、セル値をpatchへ外挿できるようになりました [ commit db4068e9 ]。フィールド値の単位変換にも対応しました [ commit a4b49c12 ]。&lt;br /&gt;
==可視化==&lt;br /&gt;
'''グラフ''': 出力グラフなどのsampling処理を修正し、必要なときにのみ実行するようにしました。これによりsamplingを使用する解析の性能が大幅に向上しました [ commit 08066aab ]。&lt;br /&gt;
&lt;br /&gt;
'''ParaView reader''': field fileとmeshに不整合がある場合でもParaViewがクラッシュしなくなりました [ commit d40b7f65 ]。paraFoamに-allRegionsオプションを追加し、マルチリージョンケースの全regionを読み込んだ状態でParaViewを起動できるようになりました [ commit bd1de5cd ]。ParaViewがfield fileを読み込む際にvalue entryが存在しない場合でもfatal errorを発生させなくなりました [ commit ace12ca2 ]。ParaView v6.1向けにOpenFOAM reader moduleを更新しました [ commit 0430a68b ]。&lt;br /&gt;
==ケース==&lt;br /&gt;
'''fluid''':&lt;br /&gt;
&lt;br /&gt;
新しいconcentricCylindersサンプルは、熱放射のvalidationを提供します [ commit f96d9f16 ]。&lt;br /&gt;
&lt;br /&gt;
'''incompressibleVoF''':&lt;br /&gt;
&lt;br /&gt;
新しいDTCHullPropサンプルケースは、船体の自航（self propulsion）を解析します [ commit 3076fc03 ]。&lt;br /&gt;
&lt;br /&gt;
'''multiRegion/CHT''':&lt;br /&gt;
&lt;br /&gt;
新しいvacuumFurnaceサンプルは、熱放射および自然対流を伴う加熱・冷却を実演します [ commit 1003ab2c ]。&lt;br /&gt;
==その他==&lt;br /&gt;
'''fvModels''': propellerDisk運動量ソースに、プロペラ推力を船体抵抗と一致させるためのオプションの自動調整機能を追加しました [ commit 533e780f ]。&lt;br /&gt;
&lt;br /&gt;
'''その他の数値計算''': cellPoint法で補間されたフィールドの勾配を計算するinterpolateGrad関数を追加しました [ commit 38e27c74 ]。cubic interpolation schemeを修正しました [ commit b062a016 ]。厳密な物理的上下限を持つscalar field向けにlimitedVanAlbadaおよびVanAlbada01 schemeを追加しました [ commit 772be381 ]。&lt;br /&gt;
&lt;br /&gt;
'''ソルバー''': GAMGのprocessor agglomerationを改善し、ネットワーク接続されたprocessor cluster上での並列計算を高速化できるようにしました [ commit f211bf49 ]。最も粗いlevelに単一セルしか存在しないケースでのGAMG solverを修正しました [ commit de71200f ]。&lt;br /&gt;
&lt;br /&gt;
'''プログラミング''': foamFindツールに-lnIncludeオプションを追加しました。指定したsource fileを含むlnIncludeディレクトリと、optionsファイルに含めるための対応する-I flagを出力します [ commit 7f4e3144 ]。MULESおよびvolPointInterpolation向けに、boundaryNeighbourField()のより効率的なバージョンとしてcoupledNeighbourField()関数を追加しました [ commit a375a4de ]。事前設定されたdimensionSetは、dimVelocityではなくvelocityのような単純な名前になり、例えばvelocity(1, 0, 0)のようにdimensioned valueを直接構築するために使用できます [ commit 42d70b02 ]。フィールドのdimensionを含むGeometricFieldのread constructorを追加しました [ commit f40bf0d0 ]。&lt;br /&gt;
&lt;br /&gt;
'''フィールド''': 新しいlinearSequenceおよびlinearSequence01関数は、指定した上下限間で線形に変化する値を持つscalarFieldを生成します。01 variantでは上下限が0と1です [ commit 6af508ba ]。&lt;br /&gt;
&lt;br /&gt;
'''スターターコード''': foamNewSolverは、新しいモジュラーソルバー向けのスターターコードを作成します [ commit 32a9d80a ]。&lt;br /&gt;
==クレジット==&lt;br /&gt;
OpenFOAM 14はCFD Directの以下のメンバーによって開発されました。&lt;br /&gt;
&lt;br /&gt;
Henry Weller&lt;br /&gt;
&lt;br /&gt;
Will Bainbridge&lt;br /&gt;
&lt;br /&gt;
Chris Greenshields&lt;br /&gt;
&lt;br /&gt;
Aidan Wimshurst&lt;br /&gt;
&lt;br /&gt;
また、以下の方々から貢献がありました。&lt;br /&gt;
&lt;br /&gt;
Timo Niemi&lt;br /&gt;
&lt;br /&gt;
Clemens Gößnitzer&lt;br /&gt;
&lt;br /&gt;
Stanislau Stasheuski&lt;br /&gt;
==ライセンス==&lt;br /&gt;
OpenFOAM 14は、OpenFOAM FoundationによってGeneral Public Licence v3（GPLv3）の下で配布されています。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_13_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=880</id>
		<title>OpenFOAM 13 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_13_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=880"/>
		<updated>2026-08-10T22:47:43Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「 =OpenFOAM 13 リリース= OpenFOAM Foundationは、CFD Directによって開発されたオープンソースCFDツールボックスOpenFOAMのバージョン13のリリースを発表しました。  バージョン13には、次のような機能が含まれています。動的な更新が可能で、より使いやすく堅牢になったメッシュゾーン機能の全面的な書き換え（使い勝手の悪かったtopoSetを置き換え）、既存コ…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=OpenFOAM 13 リリース=&lt;br /&gt;
OpenFOAM Foundationは、CFD Directによって開発されたオープンソースCFDツールボックスOpenFOAMのバージョン13のリリースを発表しました。&lt;br /&gt;
&lt;br /&gt;
バージョン13には、次のような機能が含まれています。動的な更新が可能で、より使いやすく堅牢になったメッシュゾーン機能の全面的な書き換え（使い勝手の悪かったtopoSetを置き換え）、既存コードをより柔軟で拡張性が高く効率的なものへ置き換える、65%まで完成したフィールドベースLagrangian機能、boundedness（有界性）を保証し、多相流などの計算を高速化するMULESの改良、物質移動モデルの全面的な書き換え、領域分割されたケースをParaViewで扱えるようにする機能、アニメーション用foamVTKSeries、改良されたfoamMonitorなどの可視化機能の向上、さらにマルチリージョン解析、ケース設定、メッシュ生成、Function Object、多相流、燃焼に関する多数の改良および機能追加です。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 13には、以下の主要な変更が含まれています。&lt;br /&gt;
&lt;br /&gt;
'''モジュラーソルバー''': flow、thermophysics、modelsを無効化するためのスイッチを追加。&lt;br /&gt;
&lt;br /&gt;
'''MULES''': 反復計算の収束状態にかかわらずboundednessを保証。&lt;br /&gt;
&lt;br /&gt;
'''多相流''': multiphaseEulerソルバーによる解析を大幅に高速化。&lt;br /&gt;
&lt;br /&gt;
'''輸送／熱物性''': multiphaseEulerソルバーの物質移動モデルを全面的に書き換え。&lt;br /&gt;
&lt;br /&gt;
'''燃焼''': エンジン解析向けの点火モデルおよび火炎モデルを改良。&lt;br /&gt;
&lt;br /&gt;
'''粒子''': 65%まで完成したフィールドベースLagrangian機能。より柔軟、拡張可能、高効率など。&lt;br /&gt;
&lt;br /&gt;
'''メッシュ''': メッシュ生成、および複数メッシュ領域間の連成機能を強化。&lt;br /&gt;
&lt;br /&gt;
'''メッシュゾーン''': より堅牢で使いやすく、柔軟かつ高機能な代替システム。&lt;br /&gt;
&lt;br /&gt;
'''マルチリージョン解析''': NCC、メッシュスティッチング、マッピングを改良。&lt;br /&gt;
&lt;br /&gt;
'''Function Object''': scalarTransportを改良し、power、reaction rate、cutLayerAverageを追加。&lt;br /&gt;
&lt;br /&gt;
'''モデル''': propellerDiskモデルを追加し、fvFieldSourceを改良。&lt;br /&gt;
&lt;br /&gt;
'''境界条件''': 圧力、温度、物質拡散に関する条件を改良。&lt;br /&gt;
&lt;br /&gt;
'''ケース設定''': 新しいfoamMergeCaseツール。&lt;br /&gt;
&lt;br /&gt;
'''可視化''': ParaViewが領域分割されたケースを読み込み可能に。アニメーション用foamVTKSeriesを追加。&lt;br /&gt;
&lt;br /&gt;
'''ケース''': 単相流、多相流、非圧縮性流れ、圧縮性流れの新しい例題を追加。&lt;br /&gt;
&lt;br /&gt;
'''その他''': foamNewAppスクリプトで非CFDアプリケーションのスターターコードを作成可能。&lt;br /&gt;
&lt;br /&gt;
約832件のコードcommit、約150件のissueを解決。&lt;br /&gt;
&lt;br /&gt;
ISO/IEC 14882:2014（C++14）: GCC v5.5以降、Clang v16以降でテスト済み（v10以降でも動作する見込み）。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 13は、以下のプラットフォーム向けにパッケージ化されています。&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu Linux''': Ubuntu 22.04、24.04、25.04向けのパッケージインストール。&lt;br /&gt;
&lt;br /&gt;
'''Windows''': Ubuntuパッケージを使用したWindows Subsystem for Linux（WSL）によるインストール。&lt;br /&gt;
&lt;br /&gt;
'''macOS''': Ubuntuパッケージを使用したCanonical Multipassによるインストール。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 13 Source Packは、対応するLinuxプラットフォーム上でコンパイルできます。&lt;br /&gt;
==モジュラーソルバー==&lt;br /&gt;
'''一般''': すべてのソルバーモジュールにflow、thermophysics、modelsスイッチが追加され、それぞれ流れ、熱物性、および追加モデルの計算を無効化できるようになりました [ commit c822a9b7 ]。&lt;br /&gt;
&lt;br /&gt;
'''燃焼''': XiFluidソルバーモジュールでは、XiモデルおよびそのサブモデルをcombustionPropertiesファイルから選択できるようになりました [ commit 8b46ef6b ]。&lt;br /&gt;
==MULES==&lt;br /&gt;
'''一般''': MULESリミッターは、反復計算の収束状態にかかわらずboundednessを保証するようになりました [ commit e53e7618 ]。MULESの制御パラメータは、より単純なキーワードを持つ小さなサブディクショナリ内で指定するようになりました [ commit f57b6e05 ]。globalBoundsスイッチにより、隣接セルの値を用いて局所的に制限する代わりに、変数のグローバルな上下限値によって解を制限できるようになりました [ commit 025f14d4 ]。&lt;br /&gt;
&lt;br /&gt;
'''半陰解法''': semi-implicit MULES反復の収束は、固定反復回数を指定する代わりに、新しいtolerance制御によって管理できるようになりました [ commit adaa3f0b ]。&lt;br /&gt;
&lt;br /&gt;
'''多相流''': Volume of Fluidソルバーでは、サブサイクル数をCourant数の関数として指定できるようになりました [ commit bde0fa74 ]。multiphaseEulerソルバーでは、非常に長時間の解析において丸め誤差による解のドリフトが発生する問題に対応するため、相分率計算にオプションのclip処理が追加されました [ commit d3940e3f ]。相分率の境界条件が値を設定可能ではあるものの完全には固定されていない場合、境界でphase-fluxを制限できるようになり、inletOutlet条件でもリミッターを使用できるようになりました [ commit a71780cd ]。&lt;br /&gt;
&lt;br /&gt;
MULESの改良についての詳細は「MULES in OpenFOAM in 2025」を参照してください。&lt;br /&gt;
==多相流==&lt;br /&gt;
'''ソルバー''': multiphaseEulerソルバーでは、サブサイクルおよび補正ループ中の再計算を避け、圧力方程式との整合性を向上させるため、前回の反復計算からphase-pressure fluxをキャッシュするようになりました [ commit a8a84c78 ]。VoFソルバー向けに開発された相分率の解法アルゴリズムがmultiphaseEulerソルバーにも拡張され、高Courant数でより高速に計算できるようになりました [ commit fe950b90 ]。&lt;br /&gt;
&lt;br /&gt;
'''運動量輸送''': multiphaseEulerソルバーでは、相分率が小さい領域における圧力勾配力と表面張力を除外し、抗力と浮力のみを残すようになりました。これにより、相分率 → 0のとき、重い相は重力によって下降し、軽い相は上昇します [ commit 30fecbbb ]。&lt;br /&gt;
&lt;br /&gt;
'''ドリフトフラックス''': 工業的な分離プロセス、排水汚泥、鉱物スラリー向けのpackingDispersionModelsを追加しました [ commit 1f6ae5c8 ]。HerschelBulkley粘度モデルを追加しました [ commit 7962b54e ]。&lt;br /&gt;
&lt;br /&gt;
'''粒子相''': multiphaseEulerソルバーにおける粒子相の相分率について、新しいアルゴリズムを導入しました [ commit a56c4dd6 ]。&lt;br /&gt;
&lt;br /&gt;
'''界面捕捉''': VoFチュートリアルは、fvSolutionファイル内の相分率ソルバー制御でMULESサブディクショナリを使用するよう更新されました [ commit cb6641ee ]。圧縮性VoFソルバーでは、multiphaseEulerソルバーと同様に、基準圧力pRefを指定するオプションが追加されました [ commit a0c90e4b ]。&lt;br /&gt;
&lt;br /&gt;
'''Population balance''': Population Balance Methodでは、singleSizeGroupまたはdistributionSizeGroupオプションを使用して、境界または内部フィールドにsize group fractionを指定できるようになりました。両者は境界条件およびソース項として実装されています [ commit d1eacce5 ]。populationBalanceSetSizeDistribution関数は、指定された分布を積分して得られた値でsize-group fractionフィールドの値を上書きし、Population Balanceの粒径分布を設定します [ commit 8e4a1b8 ]。&lt;br /&gt;
==輸送／熱力学==&lt;br /&gt;
'''物質移動''': multiphaseEulerソルバーにおける相変化過程は、熱伝達、蒸発、凝縮、溶解、キャビテーション、沸騰、均一核生成、反応駆動型移動を含む一連のfvModelsとして全面的に書き換えられました [ commit 1142ff22 ]。multiphaseEulerソルバーのblended forceモデルでは、力の符号（+/-）および固定flux境界の取り扱いに関する一般化が削除されました。これらは個々のモデル固有の処理であるためです [ commit 72b40725 ]。新しいadjustTimeStepToNucleation Function Objectでは、例えば凝縮や相分離におけるmultiphaseEulerソルバー内の液滴核生成の時間スケールに基づいてタイムステップを制御できます [ commit 8a1956f3 ]。&lt;br /&gt;
&lt;br /&gt;
'''物質''': 温度の対数の多項式関数として表される、新しい二成分拡散係数binaryDiffusionCoefficientが追加されました [ commit f9139b7a ]。&lt;br /&gt;
&lt;br /&gt;
'''熱力学''': incompressiblePerfectGas状態方程式はperfectGasと熱力学的に整合するようになりました。これにより、圧力変動は小さいものの、不要な圧力振動が問題となるケースに適したものとなっています [ commit f8d64ccb ]。&lt;br /&gt;
&lt;br /&gt;
'''インターフェース''': devTau/Sigma関数は、CFD計算と、力や動力などの後処理との整合性を維持するため、表面トラクション力（単位面積当たりの力）を返すようになりました [ commit 6592798c ]。&lt;br /&gt;
==燃焼==&lt;br /&gt;
'''点火''': XiFluid向けにconstantIgnition fvModelを追加し、従来の個別実装コードを置き換えました [ commit 1cbf7525 ]。XiFluidによる1D、2D、3D解析向けの新しいignition fvModelsを追加しました [ commit 812e5fde ]。multiCycleConstantbXiIgnitionは、XiFluidソルバーを用いた排気再循環（EGR）モデルを含むマルチサイクル解析向けの新しい点火モデルです [ commit f7f9be71 ]。Weller b-Xi燃焼モデル向けの新しいbXiIgnited点火モデルを追加しました [ commit 7d7deec8 ]。&lt;br /&gt;
&lt;br /&gt;
'''火炎速度''': 層流火炎速度モデルの設定制御をより柔軟にしました [ commit d01d62ce ]。層流火炎速度モデルを全面的に見直しました [ commit a3586e16 ]。&lt;br /&gt;
&lt;br /&gt;
'''火炎しわ''': XiFluidソルバーに新しい平衡flame-wrinklingモデルを追加しました [ commit 4d77261d ]。初期火炎核成長向けの新しいflame-wrinkling補正モデルを追加しました [ commit 76c4d789 ]。Weller b-Xi燃焼モデル向けに、簡単な1D火炎伝播例を追加しました [ commit 17922670 ]。Weller b-Xi燃焼モデルにおけるflame wrinkling profileの新しいモデル構造を導入しました [ commit 19844bde ]。&lt;br /&gt;
&lt;br /&gt;
'''エンジン解析''': 新しいengine2Valve2Dサンプルケースでは、動きを伴う共役熱伝達、スライディングインターフェース、mesh-to-meshマッピングを含む簡単な2Dエンジン相当解析を提供します [ commit 342980ab ]。さらに吸気弁および排気弁、燃料噴射、Weller b-Xi燃焼モデルを用いた火花点火を含み、排気再循環にも対応しています [ commit 40732682 ]。&lt;br /&gt;
==粒子==&lt;br /&gt;
'''フィールドベースLagrangian''': 新しいフィールドベースLagrangianライブラリを追加しました。完成後には、既存の粒子ベースLagrangianライブラリを置き換える予定です [ commit afdfb5bd ]。新しいライブラリはデータを個々の粒子ではなくフィールドとして保存するため、従来よりはるかに柔軟で拡張性が高く効率的であり、使いやすく、OpenFOAMのその他の部分との整合性も高くなっています。&lt;br /&gt;
&lt;br /&gt;
'''トラッキング''': 2次精度のLagrangianモデルの構築を支援するため、放物線トラッキングを追加しました [ commit 143443e6 ]。&lt;br /&gt;
&lt;br /&gt;
'''反応''': 反応性多相粒子では、singleMixtureFractionモデル係数における相の指定順序に解析結果が依存しないようになりました [ commit 436361e6 ]。&lt;br /&gt;
&lt;br /&gt;
'''分布''': 分布関数を以前の状態から再開し、同じサンプル列を複数回生成できるようになりました。これにより、サンプルの再ランダム化によって反復計算の収束が妨げられることがなくなりました [ commit 1e761950 ]。新しいmultiFixedValue分布モデルでは、それぞれに確率を設定した複数の値を指定できます [ commit d4f88d69 ]。&lt;br /&gt;
&lt;br /&gt;
'''データ処理''': cloudSurfaceDistribution Function Objectは、faceZone、faceSetまたはpatchを通過する粒子の値の分布をプロットします [ commit c6477cb4 ]。&lt;br /&gt;
&lt;br /&gt;
新しいフィールドベースLagrangianについての詳細は「Field-Lagrangian in OpenFOAM」を参照してください。&lt;br /&gt;
==メッシュ==&lt;br /&gt;
'''一般''': snappyHexMeshなどのメッシュ生成ツールは、デフォルトで既存のメッシュファイルを上書きするようになりました。-noOverwriteオプションを使用すると、polyMeshディレクトリを各時刻ディレクトリに書き込む従来のデフォルト動作になります [ commit 08b82b5c ]。&lt;br /&gt;
&lt;br /&gt;
'''snappyHexMeshConfig''': snappyHexMeshを設定するためのツールに、以下の新しいオプションが追加されました。-closedDomain、-minDimCells、-regions [ commit bce844a7 ]、blockMeshDictファイルの書き出しを抑制する-noBackground [ commit 45e69c59 ]、-insidePoints [ commit 87b48aff ]、およびsnappyHexMeshConfigが生成したメッシュ設定ファイルを削除する-rm [ commit 4c3ee7b7 ]。オプション引数の指定方法も簡略化され、過剰な括弧が不要になりました [ commit f21766be ]。&lt;br /&gt;
&lt;br /&gt;
'''snappyHexMesh''': snappyHexMeshおよびその他のユーティリティで使用される表面形状の指定構文を簡略化しました。不要であったsearchable接頭辞が削除され、例えばsearchableBoxはboxになりました [ commit 031e50e9 ]。また、OBJやSTL形式などの表面形状ファイルを指定する場合は、triSurfaceMeshではなくtriSurfaceを使用するようになりました [ commit 974c68a5 ]。レイヤー追加時にゾーンを保持する処理も全面的に書き換えられました [ commit 414f5f88 ]。&lt;br /&gt;
&lt;br /&gt;
'''extrudeMesh''': 新しいpath extrudeモデルを追加しました [ commit 4accaf6c ]。入力構文を標準化しました [ commit 7bdc653d ]。&lt;br /&gt;
&lt;br /&gt;
'''変換''': fluent3DMeshToFoamメッシュコンバーターについて、一部のface番号付けを変更することで改善しました [ commit 49427c76 ]。&lt;br /&gt;
&lt;br /&gt;
'''その他''': mergeMeshesはconstant/meshesサブディレクトリ内のメッシュも結合できるようになりました [ commit 8a07d26f ]。mapFieldsおよびmapFieldsParユーティリティは、non-conformal coupled（NCC）インターフェースを持つメッシュでも動作するようになりました [ commit 4a65ffb0 ]。&lt;br /&gt;
&lt;br /&gt;
'''メッシュ移動''': 新しいdisplacementLayeredMotionSolverは、向かい合うpatch間にあるメッシュレイヤーを移動します [ commit 74599a66 ]。メッシュ移動、細分化、分配、および2次時間スキーム間の相互運用性を改善しました [ commit f4eb5495 ]。&lt;br /&gt;
==メッシュゾーン==&lt;br /&gt;
'''概要''': 新しい動的ゾーン生成システムが作成され、zoneGeneratorを設定することで、1つ以上のpointZone、cellZone、faceZoneから構成されるzoneSet（ゾーン集合）を生成できるようになりました [ commit da974812 ]。この新しい動的ゾーン生成システムには、ゾーンを作成・制御するための多数のzoneGeneratorが含まれています [ commits b4339ca4 ]、[ commits a578e1e8 ]。faceZoneではorientation flipMapがオプションになりました [ commit 5877765e ]。必要な場合は、flipMap zone generatorを用いて常に追加できます [ commit 32f9dd4f ]。&lt;br /&gt;
&lt;br /&gt;
'''createZones''': cell zoneを作成するためのtopoSetよりも簡単かつ強力な代替機能を提供します [ commit e4278233 ]。createZonesDictまたはzoneGeneratorファイルを読み込むことができます [ commit 1703c26e ]。&lt;br /&gt;
&lt;br /&gt;
'''refineMesh''': アプリケーション内部で生成した複数のゾーンを利用できるよう全面的に書き換え、簡略化しました。1回の実行で複数ゾーンを細分化できます [ commit 61e3bcb6 ]。さらにhexRef8細分化のオプションを備え、snappyHexMesh、動的細分化などによる追加の細分化にも対応します。このため、独立したrefineHexMeshユーティリティは不要になりました [ commit 1544cf9b ]。&lt;br /&gt;
&lt;br /&gt;
'''subsetMesh''': cellZoneを使用したサブセット化を可能にするよう全面的に書き換えられました。通常、このcellZoneはアプリケーション内部で生成され、subsetMeshDictで設定されます [ commit 7d90588d ]。&lt;br /&gt;
&lt;br /&gt;
'''createPatch''': メッシュのpatch順序を維持するようになりました [ commit 1527f1f2 ]。createPatchDictファイル内の設定から直接生成されたface zoneを用いてpatchを作成できるようになりました [ commit f05b6ee8 ]。また、設定ファイルではより簡潔なdictionary形式を使用します [ commit de7e4107 ]。&lt;br /&gt;
&lt;br /&gt;
'''setFields''': ファイル入力を簡略化し、setFieldsDictファイル内で直接設定したzoneを使用できるようになりました [ commit e12d83e7 ]。&lt;br /&gt;
&lt;br /&gt;
'''剛体運動''': 剛体とともに移動可能なpointZonesを含めることができるようになりました [ commit c184f81b ]。&lt;br /&gt;
&lt;br /&gt;
ゾーンおよび関連ユーティリティについては、「Dynamic Zones in OpenFOAM」および「OpenFOAM User Guide: 5.6 Mesh zones」を参照してください。&lt;br /&gt;
==マルチリージョン解析==&lt;br /&gt;
'''マッピング''': マルチリージョンケースでは、マッピング時に使用するメッシュ集合をmeshesサブディクショナリに含めることでmesh-to-meshマッピングを実行できるようになりました [ commit cbfa3627 ]。&lt;br /&gt;
&lt;br /&gt;
'''メッシュ生成''': 複数のregionを持つ解析では、-regionオプションを使用して個々のメッシュを生成・操作できるようになりました [ commit c0c636f6 ]。&lt;br /&gt;
&lt;br /&gt;
'''Non-conformal coupling''': non-conformal coupled（NCC）インターフェースに新しいmoveUpdateパラメータを追加しました。これは、交差／マッピングの更新タイミングをnever（静止メッシュ）、always（移動メッシュ）、detect（移動する場合と静止する場合があるメッシュ）から指定します [ commit ad8a5e82 ]。Mesh stitchingは、互いに近接して接続された複数のNCCインターフェースでも動作するようになりました [ commit d76d4047 ]。領域分割時におけるnon-conformal mapped wall patchの順序を修正しました [ commit 7220bc3b ]。non-conformal coupled interfaceのどちらのpatchをownerおよびneighbourにするかを、ユーザーが間接的に制御できるようになりました。owner patchはneighbour側へ投影されるため、ownerをより粗いメッシュ側に対応させることが合理的です [ commit e458c678 ]。&lt;br /&gt;
&lt;br /&gt;
'''Mesh stitching''': stitchMeshの堅牢性を改善しました [ commit 8a90693c ]。&lt;br /&gt;
==Function Objects==&lt;br /&gt;
'''一般''': #includeFuncディレクティブが引数内でのマクロ展開に対応しました [ commit 2bb1fd47 ]。&lt;br /&gt;
&lt;br /&gt;
'''スカラー輸送''': scalarTransportおよびphaseScalarTransportを改良し、拡散係数をキャッシュして他の場所からも利用できるようにしました [ commit 92eef5ec ]。scalarTransport Function Objectは、タイムステップ内で収束したflux fieldを使用し、タイムステップの最後に輸送方程式を解くようになりました [ commit d4f3f480 ]。phaseScalarTransport Function Objectについても同様です [ commit 604b24e1 ]。&lt;br /&gt;
&lt;br /&gt;
'''フィールド''': 新しいpower Function Objectは、さまざまな動力フィールドを計算します [ commit 0cc6f26b ]。&lt;br /&gt;
&lt;br /&gt;
'''反応''': Reaction rate Function Objectに、反応速度フィールドを書き出すオプションを追加しました [ commit 1c19a34b ]。&lt;br /&gt;
&lt;br /&gt;
'''グラフ''': cutLayerAverage Function Objectは、指定方向に垂直な平面、または指定した距離フィールドの等値面ごとに体積平均したセル値のグラフを出力します [ commit 0d43f803 ]。&lt;br /&gt;
&lt;br /&gt;
'''その他''': Population BalanceのFunction Objectが、HZDRのfoamPostProcessでも動作するようになりました [ commit fe17ea77 ]。&lt;br /&gt;
&lt;br /&gt;
'''データ出力''': 新しいFunction1として以下が追加されました。関数をx軸方向に移動するshift、指定した周期／周波数で関数を繰り返すrepeat、積分値が1（またはさらに指定倍率）となるよう関数をスケーリングするnormalise [ commit 37638286 ]。Function1では、OpenFOAM形式のtableファイルから特定のデータ列を選択できるようになりました [ commit 662fe586 ]。&lt;br /&gt;
==モデル==&lt;br /&gt;
'''流体ソース''': fvFieldSourceは、体積フィールド内の小領域だけでなく、体積フィールド全体に作用できるようになりました [ commit 6bb26587 ]。&lt;br /&gt;
&lt;br /&gt;
'''運動量''': 新しいrigidBodyPropellerDisk fvModelは、メッシュ移動に対応したpropellerDiskモデルを提供します [ commit d5b963ae ]。propellerDiskForceは、propellerDiskによる力およびモーメントと反対向きの力・モーメントを、プロペラが取り付けられている物体へ作用させます [ commit 6137b137 ]。この実装は後に修正されました [ commit d118afa2 ]。&lt;br /&gt;
==一般境界条件==&lt;br /&gt;
'''圧力''': 基準圧力を使用する場合のwaveSurfacePressure境界条件を修正しました [ commit 53941b20 ]。&lt;br /&gt;
&lt;br /&gt;
'''温度''': externalTemperature境界条件は、外部放射率を指定する場合に、外部対流熱伝達率を同時に指定しなくても使用できるようになりました [ commit 4b4bcef1 ]。&lt;br /&gt;
&lt;br /&gt;
'''一般''': 物質拡散を計算する境界条件は、Lewis数を1と仮定するのではなく、実効拡散係数を使用するよう更新されました [ commit 4d52188c ]。&lt;br /&gt;
==ケース設定==&lt;br /&gt;
'''一般設定''': チュートリアルでは、可能な場合にgetApplication関数およびcontrolDict内の関連するapplicationエントリが削除されました。デフォルトでfoamRunが使用されるためです [ commit 9971c8c5 ]。新しいfoamMergeCaseユーティリティは、既存ケースを基に小さな変更をマージし、新しいケースを作成できます [ commit 486df09c ]。PISO、PIMPLE、VoF、multiphaseEulerの相分率計算、populationBalance、scalarTransport、phaseScalarTransportにおけるcorrector数を指定する入力キーワードとして、nCorrectorsを一貫して使用するようになりました [ commit ef79c692 ]。&lt;br /&gt;
&lt;br /&gt;
'''ケース初期化''': 入力ファイル内のcoded entryで置換されるUxなどのキーワードパラメータは、パラメータ値で展開して書き出されるようになり、解析をrestartできるようになりました [ commit 52514ec4 ]。writeOptionalEntriesスイッチは、解析で使用されるデフォルト値を出力し、ユーザーがそれらを確認できるようにします [ commit 039e06cf ]。&lt;br /&gt;
&lt;br /&gt;
'''単位''': Avogadro数、Universal Gas constant、Faraday定数は、それぞれmol（モル）単位とkmol（キロモル）単位の2種類の変数として提供されます。NA、R、Fはmolを使用し、NNA、RR、FFはkmolを使用します [ commit 5e423f69 ]。次元を持つ定数の値は、単位系間で自動的に変換されるようになりました [ commit 84991fbe ]。&lt;br /&gt;
&lt;br /&gt;
foamMergeCaseについての詳細は「OpenFOAM User Guide: 4.7.9. The foamMergeCase script」を参照してください。&lt;br /&gt;
==可視化==&lt;br /&gt;
'''アニメーション''': 新しいfoamVTKSeriesスクリプトは.vtk.seriesファイルを生成します。これをParaViewで開くことで、OpenFOAMの後処理から生成された一連のVTKファイルを時系列データとして扱うことができます [ commit f7aac692 ]。&lt;br /&gt;
&lt;br /&gt;
'''グラフ''': foamMonitorツールを改良し、interactive modeでデフォルトのグラフィカルウィンドウを開き、正常に終了できるようにしました [ commit f6a6e48c ]。&lt;br /&gt;
&lt;br /&gt;
'''ParaView reader''': paraFoamスクリプトから起動するPVFoamReaderが、領域分割されたケースを読み込めるようになりました [ commit 81583278 ]。time selectorがsequence modeで停止したままになることがなくなり、常にケースの時刻を正しく表示します [ commit 737df51e ]。&lt;br /&gt;
&lt;br /&gt;
foamVTKSeriesについての詳細は「OpenFOAM User Guide: 7.4.5. The foamVTKSeries script」を参照してください。&lt;br /&gt;
==ケース==&lt;br /&gt;
'''テンプレートケース''': 新しいnonConformalCHTテンプレートケースは、流体領域と固体領域をnon-conformal coupled（NCC）インターフェースで結合した共役熱伝達（CHT）解析の作成を支援します [ commit 3ccd5c18 ]。&lt;br /&gt;
&lt;br /&gt;
'''incompressibleFluid''':&lt;br /&gt;
&lt;br /&gt;
simpleRushtonMRF/NCCサンプルケースは、Rushton turbineを備えた円筒形タンクを提供します [ commit ff7962d1 ]。&lt;br /&gt;
&lt;br /&gt;
cylinderは、パラメータ化されたblockMeshDictファイルを備えています [ commit f4dc4532 ]。&lt;br /&gt;
&lt;br /&gt;
venturiTubeは、『Notes on CFD』に掲載されているVenturi tubeのサンプルです [ commit c25f3091 ]。&lt;br /&gt;
&lt;br /&gt;
moodyChartは、単一の解析によってMoody chart上の点を生成します [ commit e7463c3a ]。&lt;br /&gt;
&lt;br /&gt;
'''fluid''':&lt;br /&gt;
&lt;br /&gt;
roomHeatingは、『Notes on CFD』のroom heating例を基にしています [ commit 075d9d30 ]。&lt;br /&gt;
&lt;br /&gt;
stackPlumeは、煙突からの流れを解析するケースです [ commit 988091a6 ]。&lt;br /&gt;
&lt;br /&gt;
'''incompressibleVoF''':&lt;br /&gt;
&lt;br /&gt;
parshallFlumeは、ISO規格のParshall Flumeを通過する水流の解析ケースです [ commit 815067c1 ]。&lt;br /&gt;
&lt;br /&gt;
'''multiphaseEuler''':&lt;br /&gt;
&lt;br /&gt;
aeratedStirredTankは、multiphaseEulerソルバーで実行する撹拌槽反応器の代表的なケースです [ commit 75400d6a ]。&lt;br /&gt;
&lt;br /&gt;
'''shockFluid''':&lt;br /&gt;
&lt;br /&gt;
diffuserIntakeは、実験データを含むケースです [ commit 8f401d1f ]。&lt;br /&gt;
==その他==&lt;br /&gt;
'''その他の数値計算''': N×N scalarSquareMatrixの固有値分解を実装しました [ commit 4ca8ea20 ]。慣性モーメントテンソルをsymmTensorを使用するよう変更しました [ commit cf85a155 ]。多角形の三角形分割をより堅牢にしました [ commit 7cf271cd ]。&lt;br /&gt;
&lt;br /&gt;
'''フィールド''': Field Operation and Manipulation（FOAM）の基本構成要素であるGeometricFieldのテンプレート引数を変更し、内部フィールドについてより柔軟なオプションを利用できるようにしました [ commit 3e98252e ]。新しいfvc::surfaceIntegrateExtrapolate関数を追加しました。この関数は境界値を含む完全なフィールドを生成します。一方、surfaceIntegrateおよびsurfaceSum関数は内部フィールドのみを返すようになりました [ commit 66a9057f ]。&lt;br /&gt;
&lt;br /&gt;
'''データ管理''': OpenFOAM内部の不要なdictionaryコピーを削除しました [ commit a512d3fc ]。&lt;br /&gt;
&lt;br /&gt;
'''スターターコード''': foamNewAppスクリプトに-plainオプションを追加し、単純な非CFDアプリケーション向けのスターターコードを作成できるようになりました [ commit 55568890 ]。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=879</id>
		<title>OpenFOAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=879"/>
		<updated>2026-07-19T02:20:10Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではOpenFOAMについてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
==スターティングガイド==&lt;br /&gt;
[[OpenFOAMについて]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのインストール]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e63d4cf76ea2fea659b2 チュートリアルケースの実行]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/24b8491bf9776c3a27db OpenFOAMで入力できる項目の調べ方]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e4b13100e15508981a85 OpenFOAMの$FOAM変数]&lt;br /&gt;
&lt;br /&gt;
==困った時は？==&lt;br /&gt;
[https://qiita.com/mmer547/items/7c7c257dcaf2efbc730b OpenFOAM Google Groupに投稿する際に抑えるポイント]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/6b041536e2ac5dd17721 OpenFOAMで計算するネタがない時の探し方]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのエラーメッセージの対応]]&lt;br /&gt;
&lt;br /&gt;
==プリプロセス==&lt;br /&gt;
&lt;br /&gt;
===形状作成===&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%EF%BC%9A%E5%BD%A2%E7%8A%B6%E4%BD%9C%E6%88%90 形状作成ツールまとめ]&lt;br /&gt;
&lt;br /&gt;
===メッシュ===&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%E3%81%AE%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 OpenFOAMのメッシャーについて]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:blockMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:snappyHexMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:cfMesh]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/9fca38b8e8eadc869bb8 SalomeでOpenFOAMのメッシュを用意する方法]&lt;br /&gt;
&lt;br /&gt;
===境界条件===&lt;br /&gt;
[[境界条件]]&lt;br /&gt;
&lt;br /&gt;
==ソルバ==&lt;br /&gt;
[[simpleFoamについて]]&lt;br /&gt;
&lt;br /&gt;
[[ExecutionTimeとClockTimeについて]]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/SIMPLEC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%A8%88%E7%AE%97%E5%AE%9F%E8%A1%8C%EF%BC%88OpenFOAM3.0.1%EF%BC%89 SIMPLECを使用した計算実行（OpenFOAM3.0.1）]&lt;br /&gt;
&lt;br /&gt;
===並列計算の実行方法===&lt;br /&gt;
&lt;br /&gt;
[[decomposeParDictの中身]]&lt;br /&gt;
&lt;br /&gt;
===エラーメッセージ===&lt;br /&gt;
[[v1806のエラーメッセージ]]&lt;br /&gt;
&lt;br /&gt;
==ポストプロセス==&lt;br /&gt;
[[ログファイルから残差ログを抽出]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e463235ddb93f08db68a OpenFOAMのpostProcessについて]&lt;br /&gt;
&lt;br /&gt;
==チュートリアルケース==&lt;br /&gt;
[[チュートリアルケース|チュートリアルケース一覧]]&lt;br /&gt;
&lt;br /&gt;
==カスタマイズ==&lt;br /&gt;
[https://qiita.com/mmer547/items/2997bf8c71fe1e2423c9 OpenFOAM ソースコードの探し方]&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/foam-extend_4.0%E3%82%92Bash_on_Ubuntu_on_Windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB foam-extend 4.0をBash on Ubuntu on Windowsにインストール]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/ESI_Windows%E7%89%88OpenFOAM%E3%81%AE%E5%B0%8E%E5%85%A5 ESI Windows版OpenFOAMの導入]&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/OpenCAE/Supercomputer-OpenFOAM-Training/-/wikis/home スーパーコンピュータOpenFOAM講習会]&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
&lt;br /&gt;
'''OpenCFD'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2606 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2512 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2506 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2412 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2406 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2312リリースノート|OpenFOAM v2312 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2306リリースノート|OpenFOAM v2306 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2212 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2206 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2112 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2106 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/OF2012-3625e0d8029b40bda20fafe481dcbd95 OpenFOAM v2012 リリースノート]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2006 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1912 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1906 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1812 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1806 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The OpenFOAM Foundation'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 14 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 13 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 12 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 11 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 10 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 9|OpenFOAM 9 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 8 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v7 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v6.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 3.0.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 2.4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
== 関連サービス ==&lt;br /&gt;
=== プリプロセス ===&lt;br /&gt;
[https://www.xsim.info/products/products.html XSim.Work]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDEXCS-OpenFOAM%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E9%87%8E%E6%9D%91-%E6%82%A6%E6%B2%BB/dp/4621306138/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-5 オープンCAEのためのDEXCS for OpenFOAMハンドブック]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E7%AC%AC2%E7%89%88-%E4%B8%80%E8%88%AC%E7%A4%BE%E5%9B%A3%E6%B3%95%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691025/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-1 OpenFOAMによる熱移動と流れの数値解析(第2版) ]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E5%B7%9D%E7%95%91-%E7%9C%9F%E4%B8%80/dp/4844379526/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-6　OpenFOAMの歩き方]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%83%A9%E3%83%90%E3%82%A4%E3%83%88/dp/4627691610/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-2 OpenFOAMライブラリリファレンス]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Tomislav-Mari%C2%B4c/dp/4627670915/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-3 OpenFOAMプログラミング]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691017/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-4 OpenFOAMによる熱移動と流れの数値解析]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=878</id>
		<title>OpenFOAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=878"/>
		<updated>2026-07-19T02:19:49Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* リリースノート */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではOpenFOAMについてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
&lt;br /&gt;
'''OpenCFD'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2606 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2512 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2506 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2412 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2406 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2312リリースノート|OpenFOAM v2312 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2306リリースノート|OpenFOAM v2306 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2212 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2206 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2112 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2106 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/OF2012-3625e0d8029b40bda20fafe481dcbd95 OpenFOAM v2012 リリースノート]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2006 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1912 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1906 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1812 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1806 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The OpenFOAM Foundation'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 14 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 13 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 12 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 11 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 10 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 9|OpenFOAM 9 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 8 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v7 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v6.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 3.0.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 2.4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
==スターティングガイド==&lt;br /&gt;
[[OpenFOAMについて]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのインストール]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e63d4cf76ea2fea659b2 チュートリアルケースの実行]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/24b8491bf9776c3a27db OpenFOAMで入力できる項目の調べ方]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e4b13100e15508981a85 OpenFOAMの$FOAM変数]&lt;br /&gt;
&lt;br /&gt;
==困った時は？==&lt;br /&gt;
[https://qiita.com/mmer547/items/7c7c257dcaf2efbc730b OpenFOAM Google Groupに投稿する際に抑えるポイント]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/6b041536e2ac5dd17721 OpenFOAMで計算するネタがない時の探し方]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのエラーメッセージの対応]]&lt;br /&gt;
&lt;br /&gt;
==プリプロセス==&lt;br /&gt;
&lt;br /&gt;
===形状作成===&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%EF%BC%9A%E5%BD%A2%E7%8A%B6%E4%BD%9C%E6%88%90 形状作成ツールまとめ]&lt;br /&gt;
&lt;br /&gt;
===メッシュ===&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%E3%81%AE%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 OpenFOAMのメッシャーについて]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:blockMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:snappyHexMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:cfMesh]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/9fca38b8e8eadc869bb8 SalomeでOpenFOAMのメッシュを用意する方法]&lt;br /&gt;
&lt;br /&gt;
===境界条件===&lt;br /&gt;
[[境界条件]]&lt;br /&gt;
&lt;br /&gt;
==ソルバ==&lt;br /&gt;
[[simpleFoamについて]]&lt;br /&gt;
&lt;br /&gt;
[[ExecutionTimeとClockTimeについて]]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/SIMPLEC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%A8%88%E7%AE%97%E5%AE%9F%E8%A1%8C%EF%BC%88OpenFOAM3.0.1%EF%BC%89 SIMPLECを使用した計算実行（OpenFOAM3.0.1）]&lt;br /&gt;
&lt;br /&gt;
===並列計算の実行方法===&lt;br /&gt;
&lt;br /&gt;
[[decomposeParDictの中身]]&lt;br /&gt;
&lt;br /&gt;
===エラーメッセージ===&lt;br /&gt;
[[v1806のエラーメッセージ]]&lt;br /&gt;
&lt;br /&gt;
==ポストプロセス==&lt;br /&gt;
[[ログファイルから残差ログを抽出]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e463235ddb93f08db68a OpenFOAMのpostProcessについて]&lt;br /&gt;
&lt;br /&gt;
==チュートリアルケース==&lt;br /&gt;
[[チュートリアルケース|チュートリアルケース一覧]]&lt;br /&gt;
&lt;br /&gt;
==カスタマイズ==&lt;br /&gt;
[https://qiita.com/mmer547/items/2997bf8c71fe1e2423c9 OpenFOAM ソースコードの探し方]&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/foam-extend_4.0%E3%82%92Bash_on_Ubuntu_on_Windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB foam-extend 4.0をBash on Ubuntu on Windowsにインストール]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/ESI_Windows%E7%89%88OpenFOAM%E3%81%AE%E5%B0%8E%E5%85%A5 ESI Windows版OpenFOAMの導入]&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/OpenCAE/Supercomputer-OpenFOAM-Training/-/wikis/home スーパーコンピュータOpenFOAM講習会]&lt;br /&gt;
&lt;br /&gt;
== 関連サービス ==&lt;br /&gt;
=== プリプロセス ===&lt;br /&gt;
[https://www.xsim.info/products/products.html XSim.Work]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDEXCS-OpenFOAM%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E9%87%8E%E6%9D%91-%E6%82%A6%E6%B2%BB/dp/4621306138/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-5 オープンCAEのためのDEXCS for OpenFOAMハンドブック]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E7%AC%AC2%E7%89%88-%E4%B8%80%E8%88%AC%E7%A4%BE%E5%9B%A3%E6%B3%95%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691025/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-1 OpenFOAMによる熱移動と流れの数値解析(第2版) ]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E5%B7%9D%E7%95%91-%E7%9C%9F%E4%B8%80/dp/4844379526/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-6　OpenFOAMの歩き方]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%83%A9%E3%83%90%E3%82%A4%E3%83%88/dp/4627691610/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-2 OpenFOAMライブラリリファレンス]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Tomislav-Mari%C2%B4c/dp/4627670915/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-3 OpenFOAMプログラミング]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691017/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-4 OpenFOAMによる熱移動と流れの数値解析]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=877</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=877"/>
		<updated>2026-03-19T23:14:19Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* GPUのみで計算実行 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
== GPUのみで計算実行 ==&lt;br /&gt;
&lt;br /&gt;
=== WSL ===&lt;br /&gt;
&lt;br /&gt;
==== CUDAのインストール ====&lt;br /&gt;
Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。&lt;br /&gt;
&lt;br /&gt;
cudaをインストールする。&amp;lt;ref&amp;gt;https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=WSL-Ubuntu&amp;amp;target_version=2.0&amp;amp;target_type=deb_local&amp;lt;/ref&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin&lt;br /&gt;
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo dpkg -i cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo cp /var/cuda-repo-wsl-ubuntu-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y install cuda-toolkit-13-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;インストール出来たら環境変数を追加する。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo 'export PATH=&amp;quot;${PATH}:/usr/local/cuda-13.2/bin&amp;quot;' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo 'export LD_LIBRARY_PATH=&amp;quot;${LD_LIBRARY_PATH}:/usr/local/cuda-13.2/lib64&amp;quot;' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenLBの再コンパイル ====&lt;br /&gt;
config.mkをconfig/gpu_only.mkを参考に書き換える。&lt;br /&gt;
&lt;br /&gt;
GPUによってパラメータの変更は必要。&lt;br /&gt;
&lt;br /&gt;
（RTX2060の場合）&amp;lt;syntaxhighlight lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
# Example build config for OpenLB using CUDA on single GPU systems&lt;br /&gt;
#&lt;br /&gt;
# Tested using CUDA 11.4&lt;br /&gt;
#&lt;br /&gt;
# Usage:&lt;br /&gt;
#  - Copy this file to OpenLB root as `config.mk`&lt;br /&gt;
#  - Adjust CUDA_ARCH to match your specifc GPU&lt;br /&gt;
#  - Run `make clean; make`&lt;br /&gt;
#  - Switch to example directory, e.g. `examples/laminar/cavity3dBenchmark`&lt;br /&gt;
#  - Run `make`&lt;br /&gt;
#  - Start the simulation using `./cavity3d`&lt;br /&gt;
&lt;br /&gt;
CXX             := nvcc&lt;br /&gt;
CC              := nvcc&lt;br /&gt;
&lt;br /&gt;
CXXFLAGS        := -O3&lt;br /&gt;
CXXFLAGS        += -std=c++20 --forward-unknown-to-host-compiler&lt;br /&gt;
&lt;br /&gt;
PARALLEL_MODE   := NONE&lt;br /&gt;
&lt;br /&gt;
PLATFORMS       := CPU_SISD GPU_CUDA&lt;br /&gt;
&lt;br /&gt;
# for e.g. RTX 30* (Ampere), see table in `rules.mk` for other options&lt;br /&gt;
CUDA_ARCH       := 75&lt;br /&gt;
&lt;br /&gt;
FLOATING_POINT_TYPE := float&lt;br /&gt;
&lt;br /&gt;
USE_EMBEDDED_DEPENDENCIES := ON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ソルバのコンパイル ====&lt;br /&gt;
ソルバも再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 実行 ====&lt;br /&gt;
実行はCPU版と同じ。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./&amp;lt;solver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=876</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=876"/>
		<updated>2026-03-19T23:03:16Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
== GPUのみで計算実行 ==&lt;br /&gt;
&lt;br /&gt;
=== WSL ===&lt;br /&gt;
&lt;br /&gt;
==== CUDAのインストール ====&lt;br /&gt;
Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。&lt;br /&gt;
&lt;br /&gt;
cudaをインストールする。&amp;lt;ref&amp;gt;https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=WSL-Ubuntu&amp;amp;target_version=2.0&amp;amp;target_type=deb_local&amp;lt;/ref&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin&lt;br /&gt;
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo dpkg -i cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo cp /var/cuda-repo-wsl-ubuntu-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y install cuda-toolkit-13-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;インストール出来たら環境変数を追加する。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo 'export PATH=&amp;quot;${PATH}:/usr/local/cuda-13.2/bin&amp;quot;' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo 'export LD_LIBRARY_PATH=&amp;quot;${LD_LIBRARY_PATH}:/usr/local/cuda-13.2/lib64&amp;quot;' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenLBの再コンパイル ====&lt;br /&gt;
config.mkをconfig/gpu_only.mkを参考に書き換える。&lt;br /&gt;
&lt;br /&gt;
GPUによってパラメータの変更は必要。&lt;br /&gt;
&lt;br /&gt;
（RTX2060の場合）&amp;lt;syntaxhighlight lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
# Example build config for OpenLB using CUDA on single GPU systems&lt;br /&gt;
#&lt;br /&gt;
# Tested using CUDA 11.4&lt;br /&gt;
#&lt;br /&gt;
# Usage:&lt;br /&gt;
#  - Copy this file to OpenLB root as `config.mk`&lt;br /&gt;
#  - Adjust CUDA_ARCH to match your specifc GPU&lt;br /&gt;
#  - Run `make clean; make`&lt;br /&gt;
#  - Switch to example directory, e.g. `examples/laminar/cavity3dBenchmark`&lt;br /&gt;
#  - Run `make`&lt;br /&gt;
#  - Start the simulation using `./cavity3d`&lt;br /&gt;
&lt;br /&gt;
CXX             := nvcc&lt;br /&gt;
CC              := nvcc&lt;br /&gt;
&lt;br /&gt;
CXXFLAGS        := -O3&lt;br /&gt;
CXXFLAGS        += -std=c++20 --forward-unknown-to-host-compiler&lt;br /&gt;
&lt;br /&gt;
PARALLEL_MODE   := NONE&lt;br /&gt;
&lt;br /&gt;
PLATFORMS       := CPU_SISD GPU_CUDA&lt;br /&gt;
&lt;br /&gt;
# for e.g. RTX 30* (Ampere), see table in `rules.mk` for other options&lt;br /&gt;
CUDA_ARCH       := 75&lt;br /&gt;
&lt;br /&gt;
FLOATING_POINT_TYPE := float&lt;br /&gt;
&lt;br /&gt;
USE_EMBEDDED_DEPENDENCIES := ON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ソルバのコンパイル ====&lt;br /&gt;
ソルバも再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 実行 ====&lt;br /&gt;
実行はCPU版と同じ。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./&amp;lt;solver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=875</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=875"/>
		<updated>2026-03-19T22:55:16Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
== GPUのみで計算実行 ==&lt;br /&gt;
&lt;br /&gt;
=== WSL ===&lt;br /&gt;
&lt;br /&gt;
==== CUDAのインストール ====&lt;br /&gt;
Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。&lt;br /&gt;
&lt;br /&gt;
cudaをインストールする。&amp;lt;ref&amp;gt;https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=WSL-Ubuntu&amp;amp;target_version=2.0&amp;amp;target_type=deb_local&amp;lt;/ref&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin&lt;br /&gt;
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo dpkg -i cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo cp /var/cuda-repo-wsl-ubuntu-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y install cuda-toolkit-13-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;インストール出来たら環境変数を追加する。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;export PATH=${PATH}:/usr/local/cuda-13.2/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-13.2/lib64&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenLBの再コンパイル ====&lt;br /&gt;
config.mkをconfig/gpu_only.mkを参考に書き換える。&lt;br /&gt;
&lt;br /&gt;
GPUによってパラメータの変更は必要。&lt;br /&gt;
&lt;br /&gt;
（RTX2060の場合）&amp;lt;syntaxhighlight lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
# Example build config for OpenLB using CUDA on single GPU systems&lt;br /&gt;
#&lt;br /&gt;
# Tested using CUDA 11.4&lt;br /&gt;
#&lt;br /&gt;
# Usage:&lt;br /&gt;
#  - Copy this file to OpenLB root as `config.mk`&lt;br /&gt;
#  - Adjust CUDA_ARCH to match your specifc GPU&lt;br /&gt;
#  - Run `make clean; make`&lt;br /&gt;
#  - Switch to example directory, e.g. `examples/laminar/cavity3dBenchmark`&lt;br /&gt;
#  - Run `make`&lt;br /&gt;
#  - Start the simulation using `./cavity3d`&lt;br /&gt;
&lt;br /&gt;
CXX             := nvcc&lt;br /&gt;
CC              := nvcc&lt;br /&gt;
&lt;br /&gt;
CXXFLAGS        := -O3&lt;br /&gt;
CXXFLAGS        += -std=c++20 --forward-unknown-to-host-compiler&lt;br /&gt;
&lt;br /&gt;
PARALLEL_MODE   := NONE&lt;br /&gt;
&lt;br /&gt;
PLATFORMS       := CPU_SISD GPU_CUDA&lt;br /&gt;
&lt;br /&gt;
# for e.g. RTX 30* (Ampere), see table in `rules.mk` for other options&lt;br /&gt;
CUDA_ARCH       := 75&lt;br /&gt;
&lt;br /&gt;
FLOATING_POINT_TYPE := float&lt;br /&gt;
&lt;br /&gt;
USE_EMBEDDED_DEPENDENCIES := ON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ソルバのコンパイル ====&lt;br /&gt;
ソルバも再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 実行 ====&lt;br /&gt;
実行はCPU版と同じ。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./&amp;lt;solver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=874</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=874"/>
		<updated>2026-03-19T22:53:26Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
== GPUのみで計算実行 ==&lt;br /&gt;
&lt;br /&gt;
=== WSL ===&lt;br /&gt;
&lt;br /&gt;
==== CUDAのインストール ====&lt;br /&gt;
Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。&lt;br /&gt;
&lt;br /&gt;
cudaをインストールする。&amp;lt;ref&amp;gt;https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=WSL-Ubuntu&amp;amp;target_version=2.0&amp;amp;target_type=deb_local&amp;lt;/ref&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin&lt;br /&gt;
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo dpkg -i cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo cp /var/cuda-repo-wsl-ubuntu-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y install cuda-toolkit-13-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;インストール出来たら環境変数を追加する。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo export PATH=${PATH}:/usr/local/cuda-13.2/bin &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-13.2/lib64 &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenLBの再コンパイル ====&lt;br /&gt;
config.mkをconfig/gpu_only.mkを参考に書き換える。&lt;br /&gt;
&lt;br /&gt;
GPUによってパラメータの変更は必要。&lt;br /&gt;
&lt;br /&gt;
（RTX2060の場合）&amp;lt;syntaxhighlight lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
# Example build config for OpenLB using CUDA on single GPU systems&lt;br /&gt;
#&lt;br /&gt;
# Tested using CUDA 11.4&lt;br /&gt;
#&lt;br /&gt;
# Usage:&lt;br /&gt;
#  - Copy this file to OpenLB root as `config.mk`&lt;br /&gt;
#  - Adjust CUDA_ARCH to match your specifc GPU&lt;br /&gt;
#  - Run `make clean; make`&lt;br /&gt;
#  - Switch to example directory, e.g. `examples/laminar/cavity3dBenchmark`&lt;br /&gt;
#  - Run `make`&lt;br /&gt;
#  - Start the simulation using `./cavity3d`&lt;br /&gt;
&lt;br /&gt;
CXX             := nvcc&lt;br /&gt;
CC              := nvcc&lt;br /&gt;
&lt;br /&gt;
CXXFLAGS        := -O3&lt;br /&gt;
CXXFLAGS        += -std=c++20 --forward-unknown-to-host-compiler&lt;br /&gt;
&lt;br /&gt;
PARALLEL_MODE   := NONE&lt;br /&gt;
&lt;br /&gt;
PLATFORMS       := CPU_SISD GPU_CUDA&lt;br /&gt;
&lt;br /&gt;
# for e.g. RTX 30* (Ampere), see table in `rules.mk` for other options&lt;br /&gt;
CUDA_ARCH       := 75&lt;br /&gt;
&lt;br /&gt;
FLOATING_POINT_TYPE := float&lt;br /&gt;
&lt;br /&gt;
USE_EMBEDDED_DEPENDENCIES := ON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ソルバのコンパイル ====&lt;br /&gt;
ソルバも再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 実行 ====&lt;br /&gt;
実行はCPU版と同じ。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./&amp;lt;solver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=873</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=873"/>
		<updated>2026-03-19T22:52:20Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
== GPUのみで計算実行 ==&lt;br /&gt;
&lt;br /&gt;
=== WSL ===&lt;br /&gt;
&lt;br /&gt;
==== CUDAのインストール ====&lt;br /&gt;
Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。&lt;br /&gt;
&lt;br /&gt;
cudaをインストールする。&amp;lt;ref&amp;gt;https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=WSL-Ubuntu&amp;amp;target_version=2.0&amp;amp;target_type=deb_local&amp;lt;/ref&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin&lt;br /&gt;
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo dpkg -i cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo cp /var/cuda-repo-wsl-ubuntu-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y install cuda-toolkit-13-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;インストール出来たら環境変数を追加する。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=${PATH}:/usr/local/cuda-13.2/bin &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-13.2/lib64 &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenLBの再コンパイル ====&lt;br /&gt;
config.mkをconfig/gpu_only.mkを参考に書き換える。&lt;br /&gt;
&lt;br /&gt;
GPUによってパラメータの変更は必要。&lt;br /&gt;
&lt;br /&gt;
（RTX2060の場合）&amp;lt;syntaxhighlight lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
# Example build config for OpenLB using CUDA on single GPU systems&lt;br /&gt;
#&lt;br /&gt;
# Tested using CUDA 11.4&lt;br /&gt;
#&lt;br /&gt;
# Usage:&lt;br /&gt;
#  - Copy this file to OpenLB root as `config.mk`&lt;br /&gt;
#  - Adjust CUDA_ARCH to match your specifc GPU&lt;br /&gt;
#  - Run `make clean; make`&lt;br /&gt;
#  - Switch to example directory, e.g. `examples/laminar/cavity3dBenchmark`&lt;br /&gt;
#  - Run `make`&lt;br /&gt;
#  - Start the simulation using `./cavity3d`&lt;br /&gt;
&lt;br /&gt;
CXX             := nvcc&lt;br /&gt;
CC              := nvcc&lt;br /&gt;
&lt;br /&gt;
CXXFLAGS        := -O3&lt;br /&gt;
CXXFLAGS        += -std=c++20 --forward-unknown-to-host-compiler&lt;br /&gt;
&lt;br /&gt;
PARALLEL_MODE   := NONE&lt;br /&gt;
&lt;br /&gt;
PLATFORMS       := CPU_SISD GPU_CUDA&lt;br /&gt;
&lt;br /&gt;
# for e.g. RTX 30* (Ampere), see table in `rules.mk` for other options&lt;br /&gt;
CUDA_ARCH       := 75&lt;br /&gt;
&lt;br /&gt;
FLOATING_POINT_TYPE := float&lt;br /&gt;
&lt;br /&gt;
USE_EMBEDDED_DEPENDENCIES := ON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ソルバのコンパイル ====&lt;br /&gt;
ソルバも再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 実行 ====&lt;br /&gt;
実行はCPU版と同じ。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./&amp;lt;solver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=872</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=872"/>
		<updated>2026-03-19T12:32:09Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
== GPUのみで計算実行 ==&lt;br /&gt;
&lt;br /&gt;
=== WSL ===&lt;br /&gt;
&lt;br /&gt;
==== CUDAのインストール ====&lt;br /&gt;
Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。&lt;br /&gt;
&lt;br /&gt;
cudaをインストールする。&amp;lt;ref&amp;gt;https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=WSL-Ubuntu&amp;amp;target_version=2.0&amp;amp;target_type=deb_local&amp;lt;/ref&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin&lt;br /&gt;
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo dpkg -i cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb&lt;br /&gt;
sudo cp /var/cuda-repo-wsl-ubuntu-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y install cuda-toolkit-13-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;インストール出来たら環境変数を追加する。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=${PATH}:/usr/local/cuda-13.2/bin &amp;gt; ~/.bashrc&lt;br /&gt;
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-13.2/lib64 &amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== OpenLBの再コンパイル ====&lt;br /&gt;
config.mkをconfig/gpu_only.mkを参考に書き換える。&lt;br /&gt;
&lt;br /&gt;
GPUによってパラメータの変更は必要。&lt;br /&gt;
&lt;br /&gt;
（RTX2060の場合）&amp;lt;syntaxhighlight lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
# Example build config for OpenLB using CUDA on single GPU systems&lt;br /&gt;
#&lt;br /&gt;
# Tested using CUDA 11.4&lt;br /&gt;
#&lt;br /&gt;
# Usage:&lt;br /&gt;
#  - Copy this file to OpenLB root as `config.mk`&lt;br /&gt;
#  - Adjust CUDA_ARCH to match your specifc GPU&lt;br /&gt;
#  - Run `make clean; make`&lt;br /&gt;
#  - Switch to example directory, e.g. `examples/laminar/cavity3dBenchmark`&lt;br /&gt;
#  - Run `make`&lt;br /&gt;
#  - Start the simulation using `./cavity3d`&lt;br /&gt;
&lt;br /&gt;
CXX             := nvcc&lt;br /&gt;
CC              := nvcc&lt;br /&gt;
&lt;br /&gt;
CXXFLAGS        := -O3&lt;br /&gt;
CXXFLAGS        += -std=c++20 --forward-unknown-to-host-compiler&lt;br /&gt;
&lt;br /&gt;
PARALLEL_MODE   := NONE&lt;br /&gt;
&lt;br /&gt;
PLATFORMS       := CPU_SISD GPU_CUDA&lt;br /&gt;
&lt;br /&gt;
# for e.g. RTX 30* (Ampere), see table in `rules.mk` for other options&lt;br /&gt;
CUDA_ARCH       := 75&lt;br /&gt;
&lt;br /&gt;
FLOATING_POINT_TYPE := float&lt;br /&gt;
&lt;br /&gt;
USE_EMBEDDED_DEPENDENCIES := ON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ソルバのコンパイル ====&lt;br /&gt;
ソルバも再コンパイルする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 実行 ====&lt;br /&gt;
実行はCPU版と同じ。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./&amp;lt;solver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=871</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=871"/>
		<updated>2026-03-04T10:29:12Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=870</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=870"/>
		<updated>2026-02-25T12:42:05Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。&lt;br /&gt;
&lt;br /&gt;
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=869</id>
		<title>OpenLB</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenLB&amp;diff=869"/>
		<updated>2026-02-25T12:35:59Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。''&lt;br /&gt;
&lt;br /&gt;
[https://www.openlb.net/ 公式ホームページ]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Windows＋WSL ===&lt;br /&gt;
まずWSLをインストールする。&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenLBをダウンロードする。&amp;lt;ref&amp;gt;https://www.openlb.net/download/&amp;lt;/ref&amp;gt;ダウンロードしたら圧縮ファイルを解凍する。&lt;br /&gt;
&lt;br /&gt;
WSLを起動する。&lt;br /&gt;
&lt;br /&gt;
WSL内にmakeをインストールする。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install make gcc g++ openmpi-bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;WSL内で解答した圧縮ファイルのフォルダに移動する。&lt;br /&gt;
&lt;br /&gt;
makeを実行します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これでOpenLBのコンパイルは完了です。&lt;br /&gt;
&lt;br /&gt;
=== インストールの確認 ===&lt;br /&gt;
試しに簡単なソルバをコンパイルして計算してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd examples/laminar/cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;makeします。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;計算を実行してみます。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./cavity2d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=868</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=868"/>
		<updated>2026-02-25T12:12:40Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* 格子ボルツマン法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;オープンCAEWikiにようこそ！&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンソースCAEソフトウェアについての情報まとめています。&lt;br /&gt;
クローズドなwikiではありません。&lt;br /&gt;
ご編集されたい方はアカウントをご登録ください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なお、内容はオープンCAEに関連するものでお願いします。&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンCAE学会が管理しています。&lt;br /&gt;
オープンCAE学会については[http://www.opencae.or.jp 公式サイト]を参照してください。&lt;br /&gt;
&lt;br /&gt;
[https://www.opencae.or.jp/ オープンCAE学会公式サイト]&lt;br /&gt;
&lt;br /&gt;
オープンCAE学会リポジトリ [https://gitlab.com/OpenCAE Gitlab] [https://github.com/opencae Github]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAEの前提知識 ===&lt;br /&gt;
&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[解析用語]]&lt;br /&gt;
&lt;br /&gt;
=== CAD ===&lt;br /&gt;
[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
=== メッシャー ===&lt;br /&gt;
[[Netgen]]&lt;br /&gt;
&lt;br /&gt;
[[Gmsh]]&lt;br /&gt;
&lt;br /&gt;
=== 流体 ===&lt;br /&gt;
[[OpenFOAM]]&lt;br /&gt;
&lt;br /&gt;
[[SU2]]&lt;br /&gt;
&lt;br /&gt;
=== 構造 ===&lt;br /&gt;
[[FrontISTR]]&lt;br /&gt;
&lt;br /&gt;
[[Salome-Meca]]&lt;br /&gt;
&lt;br /&gt;
[[CalculiX]]&lt;br /&gt;
&lt;br /&gt;
[[PrePoMax]]&lt;br /&gt;
&lt;br /&gt;
[[StressRefine]]&lt;br /&gt;
&lt;br /&gt;
[[FEBio]]&lt;br /&gt;
&lt;br /&gt;
[[PlantFEM]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRadioss]]&lt;br /&gt;
&lt;br /&gt;
=== MBD(モデルベースデザイン) ===&lt;br /&gt;
[[OpenModelica]]&lt;br /&gt;
&lt;br /&gt;
=== 機構解析 ===&lt;br /&gt;
&lt;br /&gt;
[[MBDyn]]&lt;br /&gt;
&lt;br /&gt;
[[EXUDYN]]&lt;br /&gt;
&lt;br /&gt;
=== 有限要素法ライブラリ・ツールセット ===&lt;br /&gt;
&lt;br /&gt;
[[GetFEM]]&lt;br /&gt;
&lt;br /&gt;
[[DelFEM2]]&lt;br /&gt;
&lt;br /&gt;
[[sparselizard]]&lt;br /&gt;
&lt;br /&gt;
[[ivyFEM]]&lt;br /&gt;
&lt;br /&gt;
=== マルチフィジックス ===&lt;br /&gt;
[[Elmer]]&lt;br /&gt;
&lt;br /&gt;
=== 粒子法 ===&lt;br /&gt;
[[DualSPHygics]]&lt;br /&gt;
&lt;br /&gt;
[[OpenMPS]]&lt;br /&gt;
&lt;br /&gt;
=== 格子ボルツマン法 ===&lt;br /&gt;
[[Palabos]]&lt;br /&gt;
&lt;br /&gt;
[[waLBerla]]&lt;br /&gt;
&lt;br /&gt;
[[OpenLB]]&lt;br /&gt;
&lt;br /&gt;
=== 偏微分方程式ソルバ ===&lt;br /&gt;
&lt;br /&gt;
[[FEniCSx]]&lt;br /&gt;
&lt;br /&gt;
=== 可視化 ===&lt;br /&gt;
[[Paraview]]&lt;br /&gt;
&lt;br /&gt;
[[PyVista]]&lt;br /&gt;
&lt;br /&gt;
[[Mayavi]]&lt;br /&gt;
&lt;br /&gt;
=== 最適化 ===&lt;br /&gt;
[[OpenMDAO]]&lt;br /&gt;
&lt;br /&gt;
[[OpenDA]]&lt;br /&gt;
&lt;br /&gt;
[[Dakota]]&lt;br /&gt;
&lt;br /&gt;
=== クラウド ===&lt;br /&gt;
&lt;br /&gt;
[[SimScale]]&lt;br /&gt;
&lt;br /&gt;
=== V&amp;amp;V ===&lt;br /&gt;
[https://www.opencae.or.jp/activity/committee/vandv/ V&amp;amp;V小委員会(オープンCAE学会)]&lt;br /&gt;
&lt;br /&gt;
[https://feaber.readthedocs.io/ja/latest/ FEABeR]&lt;br /&gt;
&lt;br /&gt;
[https://www.grc.nasa.gov/www/wind/valid/tutorial/overview.html Overview of CFD Verification and Validation]&lt;br /&gt;
&lt;br /&gt;
=== ベンチマーク ===&lt;br /&gt;
[https://www.cenav.org/ 計算工学ナビ]&lt;br /&gt;
&lt;br /&gt;
[https://www.en.build.aau.dk/web/cfd-benchmarks CFD benchmarks]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/luo-yining/CFDBench CFDBench]&lt;br /&gt;
&lt;br /&gt;
=== プログラミング ===&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
[[C++]]&lt;br /&gt;
&lt;br /&gt;
=== その他 ===&lt;br /&gt;
&lt;br /&gt;
[[物性データベース]]&lt;br /&gt;
&lt;br /&gt;
[[Blender]]&lt;br /&gt;
&lt;br /&gt;
[[Maxima]]&lt;br /&gt;
&lt;br /&gt;
[[REDUCE]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2017/openfoam OpenFOAM Advent Calendar 2017]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2018/opencae-ac2018 オープンCAE Advent Calendar 2018]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2019/opencae-ac2019 オープンCAE Advent Calendar 2019]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/5192 オープンCAE Advent Calendar 2020]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/6423 オープンCAE Advent Calendar 2021]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2022/opencae オープンCAE Advent Calendar 2022]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2023/opencae オープンCAE Advent Calendar 2023]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAE ===&lt;br /&gt;
[[オープンCAEの系譜]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCuffpM6BjZWZ4AEDFiQexEg オープンCAE動画チャンネル]&lt;br /&gt;
&lt;br /&gt;
[[各地の勉強会]]&lt;br /&gt;
&lt;br /&gt;
[[勝手にブックレビュー]]&lt;br /&gt;
&lt;br /&gt;
[[オープンCAE名言集]]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=867</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=867"/>
		<updated>2025-01-26T01:58:12Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* ベンチマーク */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;オープンCAEWikiにようこそ！&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンソースCAEソフトウェアについての情報まとめています。&lt;br /&gt;
クローズドなwikiではありません。&lt;br /&gt;
ご編集されたい方はアカウントをご登録ください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なお、内容はオープンCAEに関連するものでお願いします。&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンCAE学会が管理しています。&lt;br /&gt;
オープンCAE学会については[http://www.opencae.or.jp 公式サイト]を参照してください。&lt;br /&gt;
&lt;br /&gt;
[https://www.opencae.or.jp/ オープンCAE学会公式サイト]&lt;br /&gt;
&lt;br /&gt;
オープンCAE学会リポジトリ [https://gitlab.com/OpenCAE Gitlab] [https://github.com/opencae Github]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAEの前提知識 ===&lt;br /&gt;
&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[解析用語]]&lt;br /&gt;
&lt;br /&gt;
=== CAD ===&lt;br /&gt;
[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
=== メッシャー ===&lt;br /&gt;
[[Netgen]]&lt;br /&gt;
&lt;br /&gt;
[[Gmsh]]&lt;br /&gt;
&lt;br /&gt;
=== 流体 ===&lt;br /&gt;
[[OpenFOAM]]&lt;br /&gt;
&lt;br /&gt;
[[SU2]]&lt;br /&gt;
&lt;br /&gt;
=== 構造 ===&lt;br /&gt;
[[FrontISTR]]&lt;br /&gt;
&lt;br /&gt;
[[Salome-Meca]]&lt;br /&gt;
&lt;br /&gt;
[[CalculiX]]&lt;br /&gt;
&lt;br /&gt;
[[PrePoMax]]&lt;br /&gt;
&lt;br /&gt;
[[StressRefine]]&lt;br /&gt;
&lt;br /&gt;
[[FEBio]]&lt;br /&gt;
&lt;br /&gt;
[[PlantFEM]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRadioss]]&lt;br /&gt;
&lt;br /&gt;
=== MBD(モデルベースデザイン) ===&lt;br /&gt;
[[OpenModelica]]&lt;br /&gt;
&lt;br /&gt;
=== 機構解析 ===&lt;br /&gt;
&lt;br /&gt;
[[MBDyn]]&lt;br /&gt;
&lt;br /&gt;
[[EXUDYN]]&lt;br /&gt;
&lt;br /&gt;
=== 有限要素法ライブラリ・ツールセット ===&lt;br /&gt;
&lt;br /&gt;
[[GetFEM]]&lt;br /&gt;
&lt;br /&gt;
[[DelFEM2]]&lt;br /&gt;
&lt;br /&gt;
[[sparselizard]]&lt;br /&gt;
&lt;br /&gt;
[[ivyFEM]]&lt;br /&gt;
&lt;br /&gt;
=== マルチフィジックス ===&lt;br /&gt;
[[Elmer]]&lt;br /&gt;
&lt;br /&gt;
=== 粒子法 ===&lt;br /&gt;
[[DualSPHygics]]&lt;br /&gt;
&lt;br /&gt;
[[OpenMPS]]&lt;br /&gt;
&lt;br /&gt;
=== 格子ボルツマン法 ===&lt;br /&gt;
[[Palabos]]&lt;br /&gt;
&lt;br /&gt;
[[waLBerla]]&lt;br /&gt;
&lt;br /&gt;
=== 偏微分方程式ソルバ ===&lt;br /&gt;
&lt;br /&gt;
[[FEniCSx]]&lt;br /&gt;
&lt;br /&gt;
=== 可視化 ===&lt;br /&gt;
[[Paraview]]&lt;br /&gt;
&lt;br /&gt;
[[PyVista]]&lt;br /&gt;
&lt;br /&gt;
[[Mayavi]]&lt;br /&gt;
&lt;br /&gt;
=== 最適化 ===&lt;br /&gt;
[[OpenMDAO]]&lt;br /&gt;
&lt;br /&gt;
[[OpenDA]]&lt;br /&gt;
&lt;br /&gt;
[[Dakota]]&lt;br /&gt;
&lt;br /&gt;
=== クラウド ===&lt;br /&gt;
&lt;br /&gt;
[[SimScale]]&lt;br /&gt;
&lt;br /&gt;
=== V&amp;amp;V ===&lt;br /&gt;
[https://www.opencae.or.jp/activity/committee/vandv/ V&amp;amp;V小委員会(オープンCAE学会)]&lt;br /&gt;
&lt;br /&gt;
[https://feaber.readthedocs.io/ja/latest/ FEABeR]&lt;br /&gt;
&lt;br /&gt;
[https://www.grc.nasa.gov/www/wind/valid/tutorial/overview.html Overview of CFD Verification and Validation]&lt;br /&gt;
&lt;br /&gt;
=== ベンチマーク ===&lt;br /&gt;
[https://www.cenav.org/ 計算工学ナビ]&lt;br /&gt;
&lt;br /&gt;
[https://www.en.build.aau.dk/web/cfd-benchmarks CFD benchmarks]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/luo-yining/CFDBench CFDBench]&lt;br /&gt;
&lt;br /&gt;
=== プログラミング ===&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
[[C++]]&lt;br /&gt;
&lt;br /&gt;
=== その他 ===&lt;br /&gt;
&lt;br /&gt;
[[物性データベース]]&lt;br /&gt;
&lt;br /&gt;
[[Blender]]&lt;br /&gt;
&lt;br /&gt;
[[Maxima]]&lt;br /&gt;
&lt;br /&gt;
[[REDUCE]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2017/openfoam OpenFOAM Advent Calendar 2017]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2018/opencae-ac2018 オープンCAE Advent Calendar 2018]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2019/opencae-ac2019 オープンCAE Advent Calendar 2019]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/5192 オープンCAE Advent Calendar 2020]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/6423 オープンCAE Advent Calendar 2021]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2022/opencae オープンCAE Advent Calendar 2022]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2023/opencae オープンCAE Advent Calendar 2023]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAE ===&lt;br /&gt;
[[オープンCAEの系譜]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCuffpM6BjZWZ4AEDFiQexEg オープンCAE動画チャンネル]&lt;br /&gt;
&lt;br /&gt;
[[各地の勉強会]]&lt;br /&gt;
&lt;br /&gt;
[[勝手にブックレビュー]]&lt;br /&gt;
&lt;br /&gt;
[[オープンCAE名言集]]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=866</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=866"/>
		<updated>2025-01-26T01:51:51Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* ベンチマーク */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;オープンCAEWikiにようこそ！&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンソースCAEソフトウェアについての情報まとめています。&lt;br /&gt;
クローズドなwikiではありません。&lt;br /&gt;
ご編集されたい方はアカウントをご登録ください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なお、内容はオープンCAEに関連するものでお願いします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== オープンCAEの前提知識 ===&lt;br /&gt;
&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[解析用語]]&lt;br /&gt;
&lt;br /&gt;
=== CAD ===&lt;br /&gt;
[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
=== メッシャー ===&lt;br /&gt;
[[Netgen]]&lt;br /&gt;
&lt;br /&gt;
[[Gmsh]]&lt;br /&gt;
&lt;br /&gt;
=== 流体 ===&lt;br /&gt;
[[OpenFOAM]]&lt;br /&gt;
&lt;br /&gt;
[[SU2]]&lt;br /&gt;
&lt;br /&gt;
=== 構造 ===&lt;br /&gt;
[[FrontISTR]]&lt;br /&gt;
&lt;br /&gt;
[[Salome-Meca]]&lt;br /&gt;
&lt;br /&gt;
[[CalculiX]]&lt;br /&gt;
&lt;br /&gt;
[[PrePoMax]]&lt;br /&gt;
&lt;br /&gt;
[[StressRefine]]&lt;br /&gt;
&lt;br /&gt;
[[FEBio]]&lt;br /&gt;
&lt;br /&gt;
[[PlantFEM]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRadioss]]&lt;br /&gt;
&lt;br /&gt;
=== MBD(モデルベースデザイン) ===&lt;br /&gt;
[[OpenModelica]]&lt;br /&gt;
&lt;br /&gt;
=== 機構解析 ===&lt;br /&gt;
&lt;br /&gt;
[[MBDyn]]&lt;br /&gt;
&lt;br /&gt;
[[EXUDYN]]&lt;br /&gt;
&lt;br /&gt;
=== 有限要素法ライブラリ・ツールセット ===&lt;br /&gt;
&lt;br /&gt;
[[GetFEM]]&lt;br /&gt;
&lt;br /&gt;
[[DelFEM2]]&lt;br /&gt;
&lt;br /&gt;
[[sparselizard]]&lt;br /&gt;
&lt;br /&gt;
[[ivyFEM]]&lt;br /&gt;
&lt;br /&gt;
=== マルチフィジックス ===&lt;br /&gt;
[[Elmer]]&lt;br /&gt;
&lt;br /&gt;
=== 粒子法 ===&lt;br /&gt;
[[DualSPHygics]]&lt;br /&gt;
&lt;br /&gt;
[[OpenMPS]]&lt;br /&gt;
&lt;br /&gt;
=== 格子ボルツマン法 ===&lt;br /&gt;
[[Palabos]]&lt;br /&gt;
&lt;br /&gt;
[[waLBerla]]&lt;br /&gt;
&lt;br /&gt;
=== 偏微分方程式ソルバ ===&lt;br /&gt;
&lt;br /&gt;
[[FEniCSx]]&lt;br /&gt;
&lt;br /&gt;
=== 可視化 ===&lt;br /&gt;
[[Paraview]]&lt;br /&gt;
&lt;br /&gt;
[[PyVista]]&lt;br /&gt;
&lt;br /&gt;
[[Mayavi]]&lt;br /&gt;
&lt;br /&gt;
=== 最適化 ===&lt;br /&gt;
[[OpenMDAO]]&lt;br /&gt;
&lt;br /&gt;
[[OpenDA]]&lt;br /&gt;
&lt;br /&gt;
[[Dakota]]&lt;br /&gt;
&lt;br /&gt;
=== クラウド ===&lt;br /&gt;
&lt;br /&gt;
[[SimScale]]&lt;br /&gt;
&lt;br /&gt;
=== ベンチマーク ===&lt;br /&gt;
[https://www.cenav.org/ 計算工学ナビ]&lt;br /&gt;
&lt;br /&gt;
[https://www.en.build.aau.dk/web/cfd-benchmarks CFD benchmarks]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/luo-yining/CFDBench CFDBench]&lt;br /&gt;
&lt;br /&gt;
=== V&amp;amp;V ===&lt;br /&gt;
[https://feaber.readthedocs.io/ja/latest/ FEABeR]&lt;br /&gt;
&lt;br /&gt;
[https://www.grc.nasa.gov/www/wind/valid/tutorial/overview.html Overview of CFD Verification and Validation]&lt;br /&gt;
&lt;br /&gt;
=== プログラミング ===&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
[[C++]]&lt;br /&gt;
&lt;br /&gt;
=== その他 ===&lt;br /&gt;
&lt;br /&gt;
[[物性データベース]]&lt;br /&gt;
&lt;br /&gt;
[[Blender]]&lt;br /&gt;
&lt;br /&gt;
[[Maxima]]&lt;br /&gt;
&lt;br /&gt;
[[REDUCE]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2023/opencae オープンCAE Advent Calendar 2023]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2022/opencae オープンCAE Advent Calendar 2022]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/6423 オープンCAE Advent Calendar 2021]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/5192 オープンCAE Advent Calendar 2020]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2019/opencae-ac2019 オープンCAE Advent Calendar 2019]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2018/opencae-ac2018 オープンCAE Advent Calendar 2018]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2017/openfoam OpenFOAM Advent Calendar 2017]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAE ===&lt;br /&gt;
[[オープンCAEの系譜]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCuffpM6BjZWZ4AEDFiQexEg オープンCAE動画チャンネル]&lt;br /&gt;
&lt;br /&gt;
[[各地の勉強会]]&lt;br /&gt;
&lt;br /&gt;
[[勝手にブックレビュー]]&lt;br /&gt;
&lt;br /&gt;
[[オープンCAE名言集]]&lt;br /&gt;
&lt;br /&gt;
=== Wikiについて ===&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンCAE学会が管理しています。&lt;br /&gt;
オープンCAE学会については[http://www.opencae.or.jp 公式サイト]を参照してください。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2412_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=865</id>
		<title>OpenFOAM v2412 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2412_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=865"/>
		<updated>2024-12-28T04:04:09Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: All words covert to japanese&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ESI OpenCFD Release OpenFOAM® v2412 ==&lt;br /&gt;
OpenCFDは、OpenFOAM® v2412の2024年12月リリースを発表いたします。 このリリースは、コードの多くの領域にわたってOpenFOAM-v2406の機能を拡張しています。 この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。 様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージもあります。&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux: Ubuntu 用パッケージインストール (近日公開予定) &lt;br /&gt;
*openSUSE Linux: パッケージインストール (近日公開予定) &lt;br /&gt;
*Redhat Linux variants: パッケージインストール (近日公開予定) &lt;br /&gt;
*apptainer イメージ: dockerhub から入手可能 (近日公開予定)&lt;br /&gt;
&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢がある（詳細）：&lt;br /&gt;
&lt;br /&gt;
* Linux用Windowsサブシステムの使用（Ubuntu、openSUSEなどがベース）&lt;br /&gt;
* クロスコンパイルによるネイティブ実行可能ファイル&lt;br /&gt;
* ドッカーのインストール&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのapptainerサポートは、事前に組み立てられたイメージではなく、記述ファイルによって提供されます：&lt;br /&gt;
&lt;br /&gt;
* パッケージ/コンテナを確認する&lt;br /&gt;
&lt;br /&gt;
Mac OSXユーザーには、ソースからコンパイルするか、コンパイル済みパッケージのDockerコンテナを使用するオプションがある（詳細はこちら）。&lt;br /&gt;
&lt;br /&gt;
== アップグレード ==&lt;br /&gt;
&lt;br /&gt;
* ユーザー向けのヘルプは、ユーザー・アップグレード・ガイドに記載されています。&lt;br /&gt;
* 開発者向けのヘルプは、開発者向けアップグレードガイドに記載されています。&lt;br /&gt;
&lt;br /&gt;
== 前処理 ==&lt;br /&gt;
&lt;br /&gt;
=== createPatchユーティリティの改良 ===&lt;br /&gt;
createPatchユーティリティが拡張され、例えばcyclicACMIの作成時に重複した境界面を作成できるようになりました。 これは、外部生成メッシュ間のcyclicACMI接続を作成するために使用できます。&lt;br /&gt;
&lt;br /&gt;
system/createPatchDictのサンプル：&lt;br /&gt;
 &amp;lt;code&amp;gt;// Patches to create.&lt;br /&gt;
 patches&lt;br /&gt;
 (&lt;br /&gt;
     {&lt;br /&gt;
         //- Master side patch&lt;br /&gt;
         name            central_inlet_couple;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            cyclicACMI;&lt;br /&gt;
             nonOverlapPatch central_inlet_blockage;&lt;br /&gt;
             neighbourPatch  inlet_central_couple;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (central_inlet);&lt;br /&gt;
     }&lt;br /&gt;
     {&lt;br /&gt;
         //- Blockage&lt;br /&gt;
         name            central_inlet_blockage;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            wall;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (central_inlet);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     {&lt;br /&gt;
         //- Slave side patch&lt;br /&gt;
         name            inlet_central_couple;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            cyclicACMI;&lt;br /&gt;
             nonOverlapPatch inlet_central_blockage;&lt;br /&gt;
             neighbourPatch  central_inlet_couple;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (inlet_couple);&lt;br /&gt;
     }&lt;br /&gt;
     {&lt;br /&gt;
         //- Blockage&lt;br /&gt;
         name            inlet_central_blockage;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            wall;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (inlet_couple);&lt;br /&gt;
     }&lt;br /&gt;
 );&amp;lt;/code&amp;gt;&lt;br /&gt;
注意：createPatchを実行する前に、作成するcyclicACMIパッチが存在してはならない。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/createPatch/TJunctionSwitching_createPatch&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/utilities/mesh/manipulation/createPatch&lt;br /&gt;
* $FOAM_SRC/utilities/mesh/manipulation/mergeMeshes&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #702&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMeshの改良：スナップの前にレイヤーをバッファリングする。 ===&lt;br /&gt;
スナップ前にメッシュにバッファレイヤーを追加できるようになり、スナップアルゴリズムをユーザーが選択できるようになりました。&lt;br /&gt;
&lt;br /&gt;
snappyHexMeshDictの新しいトップレベル・エントリーを使用して、バッファー・レイヤーの追加とメッシュ・モーション機能の使用を選択できるようになりました：&lt;br /&gt;
 &amp;lt;code&amp;gt;// Type of mesh generation:&lt;br /&gt;
 //  - castellated (default)&lt;br /&gt;
 //  - castellatedBufferLayer&lt;br /&gt;
 type            castellatedBufferLayer;&amp;lt;/code&amp;gt;&lt;br /&gt;
バッファ層の追加はすべてのメッシュ化されたパッチに適用されます。オプションで、addBufferLayersキーワードを使用してサーフェスごとにオーバーライドできます：&lt;br /&gt;
 &amp;lt;code&amp;gt;refinementSurfaces&lt;br /&gt;
 {&lt;br /&gt;
     sphere&lt;br /&gt;
     {&lt;br /&gt;
         // Surface-wise min and max refinement level&lt;br /&gt;
         level (1 1);&lt;br /&gt;
         // Disable buffer layers&lt;br /&gt;
         addBufferLayers false;&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
スナップ時に使用するメッシュ・モーション・ソルバの選択：&lt;br /&gt;
 &amp;lt;code&amp;gt;snapControls&lt;br /&gt;
 {&lt;br /&gt;
   ..&lt;br /&gt;
   solver  displacementPointSmoothing;&lt;br /&gt;
   displacementPointSmoothingCoeffs&lt;br /&gt;
   {&lt;br /&gt;
       // Use laplacian to untangle problem areas&lt;br /&gt;
       pointSmoother           laplacian;&lt;br /&gt;
       nPointSmootherIter      10;&lt;br /&gt;
   }&amp;lt;/code&amp;gt;&lt;br /&gt;
下の画像は、回転したボックスの外側に追加されたバッファー・セルの単層で、セルはセル・インデックスに従って色分けされている：&lt;br /&gt;
&lt;br /&gt;
2つ目の例は、バッファレイヤーを追加することで、内側と外側の両方の領域を維持しながら、フェイスゾーンにスナップするのに役立つことを示しています。 ここでは、セルは非直交性に従って色付けされている：&lt;br /&gt;
&lt;br /&gt;
バッファレイヤーは（まだ）フィーチャーのエッジを考慮していないことに注意してください。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/rotated_block Meshing the outside of a rotated cube.&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_multiRegion Meshing the inside and outside of a sphere.&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/utilities/mesh/generation/snappyHexMesh&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #715&lt;br /&gt;
&lt;br /&gt;
== 境界条件 ==&lt;br /&gt;
&lt;br /&gt;
=== pointMeshの境界処理の改善 ===&lt;br /&gt;
pointMeshはパッチのリスト（オプション）を持つようになった。 通常の動作は、pointMeshはボリュームの'poly'メッシュと同じパッチのセットを使い、'poly'パッチのポイントで操作します。&lt;br /&gt;
&lt;br /&gt;
ポイントパッチ条件をpolyMesh/pointMesh/boundaryファイルで指定できるようになり、フィーチャーのエッジ、ポイント、内部ポイントにも制約を適用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
チュートリアルのmesh/blockMesh/sphere7は、これを使用して球状のブロックメッシュを立方体に戻す方法を示しています。 &lt;br /&gt;
&lt;br /&gt;
このチュートリアルでは、プラグインのポイントスムーサーを使う、新しいdisplacementPointSmoothingモーションソルバーの使用例も紹介します：&lt;br /&gt;
&lt;br /&gt;
* laplacian : 近隣点の平均位置&lt;br /&gt;
* geometricElementTransform : 最も直交する形状に移動する。&lt;br /&gt;
&lt;br /&gt;
注&lt;br /&gt;
&lt;br /&gt;
* 点の移動中に点法線が更新されない&lt;br /&gt;
* ポイントモーションでは、周期的なパッチは現在正しく処理されていません。&lt;br /&gt;
* これらの追加pointPatchは以下によってサポートされる：&lt;br /&gt;
** moveDynamicMesh, subsetMesh&lt;br /&gt;
** decomposePar, reconstructPar, redistributePar&lt;br /&gt;
** some mesh motion solvers&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/blockMesh/pipe&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/blockMesh/sphere7&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/moveDynamicMesh/badMove&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/moveDynamicMesh/bendJunction&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/moveDynamicMesh/faceZoneBlock&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #715&lt;br /&gt;
&lt;br /&gt;
=== 新しいポイントパッチ機能 ===&lt;br /&gt;
&lt;br /&gt;
* topoSet に patchToPoint が追加されました : pointPatch のすべての点を選択します (patchToFace と faceToPoint を使って polyPatch の点を取得します)。&lt;br /&gt;
* 新しい点境界条件：edgeSlipとpointAttraction（新しいpointMesh境界条件のチュートリアルで使用されます。）&lt;br /&gt;
* symmetryPolyPatch : 平均方位を計算する際に、ゼロサイズの面を無視する。 これは、後の押し出しのために厚さゼロのレイヤーを追加できるようにするための便利な機能です。&lt;br /&gt;
&lt;br /&gt;
== 数値 ==&lt;br /&gt;
&lt;br /&gt;
=== 新しい融合離散化 ===&lt;br /&gt;
新しい融合離散化手法は、中間補間ステップを回避し、面ベースの積分と融合する。 機能は通常の離散化と同等です：&lt;br /&gt;
&lt;br /&gt;
* gradSchemes : fusedGauss&lt;br /&gt;
* divSchemes : fusedGauss&lt;br /&gt;
* laplacianSchemes : fusedGauss, fusedLeastSquares&lt;br /&gt;
&lt;br /&gt;
これらの方式はメモリ操作を回避するため、パッチ数が多い場合や、GPUがCPUのデータにアクセスするなど、メモリアクセスが遅いノードに有利である。 logs-gauss'がデフォルトの動作、'logs-fused'がドロップイン置換融合スキームを示しています：&lt;br /&gt;
&lt;br /&gt;
これは予備的な作業であり、明示的な操作しか考慮していないこと、また操作の順序が異なるために切り捨て誤差が異なることに注意されたい。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/ncompressible/simpleFoam/pitzDaily_fused&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/src/fusedDiscretisation&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* MR!712&lt;br /&gt;
&lt;br /&gt;
=== 新しいGAMGアグロメレーション・キャッシング ===&lt;br /&gt;
メッシュを動かすケースでは、時間ステップごとに（あるいは圧力補正ごとに）自動的に凝集を再構築します。 しかし、ほとんどのメッシュモーションのケースでは、GAMGアグロメレーションテーブルは、再作成が必要になる前に、いくつかの反復のために保持することができます。 ソリッドボディモーションの場合、凝集ロジックは行列係数にのみ依存するため、テーブルを更新する必要はありません。 キャッシュは新しい updateInterval エントリで有効になります。 これは、ソリッドボディシミュレーションでは非常に大きな数値になります。一般的なメッシュモーションでは、予想されるメッシュクーラント数に基づいて設定する必要があります。&lt;br /&gt;
 &amp;lt;code&amp;gt;p&lt;br /&gt;
 {&lt;br /&gt;
     solver              GAMG;&lt;br /&gt;
     ..&lt;br /&gt;
     cacheAgglomeration  yes;&lt;br /&gt;
     updateInterval      100000;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
凝集に関する詳細なフィードバックを得るには、system/controlDictのデバッグ・スイッチを有効にしてください。&lt;br /&gt;
 &amp;lt;code&amp;gt;DebugSwitches&lt;br /&gt;
 {&lt;br /&gt;
     // Print agglomeration&lt;br /&gt;
     GAMGAgglomeration   1;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
faceAreaWeightの最適化&lt;br /&gt;
&lt;br /&gt;
デフォルトの凝集法は、セルを結ぶ面重みの大きさに基づく「セル」の一対一の組み合わせを採用している。 現在、これは軸合わせされたメッシュ上の凝集境界のジッターを避けるために摂動された面面積ベクトルから派生した面重みを使用しています。&lt;br /&gt;
&lt;br /&gt;
updateIntervalが1でない場合は、ガウシアンタイプの離散化との整合性を高めるために、スケーリングされていない、摂動されていない顔の面積の大きさを用いて重みが計算される。 例えば、simpleFoamを10回繰り返したincompressible/pisoFoam/SLES/motorBikeのチュートリアルでは、平均約10％のサイクル削減を示しました：&lt;br /&gt;
&lt;br /&gt;
代数的凝集はupdateIntervalで実行できることに注意。&lt;br /&gt;
&lt;br /&gt;
* それはcyclicA(C)MIを更新せず、粗いレベルでは古いステンシルを使用するため、補間に失敗する。&lt;br /&gt;
* それは、シミュレーション中に変化する行列係数に基づいているため、固体の運動中であっても一定ではない。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fvMatrices/solvers/GAMGSymSolver/GAMGAgglomerations/faceAreaPairGAMGAgglomeration&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #707&lt;br /&gt;
&lt;br /&gt;
=== lduMatrix, lduAddressingの改善 ===&lt;br /&gt;
スカラー行列クラス lduMatrix が拡張され、セルベースのアルゴリズムがより使いやすくなりました。 アドレス指定 lduAddressing には、下位アドレス指定を返す lowerCSRAddr アクセサが追加され、loSortAddressing を使った追加的なインダイレクトを避けることができます：&lt;br /&gt;
 &amp;lt;code&amp;gt;const labelUList&amp;amp; lduAddressing::lowerCSRAddr() const&amp;lt;/code&amp;gt;&lt;br /&gt;
これは、lowerAddr()アドレッシングからオンザフライで構築される。&lt;br /&gt;
&lt;br /&gt;
さらに、この行列には、対応する lower() 係数の並べ替えを返す lowerCSR() アクセサが追加された：&lt;br /&gt;
 &amp;lt;code&amp;gt;const scalarField&amp;amp; lduMatrix::lowerCSR() const&amp;lt;/code&amp;gt;&lt;br /&gt;
アドレス指定が可能かどうかは、hasLowerCSR()関数で確認できる。&lt;br /&gt;
&lt;br /&gt;
使用例は lduMatrix::Amul ルーチンの中にあります：&lt;br /&gt;
 &amp;lt;code&amp;gt;if (hasLowerCSR())&lt;br /&gt;
 {&lt;br /&gt;
     // Note: lowerCSR constructed from lower if available, upper otherwise&lt;br /&gt;
     //       so is handling symmetric()&lt;br /&gt;
     const scalar* const __restrict__ lowercsrPtr = lowerCSR().begin();&lt;br /&gt;
 &lt;br /&gt;
     for (label cell=0; cell&amp;lt;nCells; cell++)&lt;br /&gt;
     {&lt;br /&gt;
         scalar&amp;amp; val = ApsiPtr[cell];&lt;br /&gt;
 &lt;br /&gt;
         val = diagPtr[cell]*psiPtr[cell];&lt;br /&gt;
 &lt;br /&gt;
         // Add lower contributions&lt;br /&gt;
         {&lt;br /&gt;
             const label start = loStartPtr[cell];&lt;br /&gt;
             const label end = loStartPtr[cell+1];&lt;br /&gt;
 &lt;br /&gt;
             for (label i = start; i &amp;lt; end; i++)&lt;br /&gt;
             {&lt;br /&gt;
                 const label nbrCell = lcsrPtr[i];&lt;br /&gt;
                 val += lowercsrPtr[i]*psiPtr[nbrCell];&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         // Add upper contributions&lt;br /&gt;
         {&lt;br /&gt;
             const label start = oStartPtr[cell];&lt;br /&gt;
             const label end = oStartPtr[cell+1];&lt;br /&gt;
 &lt;br /&gt;
             for (label i = start; i &amp;lt; end; i++)&lt;br /&gt;
             {&lt;br /&gt;
                 const label nbrCell = uPtr[i];&lt;br /&gt;
                 val += upperPtr[i]*psiPtr[nbrCell];&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduAddressing/lduAddressing.H&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C&lt;br /&gt;
&lt;br /&gt;
=== 壁との距離の改善 ===&lt;br /&gt;
乱流壁関数などで使用されている壁面近傍距離フィールドが壁面に対して更新され、複数の壁面パッチに面を持つセルの挙動が変更されました。 最近接距離は、セル中心から局所的な壁面、または任意の局所的なエッジまたは点に接続された面までの最小距離として計算されます。 &lt;br /&gt;
&lt;br /&gt;
* これは並列一貫性がない&lt;br /&gt;
* これは一面しか見ない&lt;br /&gt;
&lt;br /&gt;
より一貫した挙動を得るためには、正確な壁面距離法を採用すべきである。&lt;br /&gt;
&lt;br /&gt;
以前の動作（OpenFOAM v2406 以前）は、etc/controlDict またはローカルの system/controlDict の useCombinedWallPatch 情報スイッチを無効にすることで得られます：&lt;br /&gt;
 &amp;lt;code&amp;gt;OptimisationSwitches&lt;br /&gt;
 {&lt;br /&gt;
     useCombinedWallPatch    0;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/cellDist/cellDistFuncs.C&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fvMesh/wallDist/nearWallDist/nearWallDist.C&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.C&lt;br /&gt;
* $FOAM_SRC/meshTools/cellDist/patchWave/patchDataWave.C&lt;br /&gt;
* $FOAM_SRC/meshTools/cellDist/patchWave/patchWave.C&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #700&lt;br /&gt;
&lt;br /&gt;
問題&lt;br /&gt;
&lt;br /&gt;
* Issue #3215&lt;br /&gt;
&lt;br /&gt;
=== 地域貢献： アドジョイント最適化の改善 ===&lt;br /&gt;
OpenFOAM v2412では、アジョイント・ライブラリにいくつかの機能変更が加えられました。 トポロジー最適化の設計変数の初期値を0/alphaフィールドから読み込めるようになり、topoSet/setFieldsユーティリティで簡単に設定できるようになりました。 以前は、0/uniform/topOVarsを通してのみ可能でしたが、これは操作が難しくなっています。&lt;br /&gt;
&lt;br /&gt;
ISQPの数学的最適化問題に追加され、実現可能性を保証するためにMMAに追加された項の乗数（'c'と命名）は、関数1で与えられるようになり、最適化ループ全体で操作できるようになりました。 典型的な例としては、実現可能性よりも最適性を重視するために、最初の数サイクルの最適化では小さな値に設定し、徐々に大きくしていきます。&lt;br /&gt;
&lt;br /&gt;
ISQPで近似ヘシアンの減衰を無効にするオプションを追加。 一般的なケースでは、これは避けるべきですが、いくつかのフリンジケースではアルゴリズムを加速させることができます。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_10x-init&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/optimisation/adjointOptimisation&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #710&lt;br /&gt;
&lt;br /&gt;
=== 新ゾーンブレンド・スキーム ===&lt;br /&gt;
新しいzoneBlendedスキームにより、ユーザーはフェイスゾーンごとに差分スキームを適用できる。 スキームは辞書形式で設定される：&lt;br /&gt;
 &amp;lt;code&amp;gt;divSchemes&lt;br /&gt;
 {&lt;br /&gt;
     .&lt;br /&gt;
     .&lt;br /&gt;
     div(phi,U)      Gauss zoneBlended&lt;br /&gt;
     {&lt;br /&gt;
         default         defaultScheme;&lt;br /&gt;
         faceZone1       scheme1;&lt;br /&gt;
         faceZone2       scheme2;&lt;br /&gt;
         ...&lt;br /&gt;
         faceZoneN       schemeN;&lt;br /&gt;
     }&lt;br /&gt;
     .&lt;br /&gt;
     .&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
デフォルトのエントリーは背景スキームを指定します。追加のスキームをフェイスゾーンごとに設定できます。例えば、スキーム1はフェイスゾーン1に適用され、スキーム2はフェイスゾーン2に適用されます。&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/interpolation/surfaceInterpolation/schemes/zoneBlended&lt;br /&gt;
&lt;br /&gt;
== ソルバーと物理モデル ==&lt;br /&gt;
&lt;br /&gt;
=== 地域貢献： SA-DDES乱流モデルの遮蔽機能の改善 ===&lt;br /&gt;
DDES（Delayed Detached-Eddy Simulation）モデル[1]は、RANS/LESのハイブリッドアプローチであり、RANSによってすべての付着境界層をモデル化し、LESによって大きく分離した流れ領域をモデル化することを目的としています。 付着境界層内部でのLESモードの起動を防止するために、「遮蔽」機能と呼ばれる追加的なセーフガード機能が実装されています。 残念ながら，標準的な定式化[1]は，細かい格子上で崩壊することがあり，壁せん断応力の低下や，流れの早期剥離につながる可能性がある． これらの現象は、文献ではしばしば &amp;quot;モデル化された応力の枯渇 &amp;quot;や &amp;quot;グリッド誘起剥離 &amp;quot;と呼ばれています。 Deck &amp;amp; Renard [2]は最近、よりロバストな挙動を提供しながら、分離したせん断層でのLESへの迅速な切り替えを可能にする、改良された遮蔽関数を提案しました。 この定式化は、SA-DDESモデルの変形であるZDESモード2（2020）乱流モデル用に開発されました。 図は，後縁が分離した NACA4412 翼周りの流れに対 して，改良された遮蔽機能の利点を示しています． 吸込側のグリッドが流れ方向とスパン方向で強くリファインされているため，標準の遮蔽機能が後退し，流れの剥離が早期に発生している． 一方，改良された遮蔽関数は，吸込側の付着境界層領域全体で RANS モードを保持し，NASA コード CFL3D の参照 RANS とよく一致する．&lt;br /&gt;
&lt;br /&gt;
以下の乱流モデリング機能がv2412リリースに含まれています：&lt;br /&gt;
&lt;br /&gt;
* Improved shielding function formulation of Deck &amp;amp; Renard [2], implemented for SpalartAllmarasDDES, activated via the new option “shielding” (keyword “standard” selects the standard function [1], “ZDES2020” selects the improved formulation [2]).&lt;br /&gt;
* An additional option “usefP2” activates a more robust shielding mode for the Deck &amp;amp; Renard formulation (detailed in equation A.9 of [2]).&lt;br /&gt;
&lt;br /&gt;
使用例&lt;br /&gt;
 &amp;lt;code&amp;gt;simulationType LES;&lt;br /&gt;
 LES&lt;br /&gt;
 {&lt;br /&gt;
     LESModel         SpalartAllmarasDDES;&lt;br /&gt;
     SpalartAllmarasDDESCoeffs&lt;br /&gt;
     {&lt;br /&gt;
         // optional keywords for shielding function&lt;br /&gt;
         shielding    ZDES2020;    // default: standard&lt;br /&gt;
         usefP2       false;       // default: false&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     delta            maxDeltaxyz;&lt;br /&gt;
 &lt;br /&gt;
     turbulence       on;&lt;br /&gt;
     printCoeffs      on;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
2]で示された定式化はSAベースのDDESに特化して導き出されたものであるため、改善された遮蔽関数はkOmegaSSTDDESモデルには実装されていないことに注意してください。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/LES/NACA4412&lt;br /&gt;
&lt;br /&gt;
帰属&lt;br /&gt;
&lt;br /&gt;
* The improved shielding function of Deck &amp;amp; Renard (2020) [2] was implemented by Upstream CFD GmbH and integrated into OpenFOAM in collaboration with ESI-UK Ltd with funding by Volkswagen AG.&lt;br /&gt;
&lt;br /&gt;
参考文献&lt;br /&gt;
&lt;br /&gt;
* [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.&lt;br /&gt;
* [2] Deck, S., &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
=== 改良されたラグランジュ射出モデル：コーンノズル・インジェクション（coneNozzleInjection ===&lt;br /&gt;
このリリースでは、coneNozzleInjectionモデルに2つのマイナーな改良が加えられました：&lt;br /&gt;
&lt;br /&gt;
* 粒子をディスク全体に角度間隔で均一に分布させる新しい射出方法；&lt;br /&gt;
* 粒子噴射にインジェクターの推定速度を含める。 静的インジェクタの入出力動作に変更はありませんが、移動インジェクタから噴射される粒子の速度にインジェクタの速度が含まれるようになりました。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&lt;br /&gt;
 &amp;lt;code&amp;gt;injectionModels&lt;br /&gt;
 {&lt;br /&gt;
     model1&lt;br /&gt;
     {&lt;br /&gt;
         type    coneNozzleInjection;&lt;br /&gt;
 &lt;br /&gt;
         ...&lt;br /&gt;
 &lt;br /&gt;
         // The new injection method: discSegments&lt;br /&gt;
         injectionMethod         discSegments;&lt;br /&gt;
         nInjectors              10;&lt;br /&gt;
         initialInjectorDir      (1 0 0);&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #719&lt;br /&gt;
&lt;br /&gt;
=== 改良されたソリッドボディモーション機能：tabulated6DoFMotion ===&lt;br /&gt;
表6DoFMotionモデルに線形補間オプションが追加されました。 最小限の使用例を以下に示します：&lt;br /&gt;
 &amp;lt;code&amp;gt;solidBodyMotionFunction tabulated6DoFMotion;&lt;br /&gt;
 &lt;br /&gt;
 interpolationScheme     linear;  // spline;&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.H&lt;br /&gt;
&lt;br /&gt;
=== 新しい有限領域のフレームワーク： 膜分離モデル ===&lt;br /&gt;
有限面積ベースのフィルム曲率分離モデルが更新され、シャープエッジ用の新しいフィルム分離モデルが追加された。 これらの更新により、さまざまな幾何学的条件や流動条件下での膜分離予測の精度と柔軟性が向上しました。&lt;br /&gt;
&lt;br /&gt;
主な変更点と追加点&lt;br /&gt;
&lt;br /&gt;
* オーウェン-ライリーモデル：&lt;br /&gt;
** 既存のcurvatureSeparationモデルは、Owen &amp;amp; Ryley (1983)の研究に基づき、OwenRyleyModelとして再実装された。 このモデルは次のように仮定しています：&lt;br /&gt;
*** フィルムが表面から剥がれると、すぐに細かい霧状の液滴になる。 その結果、液体が凝集塊として離脱するシナリオを正確に表現できない可能性がある。&lt;br /&gt;
*** フィルムは一定の半径を持つ丸みを帯びたコーナーの周囲を流れるため、曲率が明確でない鋭角のコーナーでは適用が制限される可能性がある。&lt;br /&gt;
*** 膜厚は1e-4 mより薄く、粘性効果と表面擾乱は無視される。&lt;br /&gt;
*** 均一な膜速度と膜厚。&lt;br /&gt;
*** 分離基準は明示的に定式化されるのではなく、モデルの仮定に基づいて推測される。&lt;br /&gt;
* シャープエッジのための新しいフィルム分離モデル：&lt;br /&gt;
** 新しいモデルFriedrichModelを導入し、シャープエッジでの膜分離特性を計算し、完全膜分離と部分膜分離の両方のシナリオをカバーする。 このモデルは、Friedrichら（2008）とZhangら（2018）の研究に基づいている：&lt;br /&gt;
*** Friedrichら（2008）：&lt;br /&gt;
**** 剥離点における制御体積内の力の平衡に根ざした剥離基準を開発。&lt;br /&gt;
**** 最大膜厚を1e-4 mと仮定。&lt;br /&gt;
**** 表面張力、重力、フィルムの慣性を考慮する。&lt;br /&gt;
**** 早期破裂を予測することはできるが、比較的信頼できることが知られている。&lt;br /&gt;
**** ANSYS Forte 18.2 に実装されている分離メソッドとして機能します。&lt;br /&gt;
*** Zhangら（2018）：&lt;br /&gt;
**** 質量分率基準を導入することで、Friedrichらのモデルを強化した。 細胞内の膜全体が同時に剥離すると仮定するモデルとは異なり、Zhangらのアプローチは、これらの基準に基づいて膜の一部のみを剥離する。 これにより、フィルムが実際にどの程度剥離するかについて、より現実的な予測が可能になった。&lt;br /&gt;
&lt;br /&gt;
包括的な直列および並列テストケースは、ロバストなコーナーおよび分離同定を確実にするために実施され、流れ方向に対して様々な形状や向きの鋭角エッジを持つケース、複数の空間分解能および並列化構成を含む。&lt;br /&gt;
&lt;br /&gt;
その結果、ユーザーは、メッシュの複雑さや計算設定に関係なく、膜分離現象をシミュレーションする際の一貫性と信頼性の向上を期待することができます。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&lt;br /&gt;
 &amp;lt;code&amp;gt;injectionModels&lt;br /&gt;
 {&lt;br /&gt;
     filmSeparation&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 filmSeparationCoeffs&lt;br /&gt;
 {&lt;br /&gt;
     model              OwenRyley;&lt;br /&gt;
     definedPatchRadii  0;&lt;br /&gt;
     minInvR1           0;&lt;br /&gt;
     deltaByR1Min       0;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/regionFaModels/liquidFilm/subModels/kinematic/injectionModel/filmSeparation/filmSeparationModels&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/pitzDailyWithSprinklers&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #714&lt;br /&gt;
&lt;br /&gt;
=== simpleFoamの改良：新しいdynamicMeshのサポート ===&lt;br /&gt;
simpleFoamはpimpleFoamと同様にdynamicFvMeshをサポートするようになりました。 constant/dynamicMeshDictがあればそれを読み込み、繰り返しごとにupdate()ルーチンを呼び出します。 これにより、例えば、動的なメッシュのリファインメント/アンリファインメントを用いた定常シミュレーションが可能になります。&lt;br /&gt;
&lt;br /&gt;
==== 詳細情報 ====&lt;br /&gt;
&lt;br /&gt;
* Issue #3269&lt;br /&gt;
&lt;br /&gt;
== 後処理 ==&lt;br /&gt;
&lt;br /&gt;
=== 新しいレポート作成 ===&lt;br /&gt;
foamReport関数オブジェクトは、OpenFOAMの実行データを収集するためのテンプレートベースのテキスト置換システムを提供します。 ユーザーが提供するテンプレートファイルは、マークダウン(.md)、ウェブ(.html)、ラテックス(.tex)などのプレーンテキストファイルの形式をとることができます。 ダブルハンドル構文{{ENTRY}}を使用して提供された項目は置換されます（大文字と小文字は区別されません）。 OF_で始まる一般的な組み込みエントリのセットが提供されます。&lt;br /&gt;
&lt;br /&gt;
* OF_HOST: ホストマシン名&lt;br /&gt;
* OF_CASE_NAME: ケース名&lt;br /&gt;
* OF_API: OpenFOAM APIレベル&lt;br /&gt;
* OF_DATE_START: ジョブ開始日&lt;br /&gt;
* OF_CASE_PATH: ケースへのファイルパス&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
組み込みキーとユーザー提供キーの完全なセットは、debugKeysエントリーを使用して書き込むことができる。 ユーザー定義の置換は辞書形式でリストされ、置換モデルには以下が含まれる：&lt;br /&gt;
&lt;br /&gt;
* fileRegEx : ファイルからの正規表現&lt;br /&gt;
* functionObjectValue : 関数オブジェクトの結果を取り出す&lt;br /&gt;
* dictionaryValue : 辞書からの値 - ファイルベースまたはレジストリ検索から&lt;br /&gt;
* environmentVariable : キーワードを環境変数に置き換える&lt;br /&gt;
* userValue : キーワードをユーザが指定した文字列に置き換える：&lt;br /&gt;
&lt;br /&gt;
マークダウン・テンプレートに基づく使用例：&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;code&amp;gt;foamReport1&lt;br /&gt;
 {&lt;br /&gt;
     // Mandatory entries (unmodifiable)&lt;br /&gt;
     type            foamReport;&lt;br /&gt;
     libs            (utilityFunctionObjects);&lt;br /&gt;
 &lt;br /&gt;
     template        &amp;quot;/myReportTemplate.md&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     substitutions&lt;br /&gt;
     {&lt;br /&gt;
         divSchemes1&lt;br /&gt;
         {&lt;br /&gt;
             type        dictionaryValue;&lt;br /&gt;
             object      fvSchemes;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 divSchemes      &amp;quot;divSchemes&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         fvSolution1&lt;br /&gt;
         {&lt;br /&gt;
             type        dictionaryValue;&lt;br /&gt;
             path        &amp;quot;/fvSolution&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 solver_p        &amp;quot;solvers/p/solver&amp;quot;;&lt;br /&gt;
                 solver_p_tol    &amp;quot;solvers/p/tolerance&amp;quot;;&lt;br /&gt;
                 solver_p_reltol &amp;quot;solvers/p/relTol&amp;quot;;&lt;br /&gt;
                 solver_U        &amp;quot;solvers/U/solver&amp;quot;;&lt;br /&gt;
                 solver_U_tol    &amp;quot;solvers/U/tolerance&amp;quot;;&lt;br /&gt;
                 solver_U_reltol &amp;quot;solvers/U/relTol&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         controlDict1&lt;br /&gt;
         {&lt;br /&gt;
             type        dictionaryValue;&lt;br /&gt;
             path        &amp;quot;/controlDict&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 initial_deltaT       &amp;quot;deltaT&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         continuityErrors&lt;br /&gt;
         {&lt;br /&gt;
             type        functionObjectValue;&lt;br /&gt;
             functionObject continuityError1;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 cont_error_local    local;&lt;br /&gt;
                 cont_error_global   global;&lt;br /&gt;
                 cont_error_cumulative cumulative;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Optional entries (runtime modifiable)&lt;br /&gt;
 &lt;br /&gt;
     // Inherited entries&lt;br /&gt;
     ...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
マークダウン・ベースのテンプレート・ファイルの例：&lt;br /&gt;
 &amp;lt;code&amp;gt;# &amp;lt;nowiki&amp;gt;{{OF_EXECUTABLE}}&amp;lt;/nowiki&amp;gt; : &amp;lt;nowiki&amp;gt;{{OF_CASE_NAME}}&amp;lt;/nowiki&amp;gt; tutorial&lt;br /&gt;
 &lt;br /&gt;
 - Case: : &amp;lt;nowiki&amp;gt;{{OF_CASE_PATH}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 - Submission:  &amp;lt;nowiki&amp;gt;{{OF_CLOCK_START}}&amp;lt;/nowiki&amp;gt; on &amp;lt;nowiki&amp;gt;{{OF_DATE_START}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 - Report time:  &amp;lt;nowiki&amp;gt;{{OF_CLOCK_NOW}}&amp;lt;/nowiki&amp;gt; on &amp;lt;nowiki&amp;gt;{{OF_DATE_NOW}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Run information&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Property       |&amp;lt;/nowiki&amp;gt; Value              |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;|----------------|--------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Host           |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_HOST}}&amp;lt;/nowiki&amp;gt;        |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Processors     |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_NPROCS}}&amp;lt;/nowiki&amp;gt;      |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Time steps     |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_TIME_INDEX}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Initial deltaT |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{initial_deltaT}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Current deltaT |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_TIME_DELTAT}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Execution time |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{executionTime}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; OpenFOAM information&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Property       |&amp;lt;/nowiki&amp;gt; Value              |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;|----------------|--------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Version        |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_VERSION}}&amp;lt;/nowiki&amp;gt;     |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| API            |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_API}}&amp;lt;/nowiki&amp;gt;         |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Patch          |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_PATCH}}&amp;lt;/nowiki&amp;gt;       |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Build          |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_BUILD}}&amp;lt;/nowiki&amp;gt;       |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Architecture   |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_BUILD_ARCH}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Mesh statistics&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Property          |&amp;lt;/nowiki&amp;gt; Value                |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;|-------------------|----------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Bounds            |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_BOUNDS_MIN}}&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;{{OF_MESH_BOUNDS_MAX}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Number of cells   |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NCELLS}}&amp;lt;/nowiki&amp;gt;   |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Number of faces   |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NFACES}}&amp;lt;/nowiki&amp;gt;   |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Number of points  |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NPOINTS}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Number of patches |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NPATCHES}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Linear solvers&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| Property |&amp;lt;/nowiki&amp;gt; Value          | tolerance(rel)   | Tolerance(abs)      |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;|----------|----------------|------------------|---------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| p        |&amp;lt;/nowiki&amp;gt; `&amp;lt;nowiki&amp;gt;{{solver_p}}&amp;lt;/nowiki&amp;gt;` | &amp;lt;nowiki&amp;gt;{{solver_p_tol}}&amp;lt;/nowiki&amp;gt; | &amp;lt;nowiki&amp;gt;{{solver_p_reltol}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;| U        |&amp;lt;/nowiki&amp;gt; `&amp;lt;nowiki&amp;gt;{{solver_U}}&amp;lt;/nowiki&amp;gt;` | &amp;lt;nowiki&amp;gt;{{solver_u_tol}}&amp;lt;/nowiki&amp;gt; | &amp;lt;nowiki&amp;gt;{{solver_u_reltol}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Numerical scehemes&lt;br /&gt;
 &lt;br /&gt;
 The chosen divergence schemes comprised:&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  [[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;{{divSchemes}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  [[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Graphs&lt;br /&gt;
 &lt;br /&gt;
 Residuals&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;![]({{OF_CASE_PATH}}&amp;lt;/nowiki&amp;gt;/postProcessing/residualGraph1/&amp;lt;nowiki&amp;gt;{{OF_TIME}}&amp;lt;/nowiki&amp;gt;/residualGraph1.svg)&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Results&lt;br /&gt;
 &lt;br /&gt;
 Forces&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;![]({{OF_CASE_PATH}}&amp;lt;/nowiki&amp;gt;/postProcessing/forceCoeffsGraph1/&amp;lt;nowiki&amp;gt;{{OF_TIME}}&amp;lt;/nowiki&amp;gt;/forceCoeffsGraph1.svg)&lt;br /&gt;
 &lt;br /&gt;
 ---&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/foamReport&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #716&lt;br /&gt;
&lt;br /&gt;
=== 新しいグラフ生成 ===&lt;br /&gt;
graphFunctionObjectは、ユーザーが関数オブジェクトの結果値のSVGグラフを生成することを可能にします。例えば、進化の残差や、力係数のような削減されたデータを表示します。&lt;br /&gt;
&lt;br /&gt;
最小限の例を以下に示す：&lt;br /&gt;
 &amp;lt;code&amp;gt;// Generate the result values&lt;br /&gt;
 solverInfo1&lt;br /&gt;
 {&lt;br /&gt;
     type            solverInfo;&lt;br /&gt;
     libs            (utilityFunctionObjects);&lt;br /&gt;
     fields          (U p);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Describe the graph&lt;br /&gt;
 residualGraph&lt;br /&gt;
 {&lt;br /&gt;
     // Mandatory entries&lt;br /&gt;
     libs            (utilityFunctionObjects);&lt;br /&gt;
 &lt;br /&gt;
     functions&lt;br /&gt;
     {&lt;br /&gt;
         //entry&lt;br /&gt;
         //{&lt;br /&gt;
         //    // Mandatory entries&lt;br /&gt;
         //    object      ;&lt;br /&gt;
         //    entry       ;&lt;br /&gt;
         //&lt;br /&gt;
         //    // Optional entries&lt;br /&gt;
         //    title       ;      // Default: take from dict name&lt;br /&gt;
         //    colour      ; // labels in range 0-255 (255 0 0)&lt;br /&gt;
         //    dashes      ;   // (4 1 1)&lt;br /&gt;
         //}&lt;br /&gt;
         Ux&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       Ux_initial;&lt;br /&gt;
         }&lt;br /&gt;
         Uy&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       Uy_initial;&lt;br /&gt;
         }&lt;br /&gt;
         Uz&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       Uz_initial;&lt;br /&gt;
         }&lt;br /&gt;
         p&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       p_initial;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Optional entries&lt;br /&gt;
     //xMin            ;&lt;br /&gt;
     //xMax            ;&lt;br /&gt;
     //yMin            ;&lt;br /&gt;
     //yMax            ;&lt;br /&gt;
     //xlabel          ;  // &amp;quot;Iteration&amp;quot;;&lt;br /&gt;
     //ylabel          ;  // &amp;quot;log10(Initial residual)&amp;quot;;&lt;br /&gt;
     //width           ;&lt;br /&gt;
     //height          ;&lt;br /&gt;
     //strokeWidth     ;&lt;br /&gt;
     //logScaleX       ;&lt;br /&gt;
     //logScaleY       ;&lt;br /&gt;
     //drawGrid        ;&lt;br /&gt;
 &lt;br /&gt;
     // Inherited entries&lt;br /&gt;
     //...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/graphFunctionObject&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike&lt;br /&gt;
&lt;br /&gt;
=== 新しい有限領域関数オブジェクト：surfaceCourantNumber ===&lt;br /&gt;
新しい有限面積関数オブジェクトsurfaceCourantNumberは、有限面積の面中心で表面のクーラント数フィールドを計算します。 これは、liquidFilmFoamソルバーで使用されているような、エッジ中心でクーラント数を計算するアプローチからの概念的な転換を意味します。 面中心でクーラント数を評価することにより、surfaceCourantNumberは、より局所的で、より正確な表面ベースの流れ解析の指標を提供することができます。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&lt;br /&gt;
 &amp;lt;code&amp;gt;surfaceCourantNumber1&lt;br /&gt;
 {&lt;br /&gt;
     // Mandatory entries&lt;br /&gt;
     type        surfaceCourantNumber;&lt;br /&gt;
     libs        (regionFaModels);&lt;br /&gt;
 &lt;br /&gt;
     // Optional entries&lt;br /&gt;
     area        &amp;lt;word&amp;gt;;&lt;br /&gt;
     result      &amp;lt;word&amp;gt;;&lt;br /&gt;
     phis        &amp;lt;word&amp;gt;;&lt;br /&gt;
     rho         &amp;lt;word&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
     // Inherited entries&lt;br /&gt;
     ...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/regionFaModels/functionObjects/surfaceCourantNumber/surfaceCourantNumber.H&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #706&lt;br /&gt;
&lt;br /&gt;
=== ソルバー関数オブジェクトの改良 アウターループ収束チェック ===&lt;br /&gt;
ソルバー関数オブジェクト（scalarTransport、energyTransport、electricPotential）に外部ループの収束チェック機能が追加されました。 この改良により、収束が達成された時点で不要なループを排除することで、計算オーバーヘッドを削減し、解法プロセスを合理化することができます。 最小限の使用例を以下に示します：&lt;br /&gt;
 &amp;lt;code&amp;gt;scalarTransport1&lt;br /&gt;
 {&lt;br /&gt;
     // Optional entries&lt;br /&gt;
     tolerance    &amp;lt;scalar&amp;gt;;&lt;br /&gt;
     ...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/solvers/scalarTransport/scalarTransport.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/solvers/energyTransport/energyTransport.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/solvers/electricPotential/electricPotential.H&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #699&lt;br /&gt;
&lt;br /&gt;
== パラレル ==&lt;br /&gt;
&lt;br /&gt;
=== ノンブロッキング・エクスチェンジ（NBX）の改善 ===&lt;br /&gt;
OpenFOAM-v2306では、実験的な「ノンブロッキング・コンセンサス交換」（NBX）オプションが導入されました。 8192コアに複数のcyclicAMIがあり、（etc/controlDictまたはローカルシステム/controlDictに）エントリがある場合です：&lt;br /&gt;
 &amp;lt;code&amp;gt;OptimisationSwitches&lt;br /&gt;
 {&lt;br /&gt;
     // Additional PstreamBuffers tuning parameters (experimental)&lt;br /&gt;
     //    0 : (legacy PEX)&lt;br /&gt;
     //        * all-to-all for buffer sizes [legacy approach]&lt;br /&gt;
     //        * point-to-point for contents&lt;br /&gt;
     //    1 : (hybrid PEX)&lt;br /&gt;
     //        * NBX for buffer sizes [new approach]&lt;br /&gt;
     //        * point-to-point for contents&lt;br /&gt;
     pbufs.tuning    1;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
以下の時間帯を提供：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|NBX&lt;br /&gt;
|Time (s)&lt;br /&gt;
|-&lt;br /&gt;
|No&lt;br /&gt;
|28k&lt;br /&gt;
|-&lt;br /&gt;
|Yes&lt;br /&gt;
|18k&lt;br /&gt;
|}&lt;br /&gt;
NBXは、「受信と消費」の順序が「送信の順序」と同じであることを保証していない。 これは、cyclicAMIのジオメトリなど、長いメッセージではより敏感であり、一意の「タグ」（デフォルトのPstream::msgType()ではない）を確保するように注意しなければならない。&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #704&lt;br /&gt;
&lt;br /&gt;
=== 改良された有限領域フレームワーク ===&lt;br /&gt;
いくつかの有限領域フレームワークルーチンは、歪度や非直交性に関係なく、平面および非平面有限領域メッシュに影響を与え、並列処理時に一貫性のない挙動を示します。 これらの不整合は、主に内部エッジとプロセッサエッジに適用されるアルゴリズムの違いから生じています。 例えば、非平面有限面積メッシュのコーナーエッジが2つのプロセッサ間で共有されている場合、接線方向に微妙な正負の摂動が生じることがあります。 この摂動は時間の経過とともに伝播し、膜分離のような予期せぬ流れ挙動を引き起こす可能性があります。&lt;br /&gt;
&lt;br /&gt;
入念にテストされた一連のコミットは、主に以下のコアルーチンに対処するために、並列一貫性を改善した：&lt;br /&gt;
 &amp;lt;code&amp;gt;makeLPN&lt;br /&gt;
 makeWeights&lt;br /&gt;
 makeDeltaCoeffs&lt;br /&gt;
 makeCorrectionVectors&lt;br /&gt;
 makeSkewCorrectionVectors&amp;lt;/code&amp;gt;&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteArea/faMesh/faMeshDemandDrivenData.C&lt;br /&gt;
* $FOAM_SRC/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #708&lt;br /&gt;
&lt;br /&gt;
=== reconstructParMesh の改良 ===&lt;br /&gt;
reconstructParMeshユーティリティは、有限面積（'faMesh'）メッシュを再構築することができ、有限面積メッシュが並列に生成される場合に便利です。 ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/parallelProcessing/reconstructParMesh&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #711&lt;br /&gt;
&lt;br /&gt;
=== 改良された分散トライサーフェス ===&lt;br /&gt;
distributedTriSurfaceMeshは、例えばsystem/snappyHexMeshDictのように、関連する辞書で分解方法を指定することで、他のシミュレーションとは異なる分解方法で実行できるようになりました：&lt;br /&gt;
 &amp;lt;code&amp;gt;box&lt;br /&gt;
 {&lt;br /&gt;
     file &amp;quot;box.obj&amp;quot;;&lt;br /&gt;
     type distributedTriSurfaceMesh;&lt;br /&gt;
 &lt;br /&gt;
     // Override the decomposition method&lt;br /&gt;
     numberOfSubdomains  8;&lt;br /&gt;
     method              hierarchical;&lt;br /&gt;
     n                   (2 2 2);&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
を指定することで、三角形を複製せずに実行することもできます。&lt;br /&gt;
 &amp;lt;code&amp;gt;decomposeUsingBbs   false;&amp;lt;/code&amp;gt;&lt;br /&gt;
これは過剰なメモリ使用を回避し、頂点ごとの法線を保存するので、滑らかな法線を持つように拡張できる。&lt;br /&gt;
&lt;br /&gt;
この2つの変更により、単純なメッシュで非並列または並列を実行しても、同じ結果が得られるようになった。 下の図では、非平行メッシュを青い面で、平行メッシュを赤い線で表しています。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/distributedTriSurfaceMesh&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #720&lt;br /&gt;
&lt;br /&gt;
== ユーザビリティ ==&lt;br /&gt;
&lt;br /&gt;
=== C++17に更新 ===&lt;br /&gt;
現在進行中のGPU開発をサポートするため、C++の最低規格がC++14からC++17に引き上げられた。&lt;br /&gt;
&lt;br /&gt;
* コミット: #44f7a726&lt;br /&gt;
* ソース: $WM_PROJECT_DIR/wmake/rules&lt;br /&gt;
&lt;br /&gt;
=== 新しいチュートリアルのデモンストレーション ===&lt;br /&gt;
&lt;br /&gt;
==== ミッシングコーナー ====&lt;br /&gt;
これは様々なメッシュ・ユーティリティを紹介するシンプルなチュートリアルです：&lt;br /&gt;
&lt;br /&gt;
* cellDecomposition関数四角形メッシュを作成するオブジェクト&lt;br /&gt;
* テットを多面体に変換するpolyDualMesh&lt;br /&gt;
* surfaceMeshExtractで追加のポイントパッチを作成する。&lt;br /&gt;
* moveDynamicMeshでメッシュを少し変形させる。 メッシュのモーフィングは、特徴制約を無視したラプラシアン点スムージングを使って行われるため、メッシュの品質を向上させるのに悪い働きをします。&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/field/cellDecomposer&lt;br /&gt;
* $FOAM_UTILITIES/mesh/manipulation/polyDualMesh&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/polyDualMesh/missingCorner&lt;br /&gt;
&lt;br /&gt;
==== ダム決壊 ====&lt;br /&gt;
これはdamBreakチュートリアルの変形で、cyclicACMIを使ってフローをコントロールすることを紹介している。 このチュートリアルでは&lt;br /&gt;
&lt;br /&gt;
* 追加の（cyclicACMI）バッフルが液体の流れを遮断する。&lt;br /&gt;
* 時刻0.5秒、閉塞部の下半分の面が開く&lt;br /&gt;
* これは、スケールファクターを使用して完全非結合（すなわち壁）から完全結合に変換するcyclicACMIによって行われる。&lt;br /&gt;
* スケールはconstant/polyMesh/boundaryのパッチ定義にあるコード化されたFunction1の項目を通して設定されます。&lt;br /&gt;
* 初期状態：閉塞（赤）&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/primitives/functions/Function1/Coded&lt;br /&gt;
* $FOAM_SRC/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPolyPatch&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/multiphase/interFoam/RAS/damBreakLeakage&lt;br /&gt;
&lt;br /&gt;
== コミュニティ ==&lt;br /&gt;
OpenFOAM v2412のリリースは、OpenFOAMのコアチーム以外からの貢献の努力を認め、OpenFOAMの開発を統一するために、より広いOpenFOAMコミュニティに参加してもらうための継続的な努力の上に成り立っています。&lt;br /&gt;
&lt;br /&gt;
いくつかの開発は、メインのコードベースに直接統合されている。&lt;br /&gt;
&lt;br /&gt;
* 地域貢献： アドジョイント最適化の改良 詳細&lt;br /&gt;
* 地域貢献： SA-DDES乱流モデルの遮蔽機能を改善 詳細...&lt;br /&gt;
&lt;br /&gt;
もし、共同開発の可能性を模索し、あなたの開発したものを含めたいとお考えでしたら、ぜひご連絡ください。&lt;br /&gt;
&lt;br /&gt;
=== 乱流専門委員会リポジトリへの新しい投稿 ===&lt;br /&gt;
乱流技術委員会リポジトリ傘下の以下の2つのリポジトリを公開いたします：&lt;br /&gt;
&lt;br /&gt;
* gammaSST :3方程式遷移と乱流モデル。&lt;br /&gt;
* HelicitySpalartAllmaras : Liuらのヘリシティ補正を用いたSpalart-Allmaras乱流モデル。&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/$WM_PROJECT_DIR/plugins/turbulence-community&lt;br /&gt;
&lt;br /&gt;
帰属&lt;br /&gt;
&lt;br /&gt;
* OpenCFDは、Jiří Fürst、Jeff Defoe、そして彼らの同僚たちの貴重な貢献と援助に感謝したい。&lt;br /&gt;
&lt;br /&gt;
=== 謝辞 ===&lt;br /&gt;
&lt;br /&gt;
==== 謝辞 ====&lt;br /&gt;
OpenFOAMに貢献してくれた以下の方々に感謝します。&lt;br /&gt;
&lt;br /&gt;
==== 特別感謝 ====&lt;br /&gt;
&lt;br /&gt;
* Johan Rønby Pedersen: マルチフェーズフレームワークの並列化に貢献&lt;br /&gt;
* マーカス・ノードランド：流体-多孔質界面のモデリングに関する技術的な議論に協力してくれている。&lt;br /&gt;
&lt;br /&gt;
==== 課題追跡への貢献 ====&lt;br /&gt;
&lt;br /&gt;
* ilyapopov (Ilya Popov) リポジトリ内の設定ファイルの迷子？ GL#3192&lt;br /&gt;
* carlo.fiorina (carlo fiorina) v2406 で READ_IF_PRESENT の動作に一貫性がない GL#3193&lt;br /&gt;
* xpqiu (xpqiu) SPDP モードで実行するとソルバがクラッシュする GL#3194&lt;br /&gt;
* gng015 (gng) reconstructParMesh がバイナリでメッシュが大きすぎる場合，メッシュの再構築でスタックする GL#3196&lt;br /&gt;
* stefano.garbin (Stefano Garbin) OF2406 で CFMESH 実行ファイルが見つからない GL#3198&lt;br /&gt;
* duyquang.tdm.bd (Quang Nguyen) OpenFOAM-v2406 での ccmToFoam のクロスコンパイル時のエラー GL#3199&lt;br /&gt;
* ChrisSessler (Christian Sessler) multiComponentMixture と組み合わせた hConst がすべての参照エンタルピーに最初の種の Tref を使用する Href GL#3200&lt;br /&gt;
* ChennaK85 (Chennakesava Kadapa) sixDoFRigidBody の Newmark および Crank-Nicolson スキームの問題 GL#3202&lt;br /&gt;
* santiagomarquezd (Santiago Marquez Damian) 3 次元未満でテンソルの球面部分が間違って計算される GL#3203&lt;br /&gt;
* DL (David Ludlow) overPimpleDyMFoam と v2406 における kOmegaSST 分割の不具合 GL#3204&lt;br /&gt;
* bPaillard (Benoit Paillard) オーバーセットチュートリアルにおける圧力変動 GL#3207&lt;br /&gt;
* mzy (Zeyao Ma) icoReactingMultiphaseInterFoam V2206 で凝固問題を解くと固相が常に動いてしまう GL#3208&lt;br /&gt;
* zzphub (Zhipeng Zhang) 2306 の debian12 ソースビルドに失敗 GL#3210&lt;br /&gt;
* Charlfmare (Charl Mare) SwirlFanVelocity が新しい OF バージョンで動作しない GL#3211&lt;br /&gt;
* lizhisongsjtu (zhisong li) bug: solitary wave - McCowan and Grimshaw GL#3212&lt;br /&gt;
* daniel.jasinski (Daniel) buoyantSimpleFoam の圧力制御の欠落 GL#3213&lt;br /&gt;
* pferro (Paulin FERRO) solidificationMeltingSource がバグっぽい GL#3214&lt;br /&gt;
* rbonin (Rémi Bonin) precompiled OpenFOAM (v2406 / Windows 10) で表面膜を使用すると reactingParcelFoam がクラッシュする GL#3216&lt;br /&gt;
* takuya (takuya yamamoto) blockMeshDict の project 関数のチュートリアルの記述が正しくない GL#3217&lt;br /&gt;
* snaka (Shinji Nakagawa) foamMonitor が Gnuplot バージョン 6 の 'reread' コマンドの非推奨のためにグラフの更新に失敗する GL#3219&lt;br /&gt;
* ilyapopov (Ilya Popov) energyTransport が dynamicRefineFvMesh と組み合わせて動作しない GL#3221&lt;br /&gt;
* ntilton (Nils Tilton) fixedProfile 条件が最後のタイムステップからシミュレーションを再開しない GL#3223&lt;br /&gt;
* porori (takashi suzuki) diffusionGasEvaporation: 例題の使い方とチュートリアルが不適切 &amp;lt;= アントワーヌ方程式の定義が一般的でない（第2項の符号が逆）． GL#3224&lt;br /&gt;
* raphalace (Raphael Aranha) SymmetryPlane と ABL シミュレーションの不具合 GL#3226&lt;br /&gt;
* porori (takashi suzuki) snappyHexMesh v2012 以降で、サーフェスがサイクリックタイプの境界に接続されている場合、サーフェスレイヤーを追加できない。 GL#3227&lt;br /&gt;
* Skolo (Robert) wallShearStress, yPlus の入力フィールドを指定できるようにした GL#3228&lt;br /&gt;
* flex99 (Felix Burger) メッシュとフィールドをインポートする際の vtkUnstructuredToFoam エラー GL#3230&lt;br /&gt;
* acassinelli (Andrea Cassinelli) v2406 が v2312 より最大 ~3% 遅くなった GL#3231&lt;br /&gt;
* croquemadame (Juan Salazar) 後処理のためにフォームファイルのサーフェスフォーマットをディスクから指定の場所に読み込むクラス (foamSurfaceReader) GL#3232&lt;br /&gt;
* gerlero (Gabriel Gerlero) CGAL 6 との互換性 GL#3234&lt;br /&gt;
* xuegy (Guanyang Xue) SolidificationMeltingSource の異なる液相線と固相線 GL#3235&lt;br /&gt;
* gerlero (Gabriel Gerlero) dl.openfoam.comがGitHub Actionsからのリクエストを拒否している GL#3236&lt;br /&gt;
* cthorenz (Carsten Thorenz) interFoam： 可変密度乱流モデル使用時のせん断応力計算が正しくない / 動作しない GL#3237&lt;br /&gt;
* mfikrikasim (Mohd Fikri Kasim) OpenFoam v2306 - SnappyHexMesh の問題 GL#3239&lt;br /&gt;
* hikassem (Hassan Kassem) ConeNozzleInjection が均一でない GL#3240&lt;br /&gt;
* jczhang07 (Junchao Zhang) &amp;quot;openfoam/etc/bashrc&amp;quot; が非常に遅い GL#3245&lt;br /&gt;
* jczhang07 (Junchao Zhang) Icx コンパイラで `pthread_create' への未定義参照のリンクエラー GL#3251&lt;br /&gt;
* djarecki (Dominic Jarecki) EASY FIX: アクティブ熱物理モデルに線形 EOS を含める GL#3252&lt;br /&gt;
* jczhang07 (Junchao Zhang) &amp;quot;petscFoam&amp;quot; を未定義のシンボルでロードできなかった GL#3253&lt;br /&gt;
* richardt (Richard Tribess) BUG: AMR および collisionModel pairCollision でラグランジアンソルバーを実行する際に storeGlobalPositions が呼び出されない GL#3256&lt;br /&gt;
* hungnguyenphd (Quoc Hung Nguyen) sphereDrag が非常に小さい粒子サイズで動作しない GL#3257&lt;br /&gt;
* rbonin (Rémi Bonin) 太陽計算機が 24 時間以上の実行時間で間違った太陽方向を提供する GL#3258&lt;br /&gt;
* jczhang07 (Junchao Zhang) '-fp-model precise は -fp-model=precise であるべき GL#3259&lt;br /&gt;
* porori (takashi suzuki) interCondensatingEvaporatingFoam with InterfaceHeatResistance モデルが蒸発による体積変化を適切に評価しない GL#3261&lt;br /&gt;
* licg1981 (CHENGGONG LI) foamInstallationTest が gcc/g++ のバージョンを読み込めない GL#3263&lt;br /&gt;
* lizhisongsjtu (zhisong li) of2206: vectorCodedSource が動作しない。 GL#3264&lt;br /&gt;
* cibanez (Cristóbal Ibáñez) dynamicMotionSolverFvMeshMAMI の再実装 GL#3265&lt;br /&gt;
* cthorenz (Carsten Thorenz) snappyHexMesh： レイヤー追加処理でパッチ形状が破壊されることがある GL#3270&lt;br /&gt;
* jczhang07 (Junchao Zhang) RPATH リンクの失敗 GL#3274&lt;br /&gt;
* janga (Jan Gärtner) v2406 における boundaryInternalField() のコンパイルエラー GL#3277&lt;br /&gt;
* johan_roenby (Johan Roenby) BUG: plicRDF が周期的なパッチを越えて正常に動作しない GL#3279&lt;br /&gt;
* haampie (Harmen Stoppels) stubs サブディレクトリへの rpath が見つからない GL#3283&lt;br /&gt;
* sreplogl (Scott Replogle) マスターの初期クローンは成功したが、無効なパスのためチェックアウトに失敗 GL#3284&lt;br /&gt;
* janga (Jan Gärtner) Parcels の origProcId の命名を統一する GL#3287&lt;br /&gt;
&lt;br /&gt;
== 会社概要 ==&lt;br /&gt;
OpenFOAMは、ESI-OpenCFDのコアチームによって制作されています。&lt;br /&gt;
&lt;br /&gt;
* Andrew Heather&lt;br /&gt;
* Mattijs Janssens&lt;br /&gt;
* Mark Olesen&lt;br /&gt;
* Prashant Sonakar&lt;br /&gt;
* Pawan Ghildiyal&lt;br /&gt;
* Kutalmış Berçin&lt;br /&gt;
* Matej Forman&lt;br /&gt;
* Chiara Pesci&lt;br /&gt;
* Martin Lichtmes&lt;br /&gt;
* Jiri Polansky&lt;br /&gt;
* Ann Ronchetti&lt;br /&gt;
* Fred Mendonça&lt;br /&gt;
* Swapnil Salokhe&lt;br /&gt;
&lt;br /&gt;
グローバルESIチームからの幅広いサポート&lt;br /&gt;
&lt;br /&gt;
* ESI Group (GmbH)&lt;br /&gt;
* ESI Group (ESI Software (India) Private Limited)&lt;br /&gt;
* ESI Group (North America)&lt;br /&gt;
* ESI Group (Nihon ESI)&lt;br /&gt;
* ESI webteam&lt;br /&gt;
&lt;br /&gt;
次からの寄付もある。&lt;br /&gt;
&lt;br /&gt;
* Marian Fuchs: Upstream CFD GmbH&lt;br /&gt;
* Vaggelis Papoutsis: PCOpt/NTUA and FOSS GP&lt;br /&gt;
* The OpenFOAM Community&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=864</id>
		<title>OpenFOAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=864"/>
		<updated>2024-12-28T03:42:54Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* リリースノート */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではOpenFOAMについてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
&lt;br /&gt;
'''OpenCFD'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2412 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2406 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2312リリースノート|OpenFOAM v2312 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2306リリースノート|OpenFOAM v2306 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2212 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2206 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2112 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2106 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/OF2012-3625e0d8029b40bda20fafe481dcbd95 OpenFOAM v2012 リリースノート]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2006 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1912 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1906 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1812 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1806 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The OpenFOAM Foundation'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 12 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 11 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 10 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 9|OpenFOAM 9 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 8 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v7 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v6.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 3.0.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 2.4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
==スターティングガイド==&lt;br /&gt;
[[OpenFOAMについて]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのインストール]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e63d4cf76ea2fea659b2 チュートリアルケースの実行]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/24b8491bf9776c3a27db OpenFOAMで入力できる項目の調べ方]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e4b13100e15508981a85 OpenFOAMの$FOAM変数]&lt;br /&gt;
&lt;br /&gt;
==困った時は？==&lt;br /&gt;
[https://qiita.com/mmer547/items/7c7c257dcaf2efbc730b OpenFOAM Google Groupに投稿する際に抑えるポイント]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/6b041536e2ac5dd17721 OpenFOAMで計算するネタがない時の探し方]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのエラーメッセージの対応]]&lt;br /&gt;
&lt;br /&gt;
==プリプロセス==&lt;br /&gt;
&lt;br /&gt;
===形状作成===&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%EF%BC%9A%E5%BD%A2%E7%8A%B6%E4%BD%9C%E6%88%90 形状作成ツールまとめ]&lt;br /&gt;
&lt;br /&gt;
===メッシュ===&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%E3%81%AE%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 OpenFOAMのメッシャーについて]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:blockMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:snappyHexMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:cfMesh]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/9fca38b8e8eadc869bb8 SalomeでOpenFOAMのメッシュを用意する方法]&lt;br /&gt;
&lt;br /&gt;
===境界条件===&lt;br /&gt;
[[境界条件]]&lt;br /&gt;
&lt;br /&gt;
==ソルバ==&lt;br /&gt;
[[simpleFoamについて]]&lt;br /&gt;
&lt;br /&gt;
[[ExecutionTimeとClockTimeについて]]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/SIMPLEC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%A8%88%E7%AE%97%E5%AE%9F%E8%A1%8C%EF%BC%88OpenFOAM3.0.1%EF%BC%89 SIMPLECを使用した計算実行（OpenFOAM3.0.1）]&lt;br /&gt;
&lt;br /&gt;
===並列計算の実行方法===&lt;br /&gt;
&lt;br /&gt;
[[decomposeParDictの中身]]&lt;br /&gt;
&lt;br /&gt;
===エラーメッセージ===&lt;br /&gt;
[[v1806のエラーメッセージ]]&lt;br /&gt;
&lt;br /&gt;
==ポストプロセス==&lt;br /&gt;
[[ログファイルから残差ログを抽出]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e463235ddb93f08db68a OpenFOAMのpostProcessについて]&lt;br /&gt;
&lt;br /&gt;
==チュートリアルケース==&lt;br /&gt;
[[チュートリアルケース|チュートリアルケース一覧]]&lt;br /&gt;
&lt;br /&gt;
==カスタマイズ==&lt;br /&gt;
[https://qiita.com/mmer547/items/2997bf8c71fe1e2423c9 OpenFOAM ソースコードの探し方]&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/foam-extend_4.0%E3%82%92Bash_on_Ubuntu_on_Windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB foam-extend 4.0をBash on Ubuntu on Windowsにインストール]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/ESI_Windows%E7%89%88OpenFOAM%E3%81%AE%E5%B0%8E%E5%85%A5 ESI Windows版OpenFOAMの導入]&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/OpenCAE/Supercomputer-OpenFOAM-Training/-/wikis/home スーパーコンピュータOpenFOAM講習会]&lt;br /&gt;
&lt;br /&gt;
== 関連サービス ==&lt;br /&gt;
=== プリプロセス ===&lt;br /&gt;
[https://www.xsim.info/products/products.html XSim.Work]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDEXCS-OpenFOAM%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E9%87%8E%E6%9D%91-%E6%82%A6%E6%B2%BB/dp/4621306138/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-5 オープンCAEのためのDEXCS for OpenFOAMハンドブック]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E7%AC%AC2%E7%89%88-%E4%B8%80%E8%88%AC%E7%A4%BE%E5%9B%A3%E6%B3%95%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691025/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-1 OpenFOAMによる熱移動と流れの数値解析(第2版) ]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E5%B7%9D%E7%95%91-%E7%9C%9F%E4%B8%80/dp/4844379526/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-6　OpenFOAMの歩き方]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%83%A9%E3%83%90%E3%82%A4%E3%83%88/dp/4627691610/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-2 OpenFOAMライブラリリファレンス]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Tomislav-Mari%C2%B4c/dp/4627670915/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-3 OpenFOAMプログラミング]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691017/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-4 OpenFOAMによる熱移動と流れの数値解析]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2412_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=863</id>
		<title>OpenFOAM v2412 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2412_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=863"/>
		<updated>2024-12-28T03:42:48Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: snapshot1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ESI OpenCFD Release OpenFOAM® v2412 ==&lt;br /&gt;
OpenCFDは、OpenFOAM® v2412の2024年12月リリースを発表いたします。 このリリースは、コードの多くの領域にわたってOpenFOAM-v2406の機能を拡張しています。 この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。 様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージもあります。&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux: Ubuntu 用パッケージインストール (近日公開予定) &lt;br /&gt;
*openSUSE Linux: パッケージインストール (近日公開予定) &lt;br /&gt;
*Redhat Linux variants: パッケージインストール (近日公開予定) &lt;br /&gt;
*apptainer イメージ: dockerhub から入手可能 (近日公開予定)&lt;br /&gt;
&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢がある（詳細）：&lt;br /&gt;
&lt;br /&gt;
* Linux用Windowsサブシステムの使用（Ubuntu、openSUSEなどがベース）&lt;br /&gt;
* クロスコンパイルによるネイティブ実行可能ファイル&lt;br /&gt;
* ドッカーのインストール&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのapptainerサポートは、事前に組み立てられたイメージではなく、記述ファイルによって提供されます：&lt;br /&gt;
&lt;br /&gt;
* パッケージ/コンテナを確認する&lt;br /&gt;
&lt;br /&gt;
Mac OSXユーザーには、ソースからコンパイルするか、コンパイル済みパッケージのDockerコンテナを使用するオプションがある（詳細はこちら）。&lt;br /&gt;
&lt;br /&gt;
== アップグレード ==&lt;br /&gt;
&lt;br /&gt;
* ユーザー向けのヘルプは、ユーザー・アップグレード・ガイドに記載されています。&lt;br /&gt;
* 開発者向けのヘルプは、開発者向けアップグレードガイドに記載されています。&lt;br /&gt;
&lt;br /&gt;
== 前処理 ==&lt;br /&gt;
&lt;br /&gt;
=== createPatchユーティリティの改良 ===&lt;br /&gt;
createPatchユーティリティが拡張され、例えばcyclicACMIの作成時に重複した境界面を作成できるようになりました。 これは、外部生成メッシュ間のcyclicACMI接続を作成するために使用できます。&lt;br /&gt;
&lt;br /&gt;
system/createPatchDictのサンプル：&lt;br /&gt;
 &amp;lt;code&amp;gt;// Patches to create.&lt;br /&gt;
 patches&lt;br /&gt;
 (&lt;br /&gt;
     {&lt;br /&gt;
         //- Master side patch&lt;br /&gt;
         name            central_inlet_couple;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            cyclicACMI;&lt;br /&gt;
             nonOverlapPatch central_inlet_blockage;&lt;br /&gt;
             neighbourPatch  inlet_central_couple;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (central_inlet);&lt;br /&gt;
     }&lt;br /&gt;
     {&lt;br /&gt;
         //- Blockage&lt;br /&gt;
         name            central_inlet_blockage;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            wall;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (central_inlet);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     {&lt;br /&gt;
         //- Slave side patch&lt;br /&gt;
         name            inlet_central_couple;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            cyclicACMI;&lt;br /&gt;
             nonOverlapPatch inlet_central_blockage;&lt;br /&gt;
             neighbourPatch  central_inlet_couple;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (inlet_couple);&lt;br /&gt;
     }&lt;br /&gt;
     {&lt;br /&gt;
         //- Blockage&lt;br /&gt;
         name            inlet_central_blockage;&lt;br /&gt;
         patchInfo&lt;br /&gt;
         {&lt;br /&gt;
             type            wall;&lt;br /&gt;
         }&lt;br /&gt;
         constructFrom patches;&lt;br /&gt;
         patches (inlet_couple);&lt;br /&gt;
     }&lt;br /&gt;
 );&amp;lt;/code&amp;gt;&lt;br /&gt;
注意：createPatchを実行する前に、作成するcyclicACMIパッチが存在してはならない。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/createPatch/TJunctionSwitching_createPatch&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/utilities/mesh/manipulation/createPatch&lt;br /&gt;
* $FOAM_SRC/utilities/mesh/manipulation/mergeMeshes&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #702&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMeshの改良：スナップの前にレイヤーをバッファリングする。 ===&lt;br /&gt;
スナップ前にメッシュにバッファレイヤーを追加できるようになり、スナップアルゴリズムをユーザーが選択できるようになりました。&lt;br /&gt;
&lt;br /&gt;
snappyHexMeshDictの新しいトップレベル・エントリーを使用して、バッファー・レイヤーの追加とメッシュ・モーション機能の使用を選択できるようになりました：&lt;br /&gt;
 &amp;lt;code&amp;gt;// Type of mesh generation:&lt;br /&gt;
 //  - castellated (default)&lt;br /&gt;
 //  - castellatedBufferLayer&lt;br /&gt;
 type            castellatedBufferLayer;&amp;lt;/code&amp;gt;&lt;br /&gt;
バッファ層の追加はすべてのメッシュ化されたパッチに適用されます。オプションで、addBufferLayersキーワードを使用してサーフェスごとにオーバーライドできます：&lt;br /&gt;
 &amp;lt;code&amp;gt;refinementSurfaces&lt;br /&gt;
 {&lt;br /&gt;
     sphere&lt;br /&gt;
     {&lt;br /&gt;
         // Surface-wise min and max refinement level&lt;br /&gt;
         level (1 1);&lt;br /&gt;
         // Disable buffer layers&lt;br /&gt;
         addBufferLayers false;&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
スナップ時に使用するメッシュ・モーション・ソルバの選択：&lt;br /&gt;
 &amp;lt;code&amp;gt;snapControls&lt;br /&gt;
 {&lt;br /&gt;
   ..&lt;br /&gt;
   solver  displacementPointSmoothing;&lt;br /&gt;
   displacementPointSmoothingCoeffs&lt;br /&gt;
   {&lt;br /&gt;
       // Use laplacian to untangle problem areas&lt;br /&gt;
       pointSmoother           laplacian;&lt;br /&gt;
       nPointSmootherIter      10;&lt;br /&gt;
   }&amp;lt;/code&amp;gt;&lt;br /&gt;
下の画像は、回転したボックスの外側に追加されたバッファー・セルの単層で、セルはセル・インデックスに従って色分けされている：&lt;br /&gt;
&lt;br /&gt;
2つ目の例は、バッファレイヤーを追加することで、内側と外側の両方の領域を維持しながら、フェイスゾーンにスナップするのに役立つことを示しています。 ここでは、セルは非直交性に従って色付けされている：&lt;br /&gt;
&lt;br /&gt;
バッファレイヤーは（まだ）フィーチャーのエッジを考慮していないことに注意してください。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/rotated_block Meshing the outside of a rotated cube.&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_multiRegion Meshing the inside and outside of a sphere.&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/utilities/mesh/generation/snappyHexMesh&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #715&lt;br /&gt;
&lt;br /&gt;
== 境界条件 ==&lt;br /&gt;
&lt;br /&gt;
=== pointMeshの境界処理の改善 ===&lt;br /&gt;
pointMeshはパッチのリスト（オプション）を持つようになった。 通常の動作は、pointMeshはボリュームの'poly'メッシュと同じパッチのセットを使い、'poly'パッチのポイントで操作します。&lt;br /&gt;
&lt;br /&gt;
ポイントパッチ条件をpolyMesh/pointMesh/boundaryファイルで指定できるようになり、フィーチャーのエッジ、ポイント、内部ポイントにも制約を適用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
チュートリアルのmesh/blockMesh/sphere7は、これを使用して球状のブロックメッシュを立方体に戻す方法を示しています。 &lt;br /&gt;
&lt;br /&gt;
このチュートリアルでは、プラグインのポイントスムーサーを使う、新しいdisplacementPointSmoothingモーションソルバーの使用例も紹介します：&lt;br /&gt;
&lt;br /&gt;
* laplacian : 近隣点の平均位置&lt;br /&gt;
* geometricElementTransform : 最も直交する形状に移動する。&lt;br /&gt;
&lt;br /&gt;
注&lt;br /&gt;
&lt;br /&gt;
* 点の移動中に点法線が更新されない&lt;br /&gt;
* ポイントモーションでは、周期的なパッチは現在正しく処理されていません。&lt;br /&gt;
* これらの追加pointPatchは以下によってサポートされる：&lt;br /&gt;
** moveDynamicMesh, subsetMesh&lt;br /&gt;
** decomposePar, reconstructPar, redistributePar&lt;br /&gt;
** some mesh motion solvers&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/blockMesh/pipe&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/blockMesh/sphere7&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/moveDynamicMesh/badMove&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/moveDynamicMesh/bendJunction&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/moveDynamicMesh/faceZoneBlock&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* Merge request #715&lt;br /&gt;
&lt;br /&gt;
=== 新しいポイントパッチ機能 ===&lt;br /&gt;
&lt;br /&gt;
* topoSet に patchToPoint が追加されました : pointPatch のすべての点を選択します (patchToFace と faceToPoint を使って polyPatch の点を取得します)。&lt;br /&gt;
* 新しい点境界条件：edgeSlipとpointAttraction（新しいpointMesh境界条件のチュートリアルで使用されます。）&lt;br /&gt;
* symmetryPolyPatch : 平均方位を計算する際に、ゼロサイズの面を無視する。 これは、後の押し出しのために厚さゼロのレイヤーを追加できるようにするための便利な機能です。&lt;br /&gt;
&lt;br /&gt;
== 数値 ==&lt;br /&gt;
&lt;br /&gt;
=== 新しい融合離散化 ===&lt;br /&gt;
新しい融合離散化手法は、中間補間ステップを回避し、面ベースの積分と融合する。 機能は通常の離散化と同等です：&lt;br /&gt;
&lt;br /&gt;
* gradSchemes : fusedGauss&lt;br /&gt;
* divSchemes : fusedGauss&lt;br /&gt;
* laplacianSchemes : fusedGauss, fusedLeastSquares&lt;br /&gt;
&lt;br /&gt;
これらの方式はメモリ操作を回避するため、パッチ数が多い場合や、GPUがCPUのデータにアクセスするなど、メモリアクセスが遅いノードに有利である。 logs-gauss'がデフォルトの動作、'logs-fused'がドロップイン置換融合スキームを示しています：&lt;br /&gt;
&lt;br /&gt;
これは予備的な作業であり、明示的な操作しか考慮していないこと、また操作の順序が異なるために切り捨て誤差が異なることに注意されたい。&lt;br /&gt;
&lt;br /&gt;
チュートリアル&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/ncompressible/simpleFoam/pitzDaily_fused&lt;br /&gt;
&lt;br /&gt;
ソースコード&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/src/fusedDiscretisation&lt;br /&gt;
&lt;br /&gt;
リクエストのマージ&lt;br /&gt;
&lt;br /&gt;
* MR!712&lt;br /&gt;
&lt;br /&gt;
=== 新しいGAMGアグロメレーション・キャッシング ===&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 &amp;lt;code&amp;gt;p&lt;br /&gt;
 {&lt;br /&gt;
     solver              GAMG;&lt;br /&gt;
     ..&lt;br /&gt;
     cacheAgglomeration  yes;&lt;br /&gt;
     updateInterval      100000;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
For verbose feedback on the agglomeration, activate the debug switches in the system/controlDict&lt;br /&gt;
 &amp;lt;code&amp;gt;DebugSwitches&lt;br /&gt;
 {&lt;br /&gt;
     // Print agglomeration&lt;br /&gt;
     GAMGAgglomeration   1;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
faceAreaWeight optimisation&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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%:&lt;br /&gt;
&lt;br /&gt;
Note that algebraic agglomeration can run with updateInterval; but it&lt;br /&gt;
&lt;br /&gt;
* 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&lt;br /&gt;
* is based on the matrix coefficients which are changing during the simulation so would not be constant even during solid-body motion&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fvMatrices/solvers/GAMGSymSolver/GAMGAgglomerations/faceAreaPairGAMGAgglomeration&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #707&lt;br /&gt;
&lt;br /&gt;
=== Improved lduMatrix, lduAddressing ===&lt;br /&gt;
The scalar matrix class lduMatrix has been extended to make it easier to work with cell-based algorithms.&lt;br /&gt;
The addressing lduAddressing includes a lowerCSRAddr accessor that returns the lower addressing, avoiding the additional indirection using loSortAddressing:&lt;br /&gt;
 &amp;lt;code&amp;gt;const labelUList&amp;amp; lduAddressing::lowerCSRAddr() const&amp;lt;/code&amp;gt;&lt;br /&gt;
This is constructed on-the-fly from the lowerAddr() addressing.&lt;br /&gt;
&lt;br /&gt;
Additionally, the matrix has been extended with a lowerCSR() accessor that returns the corresponding reordering of the lower() coefficients, or can be constructed directly:&lt;br /&gt;
 &amp;lt;code&amp;gt;const scalarField&amp;amp; lduMatrix::lowerCSR() const&amp;lt;/code&amp;gt;&lt;br /&gt;
Availability of the addressing can be checked using the hasLowerCSR() function.&lt;br /&gt;
&lt;br /&gt;
An example usage is given inside the lduMatrix::Amul routine:&lt;br /&gt;
 &amp;lt;code&amp;gt;if (hasLowerCSR())&lt;br /&gt;
 {&lt;br /&gt;
     // Note: lowerCSR constructed from lower if available, upper otherwise&lt;br /&gt;
     //       so is handling symmetric()&lt;br /&gt;
     const scalar* const __restrict__ lowercsrPtr = lowerCSR().begin();&lt;br /&gt;
 &lt;br /&gt;
     for (label cell=0; cell&amp;lt;nCells; cell++)&lt;br /&gt;
     {&lt;br /&gt;
         scalar&amp;amp; val = ApsiPtr[cell];&lt;br /&gt;
 &lt;br /&gt;
         val = diagPtr[cell]*psiPtr[cell];&lt;br /&gt;
 &lt;br /&gt;
         // Add lower contributions&lt;br /&gt;
         {&lt;br /&gt;
             const label start = loStartPtr[cell];&lt;br /&gt;
             const label end = loStartPtr[cell+1];&lt;br /&gt;
 &lt;br /&gt;
             for (label i = start; i &amp;lt; end; i++)&lt;br /&gt;
             {&lt;br /&gt;
                 const label nbrCell = lcsrPtr[i];&lt;br /&gt;
                 val += lowercsrPtr[i]*psiPtr[nbrCell];&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         // Add upper contributions&lt;br /&gt;
         {&lt;br /&gt;
             const label start = oStartPtr[cell];&lt;br /&gt;
             const label end = oStartPtr[cell+1];&lt;br /&gt;
 &lt;br /&gt;
             for (label i = start; i &amp;lt; end; i++)&lt;br /&gt;
             {&lt;br /&gt;
                 const label nbrCell = uPtr[i];&lt;br /&gt;
                 val += upperPtr[i]*psiPtr[nbrCell];&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduAddressing/lduAddressing.H&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C&lt;br /&gt;
&lt;br /&gt;
=== Improved wall distance ===&lt;br /&gt;
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.&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
* is not parallel consistent&lt;br /&gt;
* only considers one face&lt;br /&gt;
&lt;br /&gt;
For more consistent behaviour the exact wall distance method should be employed.&lt;br /&gt;
&lt;br /&gt;
Previous behaviour (OpenFOAM v2406 and earlier) can be obtained by deactivating the useCombinedWallPatch info switch in etc/controlDict or the local system/controlDict:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;code&amp;gt;OptimisationSwitches&lt;br /&gt;
 {&lt;br /&gt;
     useCombinedWallPatch    0;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
With a skewed/tetified version of the cavity mesh, v2406 wall distance:&lt;br /&gt;
&lt;br /&gt;
The new behaviour looks across the side patches as well as the top patch:&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/cellDist/cellDistFuncs.C&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fvMesh/wallDist/nearWallDist/nearWallDist.C&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.C&lt;br /&gt;
* $FOAM_SRC/meshTools/cellDist/patchWave/patchDataWave.C&lt;br /&gt;
* $FOAM_SRC/meshTools/cellDist/patchWave/patchWave.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #700&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue #3215&lt;br /&gt;
&lt;br /&gt;
=== Community contribution: Improved adjoint optimisation ===&lt;br /&gt;
OpenFOAM v2412 adds some quality-of-life changes to the adjoint library.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_10x-init&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/optimisation/adjointOptimisation&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #710&lt;br /&gt;
&lt;br /&gt;
=== New zoneBlended scheme ===&lt;br /&gt;
The new zoneBlended scheme enables users to apply differencing schemes per-face-zone. Schemes are set in dictionary format according to:&lt;br /&gt;
 &amp;lt;code&amp;gt;divSchemes&lt;br /&gt;
 {&lt;br /&gt;
     .&lt;br /&gt;
     .&lt;br /&gt;
     div(phi,U)      Gauss zoneBlended&lt;br /&gt;
     {&lt;br /&gt;
         default         defaultScheme;&lt;br /&gt;
         faceZone1       scheme1;&lt;br /&gt;
         faceZone2       scheme2;&lt;br /&gt;
         ...&lt;br /&gt;
         faceZoneN       schemeN;&lt;br /&gt;
     }&lt;br /&gt;
     .&lt;br /&gt;
     .&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/interpolation/surfaceInterpolation/schemes/zoneBlended&lt;br /&gt;
&lt;br /&gt;
== Solvers and physical models ==&lt;br /&gt;
&lt;br /&gt;
=== Community contribution: Improved shielding function for SA-DDES turbulence model ===&lt;br /&gt;
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 &amp;quot;shielding&amp;quot; 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 &amp;quot;modelled stress depletion&amp;quot; and &amp;quot;grid-induced separation&amp;quot; in the literature.&lt;br /&gt;
Deck &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
following turbulence modelling features are included in the v2412 release:&lt;br /&gt;
&lt;br /&gt;
* Improved shielding function formulation of Deck &amp;amp; Renard [2], implemented for SpalartAllmarasDDES, activated via the new option “shielding” (keyword “standard” selects the standard function [1], “ZDES2020” selects the improved formulation [2]).&lt;br /&gt;
* An additional option “usefP2” activates a more robust shielding mode for the Deck &amp;amp; Renard formulation (detailed in equation A.9 of [2]).&lt;br /&gt;
&lt;br /&gt;
Example usage&lt;br /&gt;
 &amp;lt;code&amp;gt;simulationType LES;&lt;br /&gt;
 LES&lt;br /&gt;
 {&lt;br /&gt;
     LESModel         SpalartAllmarasDDES;&lt;br /&gt;
     SpalartAllmarasDDESCoeffs&lt;br /&gt;
     {&lt;br /&gt;
         // optional keywords for shielding function&lt;br /&gt;
         shielding    ZDES2020;    // default: standard&lt;br /&gt;
         usefP2       false;       // default: false&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     delta            maxDeltaxyz;&lt;br /&gt;
 &lt;br /&gt;
     turbulence       on;&lt;br /&gt;
     printCoeffs      on;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/LES/NACA4412&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The improved shielding function of Deck &amp;amp; Renard (2020) [2] was implemented by Upstream CFD GmbH and integrated into OpenFOAM in collaboration with ESI-UK Ltd with funding by Volkswagen AG.&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
&lt;br /&gt;
* [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.&lt;br /&gt;
* [2] Deck, S., &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
=== Improved Lagrangian injection model: coneNozzleInjection ===&lt;br /&gt;
This release introduces two minor enhancements to the coneNozzleInjection model:&lt;br /&gt;
&lt;br /&gt;
* A new injection method that distributes particles uniformly at angular intervals across a disc;&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A minimal example usage is as follows:&lt;br /&gt;
 &amp;lt;code&amp;gt;injectionModels&lt;br /&gt;
 {&lt;br /&gt;
     model1&lt;br /&gt;
     {&lt;br /&gt;
         type    coneNozzleInjection;&lt;br /&gt;
 &lt;br /&gt;
         ...&lt;br /&gt;
 &lt;br /&gt;
         // The new injection method: discSegments&lt;br /&gt;
         injectionMethod         discSegments;&lt;br /&gt;
         nInjectors              10;&lt;br /&gt;
         initialInjectorDir      (1 0 0);&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #719&lt;br /&gt;
&lt;br /&gt;
=== Improved solid-body motion function: tabulated6DoFMotion ===&lt;br /&gt;
The tabulated6DoFMotion model now includes a linear interpolation option. A minimal example usage is as follows:&lt;br /&gt;
 &amp;lt;code&amp;gt;solidBodyMotionFunction tabulated6DoFMotion;&lt;br /&gt;
 &lt;br /&gt;
 interpolationScheme     linear;  // spline;&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.H&lt;br /&gt;
&lt;br /&gt;
=== New finite-area framework: Film-separation models ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Key changes and additions:&lt;br /&gt;
&lt;br /&gt;
* Owen-Ryley model:&lt;br /&gt;
** The existing curvatureSeparation model has been re-implemented as the OwenRyleyModel, based on the work of Owen &amp;amp; Ryley (1983). This model assumes:&lt;br /&gt;
*** 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.&lt;br /&gt;
*** The film flows around a rounded corner with a fixed radius, potentially limiting its applicability at sharp corners where curvature is not well-defined.&lt;br /&gt;
*** Films are thinner than 1e-4 m, with viscous effects and surface disturbances neglected.&lt;br /&gt;
*** Uniform film velocity and thickness.&lt;br /&gt;
*** The separation criterion is not explicitly formulated, but rather inferred based on the model’s assumptions.&lt;br /&gt;
* New film-separation model for sharp edges:&lt;br /&gt;
** 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):&lt;br /&gt;
*** Friedrich et al. (2008):&lt;br /&gt;
**** Developed a separation criterion rooted in force equilibrium within a control volume at the detachment point.&lt;br /&gt;
**** Assumes a maximum film thickness of 1e-4 m.&lt;br /&gt;
**** Considers surface tension, gravity, and film inertia.&lt;br /&gt;
**** Known to be relatively reliable, though it can predict premature rupture.&lt;br /&gt;
**** Serves as the separation method implemented in ANSYS Forte 18.2.&lt;br /&gt;
*** Zhang et al. (2018):&lt;br /&gt;
**** 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
As a result, users can expect improved consistency and reliability when simulating film-separation phenomena, regardless of mesh complexity or computational setup.&lt;br /&gt;
&lt;br /&gt;
A minimal example usage is as follows:&lt;br /&gt;
 &amp;lt;code&amp;gt;injectionModels&lt;br /&gt;
 {&lt;br /&gt;
     filmSeparation&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 filmSeparationCoeffs&lt;br /&gt;
 {&lt;br /&gt;
     model              OwenRyley;&lt;br /&gt;
     definedPatchRadii  0;&lt;br /&gt;
     minInvR1           0;&lt;br /&gt;
     deltaByR1Min       0;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/regionFaModels/liquidFilm/subModels/kinematic/injectionModel/filmSeparation/filmSeparationModels&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/pitzDailyWithSprinklers&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #714&lt;br /&gt;
&lt;br /&gt;
=== Improved simpleFoam: new dynamicMesh support ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== More information ====&lt;br /&gt;
&lt;br /&gt;
* Issue #3269&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== New report generation ===&lt;br /&gt;
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 &amp;lt;nowiki&amp;gt;{{ENTRY}}&amp;lt;/nowiki&amp;gt; are replaced (case insensitive). A set of common built-ins entries beginning with OF_ are provided, e.g.&lt;br /&gt;
&lt;br /&gt;
* OF_HOST: Host machine name&lt;br /&gt;
* OF_CASE_NAME: Case name&lt;br /&gt;
* OF_API: OpenFOAM API level&lt;br /&gt;
* OF_DATE_START: Date when job was started&lt;br /&gt;
* OF_CASE_PATH: file path to case&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* fileRegEx : regular expression from file&lt;br /&gt;
* functionObjectValue : retrieve function object result&lt;br /&gt;
* dictionaryValue : value from dictionary - file-based or from registry lookup&lt;br /&gt;
* environmentVariable : replace keyword with environment variable&lt;br /&gt;
* userValue : replace keyword with user-supplied string:&lt;br /&gt;
&lt;br /&gt;
Example usage based on a markdown template:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;code&amp;gt;foamReport1&lt;br /&gt;
 {&lt;br /&gt;
     // Mandatory entries (unmodifiable)&lt;br /&gt;
     type            foamReport;&lt;br /&gt;
     libs            (utilityFunctionObjects);&lt;br /&gt;
 &lt;br /&gt;
     template        &amp;quot;/myReportTemplate.md&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     substitutions&lt;br /&gt;
     {&lt;br /&gt;
         divSchemes1&lt;br /&gt;
         {&lt;br /&gt;
             type        dictionaryValue;&lt;br /&gt;
             object      fvSchemes;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 divSchemes      &amp;quot;divSchemes&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         fvSolution1&lt;br /&gt;
         {&lt;br /&gt;
             type        dictionaryValue;&lt;br /&gt;
             path        &amp;quot;/fvSolution&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 solver_p        &amp;quot;solvers/p/solver&amp;quot;;&lt;br /&gt;
                 solver_p_tol    &amp;quot;solvers/p/tolerance&amp;quot;;&lt;br /&gt;
                 solver_p_reltol &amp;quot;solvers/p/relTol&amp;quot;;&lt;br /&gt;
                 solver_U        &amp;quot;solvers/U/solver&amp;quot;;&lt;br /&gt;
                 solver_U_tol    &amp;quot;solvers/U/tolerance&amp;quot;;&lt;br /&gt;
                 solver_U_reltol &amp;quot;solvers/U/relTol&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         controlDict1&lt;br /&gt;
         {&lt;br /&gt;
             type        dictionaryValue;&lt;br /&gt;
             path        &amp;quot;/controlDict&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 initial_deltaT       &amp;quot;deltaT&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         continuityErrors&lt;br /&gt;
         {&lt;br /&gt;
             type        functionObjectValue;&lt;br /&gt;
             functionObject continuityError1;&lt;br /&gt;
 &lt;br /&gt;
             entries&lt;br /&gt;
             {&lt;br /&gt;
                 cont_error_local    local;&lt;br /&gt;
                 cont_error_global   global;&lt;br /&gt;
                 cont_error_cumulative cumulative;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Optional entries (runtime modifiable)&lt;br /&gt;
 &lt;br /&gt;
     // Inherited entries&lt;br /&gt;
     ...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Example markdown-based template file:&lt;br /&gt;
 &amp;lt;code&amp;gt;# &amp;lt;nowiki&amp;gt;{{OF_EXECUTABLE}}&amp;lt;/nowiki&amp;gt; : &amp;lt;nowiki&amp;gt;{{OF_CASE_NAME}}&amp;lt;/nowiki&amp;gt; tutorial&lt;br /&gt;
 &lt;br /&gt;
 - Case: &amp;lt;nowiki&amp;gt;{{OF_CASE_PATH}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 - Submission: &amp;lt;nowiki&amp;gt;{{OF_CLOCK_START}}&amp;lt;/nowiki&amp;gt; on &amp;lt;nowiki&amp;gt;{{OF_DATE_START}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 - Report time: &amp;lt;nowiki&amp;gt;{{OF_CLOCK_NOW}}&amp;lt;/nowiki&amp;gt; on &amp;lt;nowiki&amp;gt;{{OF_DATE_NOW}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Run information&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Property       |&amp;lt;/nowiki&amp;gt; Value              |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;|----------------|--------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Host           |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_HOST}}&amp;lt;/nowiki&amp;gt;        |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Processors     |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_NPROCS}}&amp;lt;/nowiki&amp;gt;      |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Time steps     |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_TIME_INDEX}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Initial deltaT |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{initial_deltaT}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Current deltaT |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_TIME_DELTAT}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Execution time |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{executionTime}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; OpenFOAM information&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Property       |&amp;lt;/nowiki&amp;gt; Value              |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;|----------------|--------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Version        |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_VERSION}}&amp;lt;/nowiki&amp;gt;     |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| API            |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_API}}&amp;lt;/nowiki&amp;gt;         |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Patch          |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_PATCH}}&amp;lt;/nowiki&amp;gt;       |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Build          |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_BUILD}}&amp;lt;/nowiki&amp;gt;       |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Architecture   |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_BUILD_ARCH}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Mesh statistics&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Property          |&amp;lt;/nowiki&amp;gt; Value                |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;|-------------------|----------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Bounds            |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_BOUNDS_MIN}}&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;{{OF_MESH_BOUNDS_MAX}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Number of cells   |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NCELLS}}&amp;lt;/nowiki&amp;gt;   |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Number of faces   |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NFACES}}&amp;lt;/nowiki&amp;gt;   |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Number of points  |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NPOINTS}}&amp;lt;/nowiki&amp;gt;  |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Number of patches |&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;{{OF_MESH_NPATCHES}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Linear solvers&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| Property |&amp;lt;/nowiki&amp;gt; Value          | tolerance(rel)   | Tolerance(abs)      |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;|----------|----------------|------------------|---------------------|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| p        |&amp;lt;/nowiki&amp;gt; `&amp;lt;nowiki&amp;gt;{{solver_p}}&amp;lt;/nowiki&amp;gt;` | &amp;lt;nowiki&amp;gt;{{solver_p_tol}}&amp;lt;/nowiki&amp;gt; | &amp;lt;nowiki&amp;gt;{{solver_p_reltol}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;| U        |&amp;lt;/nowiki&amp;gt; `&amp;lt;nowiki&amp;gt;{{solver_U}}&amp;lt;/nowiki&amp;gt;` | &amp;lt;nowiki&amp;gt;{{solver_u_tol}}&amp;lt;/nowiki&amp;gt; | &amp;lt;nowiki&amp;gt;{{solver_u_reltol}}&amp;lt;/nowiki&amp;gt; |&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Numerical scehemes&lt;br /&gt;
 &lt;br /&gt;
 The chosen divergence schemes comprised:&lt;br /&gt;
 &lt;br /&gt;
 [[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{divSchemes}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 [[利用者:Mmer547|mmer547]] ([[利用者・トーク:Mmer547|トーク]])&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Graphs&lt;br /&gt;
 &lt;br /&gt;
 Residuals&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;![]({{OF_CASE_PATH}}&amp;lt;/nowiki&amp;gt;/postProcessing/residualGraph1/&amp;lt;nowiki&amp;gt;{{OF_TIME}}&amp;lt;/nowiki&amp;gt;/residualGraph1.svg)&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##&amp;lt;/nowiki&amp;gt; Results&lt;br /&gt;
 &lt;br /&gt;
 Forces&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;![]({{OF_CASE_PATH}}&amp;lt;/nowiki&amp;gt;/postProcessing/forceCoeffsGraph1/&amp;lt;nowiki&amp;gt;{{OF_TIME}}&amp;lt;/nowiki&amp;gt;/forceCoeffsGraph1.svg)&lt;br /&gt;
 &lt;br /&gt;
 ---&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/foamReport&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #716&lt;br /&gt;
&lt;br /&gt;
=== New graph generation ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A minimal example is shown below:&lt;br /&gt;
 &amp;lt;code&amp;gt;// Generate the result values&lt;br /&gt;
 solverInfo1&lt;br /&gt;
 {&lt;br /&gt;
     type            solverInfo;&lt;br /&gt;
     libs            (utilityFunctionObjects);&lt;br /&gt;
     fields          (U p);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Describe the graph&lt;br /&gt;
 residualGraph&lt;br /&gt;
 {&lt;br /&gt;
     // Mandatory entries&lt;br /&gt;
     libs            (utilityFunctionObjects);&lt;br /&gt;
 &lt;br /&gt;
     functions&lt;br /&gt;
     {&lt;br /&gt;
         //entry&lt;br /&gt;
         //{&lt;br /&gt;
         //    // Mandatory entries&lt;br /&gt;
         //    object      ;&lt;br /&gt;
         //    entry       ;&lt;br /&gt;
         //&lt;br /&gt;
         //    // Optional entries&lt;br /&gt;
         //    title       ;      // Default: take from dict name&lt;br /&gt;
         //    colour      ; // labels in range 0-255 (255 0 0)&lt;br /&gt;
         //    dashes      ;   // (4 1 1)&lt;br /&gt;
         //}&lt;br /&gt;
         Ux&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       Ux_initial;&lt;br /&gt;
         }&lt;br /&gt;
         Uy&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       Uy_initial;&lt;br /&gt;
         }&lt;br /&gt;
         Uz&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       Uz_initial;&lt;br /&gt;
         }&lt;br /&gt;
         p&lt;br /&gt;
         {&lt;br /&gt;
             object      solverInfo1;&lt;br /&gt;
             entry       p_initial;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Optional entries&lt;br /&gt;
     //xMin            ;&lt;br /&gt;
     //xMax            ;&lt;br /&gt;
     //yMin            ;&lt;br /&gt;
     //yMax            ;&lt;br /&gt;
     //xlabel          ;  // &amp;quot;Iteration&amp;quot;;&lt;br /&gt;
     //ylabel          ;  // &amp;quot;log10(Initial residual)&amp;quot;;&lt;br /&gt;
     //width           ;&lt;br /&gt;
     //height          ;&lt;br /&gt;
     //strokeWidth     ;&lt;br /&gt;
     //logScaleX       ;&lt;br /&gt;
     //logScaleY       ;&lt;br /&gt;
     //drawGrid        ;&lt;br /&gt;
 &lt;br /&gt;
     // Inherited entries&lt;br /&gt;
     //...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/graphFunctionObject&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike&lt;br /&gt;
&lt;br /&gt;
=== New finite-area function object: surfaceCourantNumber ===&lt;br /&gt;
A new finite-area function object, surfaceCourantNumber, calculates the surface Courant number field at finite-area face centres.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
A minimal example usage is as follows:&lt;br /&gt;
 &amp;lt;code&amp;gt;surfaceCourantNumber1&lt;br /&gt;
 {&lt;br /&gt;
     // Mandatory entries&lt;br /&gt;
     type        surfaceCourantNumber;&lt;br /&gt;
     libs        (regionFaModels);&lt;br /&gt;
 &lt;br /&gt;
     // Optional entries&lt;br /&gt;
     area        &amp;lt;word&amp;gt;;&lt;br /&gt;
     result      &amp;lt;word&amp;gt;;&lt;br /&gt;
     phis        &amp;lt;word&amp;gt;;&lt;br /&gt;
     rho         &amp;lt;word&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
     // Inherited entries&lt;br /&gt;
     ...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/regionFaModels/functionObjects/surfaceCourantNumber/surfaceCourantNumber.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #706&lt;br /&gt;
&lt;br /&gt;
=== Improved solver function objects: Outer-loop convergence check ===&lt;br /&gt;
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.&lt;br /&gt;
A minimal example usage is as follows:&lt;br /&gt;
 &amp;lt;code&amp;gt;scalarTransport1&lt;br /&gt;
 {&lt;br /&gt;
     // Optional entries&lt;br /&gt;
     tolerance    &amp;lt;scalar&amp;gt;;&lt;br /&gt;
     ...&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/solvers/scalarTransport/scalarTransport.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/solvers/energyTransport/energyTransport.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/solvers/electricPotential/electricPotential.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #699&lt;br /&gt;
&lt;br /&gt;
== Parallel ==&lt;br /&gt;
&lt;br /&gt;
=== Improved Non-Blocking Exchange (NBX) ===&lt;br /&gt;
In OpenFOAM-v2306 an experimental 'non-blocking consensus exchange' (NBX) option was introduced - see configuration switches&lt;br /&gt;
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):&lt;br /&gt;
 &amp;lt;code&amp;gt;OptimisationSwitches&lt;br /&gt;
 {&lt;br /&gt;
     // Additional PstreamBuffers tuning parameters (experimental)&lt;br /&gt;
     //    0 : (legacy PEX)&lt;br /&gt;
     //        * all-to-all for buffer sizes [legacy approach]&lt;br /&gt;
     //        * point-to-point for contents&lt;br /&gt;
     //    1 : (hybrid PEX)&lt;br /&gt;
     //        * NBX for buffer sizes [new approach]&lt;br /&gt;
     //        * point-to-point for contents&lt;br /&gt;
     pbufs.tuning    1;&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
Provided the following timings:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|NBX&lt;br /&gt;
|Time (s)&lt;br /&gt;
|-&lt;br /&gt;
|No&lt;br /&gt;
|28k&lt;br /&gt;
|-&lt;br /&gt;
|Yes&lt;br /&gt;
|18k&lt;br /&gt;
|}&lt;br /&gt;
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()).&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/AMIInterpolation/AMIInterpolation&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #704&lt;br /&gt;
&lt;br /&gt;
=== Improved finite-area framework ===&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
A series of carefully tested commits improve parallel consistency, mainly to address the following core routines:&lt;br /&gt;
 &amp;lt;code&amp;gt;makeLPN&lt;br /&gt;
 makeWeights&lt;br /&gt;
 makeDeltaCoeffs&lt;br /&gt;
 makeCorrectionVectors&lt;br /&gt;
 makeSkewCorrectionVectors&amp;lt;/code&amp;gt;&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteArea/faMesh/faMeshDemandDrivenData.C&lt;br /&gt;
* $FOAM_SRC/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #708&lt;br /&gt;
&lt;br /&gt;
=== Improved reconstructParMesh ===&lt;br /&gt;
The utility reconstructParMesh can reconstruct finite-area ('faMesh') meshes, useful when the finite-area mesh is generated in parallel.&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/parallelProcessing/reconstructParMesh&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #711&lt;br /&gt;
&lt;br /&gt;
=== Improved distributed tri-surfaces ===&lt;br /&gt;
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:&lt;br /&gt;
 &amp;lt;code&amp;gt;box&lt;br /&gt;
 {&lt;br /&gt;
     file &amp;quot;box.obj&amp;quot;;&lt;br /&gt;
     type distributedTriSurfaceMesh;&lt;br /&gt;
 &lt;br /&gt;
     // Override the decomposition method&lt;br /&gt;
     numberOfSubdomains  8;&lt;br /&gt;
     method              hierarchical;&lt;br /&gt;
     n                   (2 2 2);&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
It can optionally run without duplicating triangles by specifying&lt;br /&gt;
 &amp;lt;code&amp;gt;decomposeUsingBbs   false;&amp;lt;/code&amp;gt;&lt;br /&gt;
This avoids excessive memory usage, and stores a per-vertex normal and so can be extended to have smooth normals.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/distributedTriSurfaceMesh&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request #720&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
=== Updated to C++17 ===&lt;br /&gt;
The minimum C++ standard has been increased from C++14 to C++17 to help support ongoing GPU developments&lt;br /&gt;
&lt;br /&gt;
* Commit: #44f7a726&lt;br /&gt;
* Source: $WM_PROJECT_DIR/wmake/rules&lt;br /&gt;
&lt;br /&gt;
=== New tutorial demonstrations ===&lt;br /&gt;
&lt;br /&gt;
==== missingCorner ====&lt;br /&gt;
This is a simple tutorial to showcase various mesh utilities:&lt;br /&gt;
&lt;br /&gt;
* cellDecomposition functionObject to create a tet mesh&lt;br /&gt;
* polyDualMesh to convert the tets to polyhedra&lt;br /&gt;
* surfaceMeshExtract to create additional pointPatches&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/field/cellDecomposer&lt;br /&gt;
* $FOAM_UTILITIES/mesh/manipulation/polyDualMesh&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/polyDualMesh/missingCorner&lt;br /&gt;
&lt;br /&gt;
==== damBreakLeakage ====&lt;br /&gt;
This is a variant of the damBreak tutorial to showcase using cyclicACMI to control flow. In this tutorial&lt;br /&gt;
&lt;br /&gt;
* additional (cyclicACMI) baffles block the flow of the liquid&lt;br /&gt;
* at time 0.5s a set of faces at the bottom half of the blockage open&lt;br /&gt;
* this is done through a cyclicACMI which uses the scale factor to convert from fully uncoupled, i.e. wall, to fully coupled.&lt;br /&gt;
* the scale is set through a coded Function1 entry in the patch definition in constant/polyMesh/boundary&lt;br /&gt;
* Initial condition: closed blockage (red)&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/primitives/functions/Function1/Coded&lt;br /&gt;
* $FOAM_SRC/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPolyPatch&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/multiphase/interFoam/RAS/damBreakLeakage&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Some developments are integrated directly into the main code base, e.g.&lt;br /&gt;
&lt;br /&gt;
* Community contribution: Improved adjoint optimisation more...&lt;br /&gt;
* Community contribution: Improved shielding function for SA-DDES turbulence model more...&lt;br /&gt;
&lt;br /&gt;
If you would like to explore the possibility to collaborate and include your developments, please contact us.&lt;br /&gt;
&lt;br /&gt;
=== New contributions to the Turbulence Technical Committee repository ===&lt;br /&gt;
We are pleased to announce the release of the following two repositories under the umbrella of the Turbulence Technical Committee repository:&lt;br /&gt;
&lt;br /&gt;
* gammaSST : A three-equation transition and turbulence model.&lt;br /&gt;
* HelicitySpalartAllmaras : Spalart-Allmaras turbulence model with Liu et al.'s helicity correction.&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/$WM_PROJECT_DIR/plugins/turbulence-community&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Jiří Fürst, Jeff Defoe, and their colleagues for their valuable contributions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== 謝辞 ===&lt;br /&gt;
&lt;br /&gt;
==== 謝辞 ====&lt;br /&gt;
OpenFOAMに貢献してくれた以下の方々に感謝します。&lt;br /&gt;
&lt;br /&gt;
==== 特別感謝 ====&lt;br /&gt;
&lt;br /&gt;
* Johan Rønby Pedersen: マルチフェーズフレームワークの並列化に貢献&lt;br /&gt;
* マーカス・ノードランド：流体-多孔質界面のモデリングに関する技術的な議論に協力してくれている。&lt;br /&gt;
&lt;br /&gt;
==== 課題追跡への貢献 ====&lt;br /&gt;
&lt;br /&gt;
* ilyapopov (Ilya Popov) リポジトリ内の設定ファイルの迷子？ GL#3192&lt;br /&gt;
* carlo.fiorina (carlo fiorina) v2406 で READ_IF_PRESENT の動作に一貫性がない GL#3193&lt;br /&gt;
* xpqiu (xpqiu) SPDP モードで実行するとソルバがクラッシュする GL#3194&lt;br /&gt;
* gng015 (gng) reconstructParMesh がバイナリでメッシュが大きすぎる場合，メッシュの再構築でスタックする GL#3196&lt;br /&gt;
* stefano.garbin (Stefano Garbin) OF2406 で CFMESH 実行ファイルが見つからない GL#3198&lt;br /&gt;
* duyquang.tdm.bd (Quang Nguyen) OpenFOAM-v2406 での ccmToFoam のクロスコンパイル時のエラー GL#3199&lt;br /&gt;
* ChrisSessler (Christian Sessler) multiComponentMixture と組み合わせた hConst がすべての参照エンタルピーに最初の種の Tref を使用する Href GL#3200&lt;br /&gt;
* ChennaK85 (Chennakesava Kadapa) sixDoFRigidBody の Newmark および Crank-Nicolson スキームの問題 GL#3202&lt;br /&gt;
* santiagomarquezd (Santiago Marquez Damian) 3 次元未満でテンソルの球面部分が間違って計算される GL#3203&lt;br /&gt;
* DL (David Ludlow) overPimpleDyMFoam と v2406 における kOmegaSST 分割の不具合 GL#3204&lt;br /&gt;
* bPaillard (Benoit Paillard) オーバーセットチュートリアルにおける圧力変動 GL#3207&lt;br /&gt;
* mzy (Zeyao Ma) icoReactingMultiphaseInterFoam V2206 で凝固問題を解くと固相が常に動いてしまう GL#3208&lt;br /&gt;
* zzphub (Zhipeng Zhang) 2306 の debian12 ソースビルドに失敗 GL#3210&lt;br /&gt;
* Charlfmare (Charl Mare) SwirlFanVelocity が新しい OF バージョンで動作しない GL#3211&lt;br /&gt;
* lizhisongsjtu (zhisong li) bug: solitary wave - McCowan and Grimshaw GL#3212&lt;br /&gt;
* daniel.jasinski (Daniel) buoyantSimpleFoam の圧力制御の欠落 GL#3213&lt;br /&gt;
* pferro (Paulin FERRO) solidificationMeltingSource がバグっぽい GL#3214&lt;br /&gt;
* rbonin (Rémi Bonin) precompiled OpenFOAM (v2406 / Windows 10) で表面膜を使用すると reactingParcelFoam がクラッシュする GL#3216&lt;br /&gt;
* takuya (takuya yamamoto) blockMeshDict の project 関数のチュートリアルの記述が正しくない GL#3217&lt;br /&gt;
* snaka (Shinji Nakagawa) foamMonitor が Gnuplot バージョン 6 の 'reread' コマンドの非推奨のためにグラフの更新に失敗する GL#3219&lt;br /&gt;
* ilyapopov (Ilya Popov) energyTransport が dynamicRefineFvMesh と組み合わせて動作しない GL#3221&lt;br /&gt;
* ntilton (Nils Tilton) fixedProfile 条件が最後のタイムステップからシミュレーションを再開しない GL#3223&lt;br /&gt;
* porori (takashi suzuki) diffusionGasEvaporation: 例題の使い方とチュートリアルが不適切 &amp;lt;= アントワーヌ方程式の定義が一般的でない（第2項の符号が逆）． GL#3224&lt;br /&gt;
* raphalace (Raphael Aranha) SymmetryPlane と ABL シミュレーションの不具合 GL#3226&lt;br /&gt;
* porori (takashi suzuki) snappyHexMesh v2012 以降で、サーフェスがサイクリックタイプの境界に接続されている場合、サーフェスレイヤーを追加できない。 GL#3227&lt;br /&gt;
* Skolo (Robert) wallShearStress, yPlus の入力フィールドを指定できるようにした GL#3228&lt;br /&gt;
* flex99 (Felix Burger) メッシュとフィールドをインポートする際の vtkUnstructuredToFoam エラー GL#3230&lt;br /&gt;
* acassinelli (Andrea Cassinelli) v2406 が v2312 より最大 ~3% 遅くなった GL#3231&lt;br /&gt;
* croquemadame (Juan Salazar) 後処理のためにフォームファイルのサーフェスフォーマットをディスクから指定の場所に読み込むクラス (foamSurfaceReader) GL#3232&lt;br /&gt;
* gerlero (Gabriel Gerlero) CGAL 6 との互換性 GL#3234&lt;br /&gt;
* xuegy (Guanyang Xue) SolidificationMeltingSource の異なる液相線と固相線 GL#3235&lt;br /&gt;
* gerlero (Gabriel Gerlero) dl.openfoam.comがGitHub Actionsからのリクエストを拒否している GL#3236&lt;br /&gt;
* cthorenz (Carsten Thorenz) interFoam： 可変密度乱流モデル使用時のせん断応力計算が正しくない / 動作しない GL#3237&lt;br /&gt;
* mfikrikasim (Mohd Fikri Kasim) OpenFoam v2306 - SnappyHexMesh の問題 GL#3239&lt;br /&gt;
* hikassem (Hassan Kassem) ConeNozzleInjection が均一でない GL#3240&lt;br /&gt;
* jczhang07 (Junchao Zhang) &amp;quot;openfoam/etc/bashrc&amp;quot; が非常に遅い GL#3245&lt;br /&gt;
* jczhang07 (Junchao Zhang) Icx コンパイラで `pthread_create' への未定義参照のリンクエラー GL#3251&lt;br /&gt;
* djarecki (Dominic Jarecki) EASY FIX: アクティブ熱物理モデルに線形 EOS を含める GL#3252&lt;br /&gt;
* jczhang07 (Junchao Zhang) &amp;quot;petscFoam&amp;quot; を未定義のシンボルでロードできなかった GL#3253&lt;br /&gt;
* richardt (Richard Tribess) BUG: AMR および collisionModel pairCollision でラグランジアンソルバーを実行する際に storeGlobalPositions が呼び出されない GL#3256&lt;br /&gt;
* hungnguyenphd (Quoc Hung Nguyen) sphereDrag が非常に小さい粒子サイズで動作しない GL#3257&lt;br /&gt;
* rbonin (Rémi Bonin) 太陽計算機が 24 時間以上の実行時間で間違った太陽方向を提供する GL#3258&lt;br /&gt;
* jczhang07 (Junchao Zhang) '-fp-model precise は -fp-model=precise であるべき GL#3259&lt;br /&gt;
* porori (takashi suzuki) interCondensatingEvaporatingFoam with InterfaceHeatResistance モデルが蒸発による体積変化を適切に評価しない GL#3261&lt;br /&gt;
* licg1981 (CHENGGONG LI) foamInstallationTest が gcc/g++ のバージョンを読み込めない GL#3263&lt;br /&gt;
* lizhisongsjtu (zhisong li) of2206: vectorCodedSource が動作しない。 GL#3264&lt;br /&gt;
* cibanez (Cristóbal Ibáñez) dynamicMotionSolverFvMeshMAMI の再実装 GL#3265&lt;br /&gt;
* cthorenz (Carsten Thorenz) snappyHexMesh： レイヤー追加処理でパッチ形状が破壊されることがある GL#3270&lt;br /&gt;
* jczhang07 (Junchao Zhang) RPATH リンクの失敗 GL#3274&lt;br /&gt;
* janga (Jan Gärtner) v2406 における boundaryInternalField() のコンパイルエラー GL#3277&lt;br /&gt;
* johan_roenby (Johan Roenby) BUG: plicRDF が周期的なパッチを越えて正常に動作しない GL#3279&lt;br /&gt;
* haampie (Harmen Stoppels) stubs サブディレクトリへの rpath が見つからない GL#3283&lt;br /&gt;
* sreplogl (Scott Replogle) マスターの初期クローンは成功したが、無効なパスのためチェックアウトに失敗 GL#3284&lt;br /&gt;
* janga (Jan Gärtner) Parcels の origProcId の命名を統一する GL#3287&lt;br /&gt;
&lt;br /&gt;
== 会社概要 ==&lt;br /&gt;
OpenFOAMは、ESI-OpenCFDのコアチームによって制作されています。&lt;br /&gt;
&lt;br /&gt;
* Andrew Heather&lt;br /&gt;
* Mattijs Janssens&lt;br /&gt;
* Mark Olesen&lt;br /&gt;
* Prashant Sonakar&lt;br /&gt;
* Pawan Ghildiyal&lt;br /&gt;
* Kutalmış Berçin&lt;br /&gt;
* Matej Forman&lt;br /&gt;
* Chiara Pesci&lt;br /&gt;
* Martin Lichtmes&lt;br /&gt;
* Jiri Polansky&lt;br /&gt;
* Ann Ronchetti&lt;br /&gt;
* Fred Mendonça&lt;br /&gt;
* Swapnil Salokhe&lt;br /&gt;
&lt;br /&gt;
グローバルESIチームからの幅広いサポート&lt;br /&gt;
&lt;br /&gt;
* ESI Group (GmbH)&lt;br /&gt;
* ESI Group (ESI Software (India) Private Limited)&lt;br /&gt;
* ESI Group (North America)&lt;br /&gt;
* ESI Group (Nihon ESI)&lt;br /&gt;
* ESI webteam&lt;br /&gt;
&lt;br /&gt;
次からの寄付もある。&lt;br /&gt;
&lt;br /&gt;
* Marian Fuchs: Upstream CFD GmbH&lt;br /&gt;
* Vaggelis Papoutsis: PCOpt/NTUA and FOSS GP&lt;br /&gt;
* The OpenFOAM Community&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2412_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=862</id>
		<title>OpenFOAM v2412 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2412_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=862"/>
		<updated>2024-12-28T03:17:28Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: First comiit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ESI OpenCFD Release OpenFOAM® v2412 ==&lt;br /&gt;
OpenCFD is pleased to announce the December 2024 release of OpenFOAM® v2412. This release extends OpenFOAM-v2406 features across many areas of the code. The new functionality represents development sponsored by OpenCFD's customers, internally funded developments, and integration of features and changes from the OpenFOAM community.&lt;br /&gt;
&lt;br /&gt;
OpenFOAM is distributed by OpenCFD under the GPL License. In addition to source code packages suitable for compilation on a variety of Linux and other POSIX systems, this release also has a number of pre-compiled binary packages&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux: packaged installation for Ubuntu (coming soon)&lt;br /&gt;
* openSUSE Linux: packaged installation for (coming soon)&lt;br /&gt;
* Redhat Linux variants: packaged installation for (coming soon)&lt;br /&gt;
* apptainer images: available from dockerhub (coming soon)&lt;br /&gt;
&lt;br /&gt;
Windows users have three options for pre-compiled packages (more information):&lt;br /&gt;
&lt;br /&gt;
* Using Windows Subsystem for Linux (based on Ubuntu, openSUSE etc.)&lt;br /&gt;
* Native executables with cross-compilation&lt;br /&gt;
* A docker installation&lt;br /&gt;
&lt;br /&gt;
OpenFOAM apptainer support is provided via description files rather than pre-assembled images:&lt;br /&gt;
&lt;br /&gt;
* See packaging/containers&lt;br /&gt;
&lt;br /&gt;
Mac OSX users have the option to compile from source, or use Docker containers for pre-compiled packages (more information).&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
* Help for users is provided in the user upgrade guide&lt;br /&gt;
* Help for developers is provided in the developer upgrade guide&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
* Improved createPatch utility more...&lt;br /&gt;
* Improved snappyHexMesh: buffer layers before snapping more...&lt;br /&gt;
&lt;br /&gt;
== Boundary conditions ==&lt;br /&gt;
&lt;br /&gt;
* Improved pointMesh boundary handling more...&lt;br /&gt;
* New point patch functionality more...&lt;br /&gt;
&lt;br /&gt;
== Numerics ==&lt;br /&gt;
&lt;br /&gt;
* New fused discretisation more...&lt;br /&gt;
* New GAMG agglomeration caching more...&lt;br /&gt;
* Improved lduMatrix, lduAddressing more...&lt;br /&gt;
* Improved wall distance more...&lt;br /&gt;
* Community contribution: Improved adjoint optimisation more...&lt;br /&gt;
* New zoneBlended scheme more...&lt;br /&gt;
&lt;br /&gt;
== Solvers and physical models ==&lt;br /&gt;
&lt;br /&gt;
* Community contribution: Improved shielding function for SA-DDES turbulence model more...&lt;br /&gt;
* Improved Lagrangian injection model: coneNozzleInjection more...&lt;br /&gt;
* Improved solid-body motion function: tabulated6DoFMotion more...&lt;br /&gt;
* New finite-area framework: Film-separation models more...&lt;br /&gt;
* Improved simpleFoam: new dynamicMesh support more...&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
* New report generation more...&lt;br /&gt;
* New graph generation more...&lt;br /&gt;
* New finite-area function object: surfaceCourantNumber more...&lt;br /&gt;
* Improved solver function objects: Outer-loop convergence check more...&lt;br /&gt;
&lt;br /&gt;
== Parallel ==&lt;br /&gt;
&lt;br /&gt;
* Improved Non-Blocking Exchange (NBX) more...&lt;br /&gt;
* Improved finite-area framework more...&lt;br /&gt;
* Improved reconstructParMesh more...&lt;br /&gt;
* Improved distributed tri-surfaces more...&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
* Updated to c++17 more...&lt;br /&gt;
* New tutorial demonstrations more...&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
&lt;br /&gt;
* New contributions to the Turbulence Technical Committee repository more...&lt;br /&gt;
* Thank you more...&lt;br /&gt;
&lt;br /&gt;
== About us ==&lt;br /&gt;
OpenFOAM is produced by the core ESI-OpenCFD team&lt;br /&gt;
&lt;br /&gt;
* Andrew Heather&lt;br /&gt;
* Mattijs Janssens&lt;br /&gt;
* Mark Olesen&lt;br /&gt;
* Prashant Sonakar&lt;br /&gt;
* Pawan Ghildiyal&lt;br /&gt;
* Kutalmış Berçin&lt;br /&gt;
* Matej Forman&lt;br /&gt;
* Chiara Pesci&lt;br /&gt;
* Martin Lichtmes&lt;br /&gt;
* Jiri Polansky&lt;br /&gt;
* Ann Ronchetti&lt;br /&gt;
* Fred Mendonça&lt;br /&gt;
* Swapnil Salokhe&lt;br /&gt;
&lt;br /&gt;
With wider support from the global ESI team&lt;br /&gt;
&lt;br /&gt;
* ESI Group (GmbH)&lt;br /&gt;
* ESI Group (ESI Software (India) Private Limited)&lt;br /&gt;
* ESI Group (North America)&lt;br /&gt;
* ESI Group (Nihon ESI)&lt;br /&gt;
* ESI webteam&lt;br /&gt;
&lt;br /&gt;
And contributions from&lt;br /&gt;
&lt;br /&gt;
* Marian Fuchs: Upstream CFD GmbH&lt;br /&gt;
* Vaggelis Papoutsis: PCOpt/NTUA and FOSS GP&lt;br /&gt;
* The OpenFOAM Community&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2406_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=861</id>
		<title>OpenFOAM v2406 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2406_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=861"/>
		<updated>2024-12-03T14:30:52Z</updated>

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

		<summary type="html">&lt;p&gt;Mmer547: /* リリースノート */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではOpenFOAMについてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
&lt;br /&gt;
'''OpenCFD'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2406 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2312リリースノート|OpenFOAM v2312 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2306リリースノート|OpenFOAM v2306 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2212 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2206 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2112 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2106 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/OF2012-3625e0d8029b40bda20fafe481dcbd95 OpenFOAM v2012 リリースノート]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2006 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1912 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1906 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1812 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1806 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The OpenFOAM Foundation'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 12 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 11 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 10 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 9|OpenFOAM 9 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 8 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v7 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v6.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 3.0.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 2.4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
==スターティングガイド==&lt;br /&gt;
[[OpenFOAMについて]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのインストール]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e63d4cf76ea2fea659b2 チュートリアルケースの実行]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/24b8491bf9776c3a27db OpenFOAMで入力できる項目の調べ方]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e4b13100e15508981a85 OpenFOAMの$FOAM変数]&lt;br /&gt;
&lt;br /&gt;
==困った時は？==&lt;br /&gt;
[https://qiita.com/mmer547/items/7c7c257dcaf2efbc730b OpenFOAM Google Groupに投稿する際に抑えるポイント]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/6b041536e2ac5dd17721 OpenFOAMで計算するネタがない時の探し方]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのエラーメッセージの対応]]&lt;br /&gt;
&lt;br /&gt;
==プリプロセス==&lt;br /&gt;
&lt;br /&gt;
===形状作成===&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%EF%BC%9A%E5%BD%A2%E7%8A%B6%E4%BD%9C%E6%88%90 形状作成ツールまとめ]&lt;br /&gt;
&lt;br /&gt;
===メッシュ===&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%E3%81%AE%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 OpenFOAMのメッシャーについて]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:blockMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:snappyHexMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:cfMesh]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/9fca38b8e8eadc869bb8 SalomeでOpenFOAMのメッシュを用意する方法]&lt;br /&gt;
&lt;br /&gt;
===境界条件===&lt;br /&gt;
[[境界条件]]&lt;br /&gt;
&lt;br /&gt;
==ソルバ==&lt;br /&gt;
[[simpleFoamについて]]&lt;br /&gt;
&lt;br /&gt;
[[ExecutionTimeとClockTimeについて]]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/SIMPLEC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%A8%88%E7%AE%97%E5%AE%9F%E8%A1%8C%EF%BC%88OpenFOAM3.0.1%EF%BC%89 SIMPLECを使用した計算実行（OpenFOAM3.0.1）]&lt;br /&gt;
&lt;br /&gt;
===並列計算の実行方法===&lt;br /&gt;
&lt;br /&gt;
[[decomposeParDictの中身]]&lt;br /&gt;
&lt;br /&gt;
===エラーメッセージ===&lt;br /&gt;
[[v1806のエラーメッセージ]]&lt;br /&gt;
&lt;br /&gt;
==ポストプロセス==&lt;br /&gt;
[[ログファイルから残差ログを抽出]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e463235ddb93f08db68a OpenFOAMのpostProcessについて]&lt;br /&gt;
&lt;br /&gt;
==チュートリアルケース==&lt;br /&gt;
[[チュートリアルケース|チュートリアルケース一覧]]&lt;br /&gt;
&lt;br /&gt;
==カスタマイズ==&lt;br /&gt;
[https://qiita.com/mmer547/items/2997bf8c71fe1e2423c9 OpenFOAM ソースコードの探し方]&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/foam-extend_4.0%E3%82%92Bash_on_Ubuntu_on_Windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB foam-extend 4.0をBash on Ubuntu on Windowsにインストール]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/ESI_Windows%E7%89%88OpenFOAM%E3%81%AE%E5%B0%8E%E5%85%A5 ESI Windows版OpenFOAMの導入]&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/OpenCAE/Supercomputer-OpenFOAM-Training/-/wikis/home スーパーコンピュータOpenFOAM講習会]&lt;br /&gt;
&lt;br /&gt;
== 関連サービス ==&lt;br /&gt;
=== プリプロセス ===&lt;br /&gt;
[https://www.xsim.info/products/products.html XSim.Work]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDEXCS-OpenFOAM%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E9%87%8E%E6%9D%91-%E6%82%A6%E6%B2%BB/dp/4621306138/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-5 オープンCAEのためのDEXCS for OpenFOAMハンドブック]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E7%AC%AC2%E7%89%88-%E4%B8%80%E8%88%AC%E7%A4%BE%E5%9B%A3%E6%B3%95%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691025/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-1 OpenFOAMによる熱移動と流れの数値解析(第2版) ]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E5%B7%9D%E7%95%91-%E7%9C%9F%E4%B8%80/dp/4844379526/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-6　OpenFOAMの歩き方]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%83%A9%E3%83%90%E3%82%A4%E3%83%88/dp/4627691610/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-2 OpenFOAMライブラリリファレンス]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Tomislav-Mari%C2%B4c/dp/4627670915/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-3 OpenFOAMプログラミング]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691017/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-4 OpenFOAMによる熱移動と流れの数値解析]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_12_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=859</id>
		<title>OpenFOAM 12 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_12_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=859"/>
		<updated>2024-12-02T12:38:19Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「OpenFOAM Foundationは、オープンソースCFDツールボックスOpenFOAMのバージョン12のリリースを発表します。 バージョン12では、モジュール式ソルバーとNCC（Non Conformal Coupling）を活用し、メッシングやカップリングの簡素化など、複数の領域を含むシミュレーションを改善しました。  インジェクションや分配、並列分解、再分配、負荷分散など、粒子コー…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenFOAM Foundationは、オープンソースCFDツールボックスOpenFOAMのバージョン12のリリースを発表します。 バージョン12では、モジュール式ソルバーとNCC（Non Conformal Coupling）を活用し、メッシングやカップリングの簡素化など、複数の領域を含むシミュレーションを改善しました。  インジェクションや分配、並列分解、再分配、負荷分散など、粒子コードの書き換え作業が続いている。 新しい便利な境界条件や、入力値に[bar]などの単位を含めるオプションがあり、それに応じて変換されます。 TUbuntu24.04および22.04用のopenfoam12パッケージが標準のparaviewパッケージを使用するようになり、サードパーティ製ソフトウェアのインストールがより簡単になりました。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 12には次のようなハイライトがある。&lt;br /&gt;
&lt;br /&gt;
* モジュール式ソルバー：他の変数の方程式のための1変数のソース項をサポートしています。&lt;br /&gt;
* 多相：質量、運動量、熱伝導、固相のモデルの改良。&lt;br /&gt;
* 乱流モデリング：簡略化および補正された壁関数のロバストな制限。&lt;br /&gt;
* 熱：粘性加熱モデルを追加し、熱力学的特性の名称を改良。&lt;br /&gt;
* 粒子追跡：一般化された射出と粒子分布。&lt;br /&gt;
* メッシュ：メッシュ生成と複数のメッシュ領域の結合をアップグレード。&lt;br /&gt;
* 並列実行：負荷分散、分解、再分配のための効率的なオプション。&lt;br /&gt;
* ファンクション・オブジェクト：system/functionsファイルに移動し、新しいファンクション・オブジェクトを追加。&lt;br /&gt;
* モデル：質量の連続性に追加される体積と質量のソース。&lt;br /&gt;
* 境界条件：新しい圧力、速度、温度の境界条件。&lt;br /&gt;
* ケース構成：パラメータには単位を含めることができる（例：[bar]）。&lt;br /&gt;
* プログラミング：ソースコードを検索するfoamFindスクリプト、コード化された関数オブジェクトの例。&lt;br /&gt;
* その他 ParaViewと分解ライブラリのインストールがより簡単になりました。&lt;br /&gt;
* 722件のコードコミット、100件以上の問題解決。&lt;br /&gt;
* ISO/IEC 14882:2011 (C++14): GCC v5.5+、Clang v16+でテスト済み（v10+でも動作するはず）。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 12は、以下のプラットフォーム用にパッケージ化されています：&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux: Ubuntu 20.04、22.04、24.04用のパッケージインストール；&lt;br /&gt;
* Windows：UbuntuパックでLinux用のWindowsサブシステムを使用してインストールします；&lt;br /&gt;
* cmacOS: UbuntuパックでCanonical Multipassを使用したインストール。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 12 Source Packは、適切なLinuxプラットフォームでコンパイルできます。&lt;br /&gt;
&lt;br /&gt;
== モジュール式ソルバー ==&lt;br /&gt;
&lt;br /&gt;
* 一般： ソルバーモジュールによる入力パラメータの再読み込みがよりシンプルで効率的になりました[ commit 6054b1 ]。 多領域ケースに、特定の許容値に達したときに解を停止する、より単純なコントロールが含まれるようになりました[ commit 815f0b ]。&lt;br /&gt;
* 非圧縮ソルバーと圧縮ソルバー： dnsFoamソルバーはOUForce fvModelを持つincompressibleFluidソルバーモジュールに置き換えられました。&lt;br /&gt;
* 堅実なソルバー： 熱物理モデル補正ステップを非直交補正ループ内に移動することにより、固体ソルバーモジュールを修正しました。&lt;br /&gt;
* フィルムソルバー： isothermalFilmソルバーモジュールでインピンジメント圧力が修正されました[ commit 0b321e ]。&lt;br /&gt;
* 数値計算：異なる変数に関する方程式に適用される1変数のソース項用の新しい sourceProxy() 関数を作成しました。例えば、体積/質量ソースを圧力方程式（密度ではなく）に適用します。[コミット a5ea0b ].&lt;br /&gt;
&lt;br /&gt;
== 多相 ==&lt;br /&gt;
&lt;br /&gt;
* 運動量移動: multiphaseEulerFoamに新しい陰解法抗力アルゴリズムが追加され、小粒子やEuler-VoFの高抗力ケースの収束が大幅に改善されました[ commit 5fd304 ]。 新しい陰解法による仮想質量力の実装により、気泡流ケースの収束性が大幅に改善されました[ commit 18200e ]。&lt;br /&gt;
* 物質移動: multiphaseEulerFoam が均質凝結と相分離のモデルを含むようになりました [ commit 046680c4 ]。 coefficientMassTransfer fvModelは2相間の物質移動を生成するプロトタイプの例です[ commit 2f018f ]。&lt;br /&gt;
* 熱伝導： multiphaseEulerソルバーに単純なPrandtl熱伝達モデルを追加し、対応する抗力モデルの運動量伝達係数に比例した熱伝達係数を作成するようにしました[ commit 01d0af39 ]。&lt;br /&gt;
* 固相：固相の新しい熱相モデルを追加しました[ commit 020463 ]。 定常相のサポートを改善しました[ commit 9c3a40 ]。 新しいphaseSolidThermophysicalTransportModelクラスを使用するように更新し、定常固相での異方性伝導をサポートしました[ commit 5e0387 ]。 等温定常固相のための新しいIsothermalSolidPhaseModel [ commit ad3d25 ]。&lt;br /&gt;
* 境界条件： multiphaseExternalTemperature境界条件は、multiphaseFluidソルバーモジュールのexternalTemperatureを提供します[ commit 6fce00 ]。&lt;br /&gt;
* インターフェイスのキャプチャ： 多相ソルバーにおいて、PLICやMPLICなどの圧縮界面スキームをCrank-Nicolson時間スキーム[ commit 7ec1e2 ]でよりロバストにしました。&lt;br /&gt;
* 表面波： 新しい不規則表面波モデル [ commit c0da2a ]。 GodaJONSWAP波浪スペクトルは、風速とフェッチの代わりに有義波高と周期が指定される、JONSWAPスペクトルの代替近似パラメータ化を提供します[ commit cbec0045 ]。&lt;br /&gt;
&lt;br /&gt;
== 乱流モデリング ==&lt;br /&gt;
&lt;br /&gt;
* RASのモデリング： 乱流散逸εの境界の下限は、安定性とロバスト性を改善するεの最小値ではなく、最大乱流粘性ナットに基づいています[ commit 854f4541 ]また、乱流散逸ωについても同じです[ commit 195dfbe1 ]。&lt;br /&gt;
* 壁関数： alphatJayatillekeWallFunction熱壁関数は、実装を単純化し、より一貫性を持たせるために、それぞれのナット運動量壁関数のyPlusを使用します[ commit 054a5206 ]。 乱流壁関数のωとεのコーナー重み付けを再実装しました[ commit 1218bd08 ]。非整形多領域の場合の壁関数の境界条件のマッピングを修正しました[ commit b6caf356 ]。&lt;br /&gt;
&lt;br /&gt;
== 熱 ==&lt;br /&gt;
&lt;br /&gt;
* エネルギーだ： 新しいviscousHeating fvModelが、全エネルギー方程式に粘性加熱源を追加しました[ commit bbc39318 ]。&lt;br /&gt;
* 熱力学： 熱力学のすべての物性関数は、エネルギーやエンタルピーが特定の量であることを示すために小文字を使うようになりました[ commit abe43a95 ]。&lt;br /&gt;
&lt;br /&gt;
== パーティクルとトラッキング ==&lt;br /&gt;
&lt;br /&gt;
* 分配金： 分布のコードを一般化し、書き換え助詞のコードを含め、より広く使えるようにしました [ commit e1e0e258 ]。&lt;br /&gt;
* 注射をする： ラグランジュモデリングにおいて、パッチインジェクションモデルの U0 エントリに、初速度を補間するフィールド名を指定できるようになりました[ commit 96b61305 ]。&lt;br /&gt;
* データ処理： 新しいvolumeFraction関数は粒子雲の体積率を計算します[ commit 31b096 ]。&lt;br /&gt;
&lt;br /&gt;
== メッシュ ==&lt;br /&gt;
&lt;br /&gt;
* 一般的なことだ： dynamicMeshライブラリは、保守性を向上させるためにコードを大幅にリファクタリングした結果、polyTopoChangeライブラリとmotionSolversライブラリに分離されました[ commit b9fe7df3 ]。&lt;br /&gt;
* 生成： extrudeMeshに新しいcylindricalRadial押し出しメソッドが追加されました [ commit e880ec ]. extrudeMeshは新しく生成されたセルを1つ以上のセルゾーンに割り当てることができるようになりました [ commit 33aa4496 ]. snappyHexMeshは-regionオプションを使ってリージョンメッシュを直接リージョンサブディレクトリに生成できるようになりました [ commit 9ace5366 ]. snappyHexMeshのレイヤー挿入のfeatureAngleパラメーターの使用を修正しました[ commit 47fa9bc6 ]。&lt;br /&gt;
* 複数リージョン：mergeMeshesは別々のメッシュ（別々のpolyMeshディレクトリ）のリストを1つのメッシュ（1つのpolyMeshディレクトリ）にまとめることができます[ commit f47e1b0b ]。 stitchMeshアプリケーションをnon-conformal coupledインターフェイスのパッチ交差機能を使用するように置き換えた [ commit 69da8f3d ]。&lt;br /&gt;
* 非共形結合： NCCを並列再分配（負荷分散）と適応的精密化でメッシュの動きに対応させる [ commit 9af6bd ]。 NCC などのメッシュスティッチャーのロバスト性を改善 [ commit 2057174b ]。&lt;br /&gt;
* Boundary: 新しい patchOrder ユーティリティでメッシュのパッチの並び替えができるようになりました [ commit 4707bc91 ]。&lt;br /&gt;
* その他 checkMeshユーティリティまたはcheckMesh関数オブジェクト(後者は移動メッシュの場合)を使ってメッシュをチェックすることができます。&lt;br /&gt;
* モーション マルチバルブICエンジンのメッシュモーションのための新しいfvMeshMover [ commit 7d65e66b ]。&lt;br /&gt;
* ゾーン：メッシュゾーンの処理が改善されました。[ コミット ca2cae8c] コードの重複を削減しました。[コミット4ad52ea1]&lt;br /&gt;
&lt;br /&gt;
== パラレルランニング ==&lt;br /&gt;
&lt;br /&gt;
* Lオードバランシング： パーティクルクラウドトラッキングやケミストリーの統合は、CPUロードキャッシングをオンにすることで、並列シミュレーション中に自動ロードバランシングを使用することができます[ commit 41705e9e ]。新しい parMETIS インターフェースは、ParMETIS ディストリビューターを使用したマルチ制約と再分配による負荷分散を提供した [ commit 40bcabf7 ]。 aachenBomb のチュートリアルの例では、ラグランジュと化学の両方による多制約の負荷分散を示しています [ commit e727809b ]。&lt;br /&gt;
* 分解と再配布: decomposePar が NCC を使用する際に nonConformalProcessorCyclic パッチを正しく作成するようになりました [ commit 89c818 ]。動的メッシュ精密化の並列ロバスト性を改善 [ commit cd133a28 ]。  特にsnappyHexMesh [ commit adfc80c4 ]を使って並列メッシュを作成するときに起こりうる、あるプロセッサが一時的にゼロセルを含むときに、Zoltanをメッシュの再配分に使えるようになりました; ParMETIS [ commit 3cdec1dc ]でも同じです。&lt;br /&gt;
&lt;br /&gt;
== 機能オブジェクト ==&lt;br /&gt;
&lt;br /&gt;
* 一般的なことだ： 関数オブジェクトは別の system/functions ファイルで設定されるべきで、不要な関数オブジェクトの読み込みやビルドを避けるためです [ commit de363dde ]。新しいfluidMaxDelta関数オブジェクトは、時間の関数として最大時間ステップとクーラント数を設定できます[ commit 277944 ]。writeObjects関数Objectは、指定されたオブジェクトが見つからない場合、オブジェクト・レジストリからすべてのオブジェクト名とその型を表示します[ commit 5039aec6 ]。パッチを操作する関数オブジェクトは、単一のパッチのpatchキーワードと複数のパッチのpatchキーワードの両方を読むことができます [ commit e5f48bfc ]。&lt;br /&gt;
* 力だ： 新しいmovingForcesとrigidBodyForces関数オブジェクトは、指定された、または計算された回転中心を持つ移動剛体の力とモーメントを計算し、書き込みます[ commit 2daceb90 ]。wallShearStress関数オブジェクトは、filmWall [ commit 898cb9b5 ]など、どのタイプのウォールパッチでも計算できます。&lt;br /&gt;
* フィールド cylindricalパッケージ関数オブジェクトはベクトル場を円筒座標に変換します[ commit 1622e190 ]。 新しいspecieFlux、specieAdvectiveFlux、specieDiffusiveFlux関数オブジェクトは流体種のフラックスをsurfaceScalarFieldとして計算します。&lt;br /&gt;
* ICエンジン： 新しいmultiValveEngineState functionObjectはICエンジンの計算でピストンとバルブの動きを表示し、ログに記録します[ commit 9753b67f ]。&lt;br /&gt;
* その他 phaseScalarTransport関数オブジェクトで、alphaPhiフィールドが存在しない場合、新しいsolveAlphaPhiスイッチを設定することで計算できるようになりました[ commit 2bc91ecf ]。&lt;br /&gt;
&lt;br /&gt;
== Models ==&lt;br /&gt;
&lt;br /&gt;
* 一般的なことだ： MRFはアダプティブ・メッシュ・リファインメントで動作します[ commit cdef2003 ]。&lt;br /&gt;
* 液体ソース： 新しいvolumeSource fvModelは非圧縮性ソルバーには連続方程式に体積ソースを適用し、圧縮性ソルバーには同等のmassSource fvModelを適用します[ commit 9181a6 ]。  ドメインに流体を導入するfvModelsからのソースがフィールドファイルのboundaryFieldセクションで指定されるようになりました[ commit 171101 ]。&lt;br /&gt;
* 勢いだ： 新しい propellerDisk fvModel は、プロペラ曲線 [ commit b3b1b5b6 ] に基づいて、プロペラを近似するディスク運動量ソースを提供します。&lt;br /&gt;
* その他 新しいOUForce fvModelは等方乱流の箱の直接数値シミュレーションのためにランダムなOrnstein-Uhlenbeck過程の力を計算し、運動量方程式に適用します[ commit f0ee70 ]。&lt;br /&gt;
&lt;br /&gt;
== 一般的な境界条件 ==&lt;br /&gt;
&lt;br /&gt;
* 圧力：entrainmentPressure境界条件は、テンプレートケースの例[ commit 2a9a2d0e ]の開いた境界での圧力に推奨されています。&lt;br /&gt;
* ベロシティ 円筒座標で入口速度を記述するcylindricalInletVelocity境界条件において、角速度をrad/sまたはrpmで指定できるようになりました。movingMappedWallVelocity境界条件は、2つのメッシュ領域の境界で使用することができ、片側の壁からもう片側の流体に対して滑り止め条件を適用することができます[ commit 59ebac71 ]。&lt;br /&gt;
* 温度だ： 新しいlumpedMassTemperature境界条件は、境界パッチ[ commit 3ab0e63e ]によって全体的または部分的に囲まれた固体の温度をモデル化します。&lt;br /&gt;
* 一般的なことだ： 表データを持つFunction1の補間スキームのデフォルトは線形ですが、ステップに設定できるようになりました[ commit 50c053 ]。すべての境界条件におけるフィールドマッピングの簡略化 [ commit cef86f ]。 多項式 Function1 はより単純な入力構文を持つ [ commit c3f131e8 ]。&lt;br /&gt;
* カップリング： nonConformalMappedWallパッチタイプは、例えばCHTのために、界面で面を適合させる必要なしに、別々の領域のメッシュを接続する柔軟な方法を提供します[ commit a3e38977 ]。&lt;br /&gt;
&lt;br /&gt;
== ケース構成 ==&lt;br /&gt;
&lt;br /&gt;
* データの可視化: foamMonitorに、データの列を選択し、Y軸に独立変数をプロットし、定期的に更新することなく単一のグラフを表示する新しいオプションが追加されました[ commit 9252d0c0 ]。&lt;br /&gt;
* ケースの初期化: deltaTFactorをcontrolDictファイルで設定し、可変時間ステップでの調整率を制限することができます。無次元のパラメータはdimension []; [ commit 87ff44 ]で指定できる。 foamDictionaryに-outputオプションが追加され、変更された辞書を任意の指定されたファイルに書き出せるようになりました[ commit 6d9bc6 ]。寸法付きパラメータを値の前後に寸法を指定できるようになりました[ commit 209a3756 ]。foamDictionary に入力ファイルの項目名を変更するオプションが追加されました [ commit b0dbdd4a ]。&lt;br /&gt;
* 単位： 入力パラメーターに単位を指定できるようになり、例えば圧力の[bar]は、kg/(ms²) [ commit 476bb42b ]のような従来の単位に変換されます。新しいfoamUnitsスクリプトは、入力パラメータの単位(例えば[cal]や[J])とその変換、および次元単位を記述します[ commit e4abe3d5 ]。例えば、回転速度omegaは[rpm] [ commit 3928fbb8 ]として指定されます。&lt;br /&gt;
&lt;br /&gt;
単位については、&amp;quot;OpenFOAM User Guide &amp;quot;を参照してください： 4.2.6. 次元単位&amp;quot; と以下のサブセクション、および foamUnits スクリプトについては、&amp;quot;OpenFOAM User Guide： 4.7.7 foamUnits スクリプト&amp;quot; を参照してください。&lt;br /&gt;
&lt;br /&gt;
== プログラミング ==&lt;br /&gt;
&lt;br /&gt;
* コード化された入力： 入力ファイル用の#calcディレクティブは、ニュートン・ラプソン反復を使って方程式の根を求める例で示されます[ commit cc9991 ]。 入力ファイルに対する#codeStreamディレクティブは、グラフデータをプロットする例で示されます[ commit fbc36b ]。 pitzDailySteady のサンプルケースには、ひずみ率を書き込むコード化された関数オブジェクトが含まれています [ commit 58cb08 ]。 コード化された関数オブジェクトの例をいくつか追加しました [ commit 811faaa0 ]。&lt;br /&gt;
* コード検索: 新しい foamFind スクリプトは OpenFOAM ファイルを検索し、オプションでファイル全体または検索文字列にマッチする行を表示して内容を処理します [ commit 1c6d785c ]。&lt;br /&gt;
&lt;br /&gt;
foamFind スクリプトの詳細については、&amp;quot;OpenFOAM User Guide &amp;quot;を参照してください： 4.7.8 foamFind スクリプト&amp;quot; を参照してください。&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
* その他の数字： 一般的な分布に standardNormal 関数を追加 [ commit d34d9b93 ]。&lt;br /&gt;
* フィールド フィールドはメッシュのパッチの順番でパッチフィールドを構築するようになり、ロバスト性が向上しました [ commit 16b8bf5e ]。&lt;br /&gt;
* データ出力： I/Oで時刻が使用される場合、各値が一意になるように精度が自動的に調整される [ commit d2817a0 ]。&lt;br /&gt;
* インストール： ParaViewと分解ライブラリのインストールを制御する新しい環境変数を追加 [ commit 48fcb7f6 ]。&lt;br /&gt;
&lt;br /&gt;
== クレジット ==&lt;br /&gt;
OpenFOAM12は、次のように制作された：&lt;br /&gt;
&lt;br /&gt;
* メンテナンス (CFD Direct): Henry Weller, Will Bainbridge, Chris Greenshields.&lt;br /&gt;
* 投稿者: Timo Niemi, Juho Peltola, Heikki Kahila, Bulut Tekgül, Stanislau Stasheuski.&lt;br /&gt;
&lt;br /&gt;
== ライセンス ==&lt;br /&gt;
OpenFOAM 12は、OpenFOAM FoundationによってGeneral Public Licence v3の下で配布されています。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=858</id>
		<title>OpenFOAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=858"/>
		<updated>2024-12-02T12:23:12Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* リリースノート */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではOpenFOAMについてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
&lt;br /&gt;
'''OpenCFD'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2312リリースノート|OpenFOAM v2312 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2306リリースノート|OpenFOAM v2306 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2212 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2206 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2112 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2106 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/OF2012-3625e0d8029b40bda20fafe481dcbd95 OpenFOAM v2012 リリースノート]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2006 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1912 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1906 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1812 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1806 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The OpenFOAM Foundation'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 12 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 11 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 10 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 9|OpenFOAM 9 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 8 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v7 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v6.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 3.0.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 2.4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
==スターティングガイド==&lt;br /&gt;
[[OpenFOAMについて]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのインストール]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e63d4cf76ea2fea659b2 チュートリアルケースの実行]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/24b8491bf9776c3a27db OpenFOAMで入力できる項目の調べ方]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e4b13100e15508981a85 OpenFOAMの$FOAM変数]&lt;br /&gt;
&lt;br /&gt;
==困った時は？==&lt;br /&gt;
[https://qiita.com/mmer547/items/7c7c257dcaf2efbc730b OpenFOAM Google Groupに投稿する際に抑えるポイント]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/6b041536e2ac5dd17721 OpenFOAMで計算するネタがない時の探し方]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのエラーメッセージの対応]]&lt;br /&gt;
&lt;br /&gt;
==プリプロセス==&lt;br /&gt;
&lt;br /&gt;
===形状作成===&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%EF%BC%9A%E5%BD%A2%E7%8A%B6%E4%BD%9C%E6%88%90 形状作成ツールまとめ]&lt;br /&gt;
&lt;br /&gt;
===メッシュ===&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%E3%81%AE%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 OpenFOAMのメッシャーについて]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:blockMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:snappyHexMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:cfMesh]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/9fca38b8e8eadc869bb8 SalomeでOpenFOAMのメッシュを用意する方法]&lt;br /&gt;
&lt;br /&gt;
===境界条件===&lt;br /&gt;
[[境界条件]]&lt;br /&gt;
&lt;br /&gt;
==ソルバ==&lt;br /&gt;
[[simpleFoamについて]]&lt;br /&gt;
&lt;br /&gt;
[[ExecutionTimeとClockTimeについて]]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/SIMPLEC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%A8%88%E7%AE%97%E5%AE%9F%E8%A1%8C%EF%BC%88OpenFOAM3.0.1%EF%BC%89 SIMPLECを使用した計算実行（OpenFOAM3.0.1）]&lt;br /&gt;
&lt;br /&gt;
===並列計算の実行方法===&lt;br /&gt;
&lt;br /&gt;
[[decomposeParDictの中身]]&lt;br /&gt;
&lt;br /&gt;
===エラーメッセージ===&lt;br /&gt;
[[v1806のエラーメッセージ]]&lt;br /&gt;
&lt;br /&gt;
==ポストプロセス==&lt;br /&gt;
[[ログファイルから残差ログを抽出]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e463235ddb93f08db68a OpenFOAMのpostProcessについて]&lt;br /&gt;
&lt;br /&gt;
==チュートリアルケース==&lt;br /&gt;
[[チュートリアルケース|チュートリアルケース一覧]]&lt;br /&gt;
&lt;br /&gt;
==カスタマイズ==&lt;br /&gt;
[https://qiita.com/mmer547/items/2997bf8c71fe1e2423c9 OpenFOAM ソースコードの探し方]&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/foam-extend_4.0%E3%82%92Bash_on_Ubuntu_on_Windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB foam-extend 4.0をBash on Ubuntu on Windowsにインストール]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/ESI_Windows%E7%89%88OpenFOAM%E3%81%AE%E5%B0%8E%E5%85%A5 ESI Windows版OpenFOAMの導入]&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/OpenCAE/Supercomputer-OpenFOAM-Training/-/wikis/home スーパーコンピュータOpenFOAM講習会]&lt;br /&gt;
&lt;br /&gt;
== 関連サービス ==&lt;br /&gt;
=== プリプロセス ===&lt;br /&gt;
[https://www.xsim.info/products/products.html XSim.Work]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDEXCS-OpenFOAM%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E9%87%8E%E6%9D%91-%E6%82%A6%E6%B2%BB/dp/4621306138/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-5 オープンCAEのためのDEXCS for OpenFOAMハンドブック]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E7%AC%AC2%E7%89%88-%E4%B8%80%E8%88%AC%E7%A4%BE%E5%9B%A3%E6%B3%95%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691025/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-1 OpenFOAMによる熱移動と流れの数値解析(第2版) ]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E5%B7%9D%E7%95%91-%E7%9C%9F%E4%B8%80/dp/4844379526/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-6　OpenFOAMの歩き方]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%83%A9%E3%83%90%E3%82%A4%E3%83%88/dp/4627691610/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-2 OpenFOAMライブラリリファレンス]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Tomislav-Mari%C2%B4c/dp/4627670915/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-3 OpenFOAMプログラミング]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691017/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-4 OpenFOAMによる熱移動と流れの数値解析]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9&amp;diff=857</id>
		<title>チュートリアルケース</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9&amp;diff=857"/>
		<updated>2024-11-08T08:06:09Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ドキュメント作成される方は既存ページをご参考の上、基本情報の表を各ページにお書きください。それ以外の記載はご自由にどうぞ。&lt;br /&gt;
&lt;br /&gt;
テンプレートを用意しているので、新規ページには&amp;lt;nowiki&amp;gt;{{subst:OfTutTemplate}}&amp;lt;/nowiki&amp;gt;と書いて一度保存後、編集してください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XSim様がOpenFOAM v4.0についてチュートリアルのドキュメント化を完走されています。&lt;br /&gt;
&lt;br /&gt;
[https://www.xsim.info/articles/OpenFOAM/Tutorials.html XSim：OpenFOAM 付属チュートリアル一覧]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 標準tutorials ==&lt;br /&gt;
===DNS(直接数値シミュレーション)===&lt;br /&gt;
*dnsFoam：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Basic(基礎的なCFDコード)===&lt;br /&gt;
*[[laplacianFoam：フランジの熱伝導解析]]&lt;br /&gt;
*[[PotentialFoam：pitzDaily（ポテンシャル流れ）]]&lt;br /&gt;
*[[potentialFoam：円柱周りの流れ（ポテンシャル流れ）]]&lt;br /&gt;
*[[scalarTransportFoam： pitzDaily（パッシブスカラの輸送）]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Combustion(燃焼)===&lt;br /&gt;
*[[chemFoam：燃焼反応 CH4 ( 53 化学種, 325 反応 )]]&lt;br /&gt;
*[[chemFoam：燃焼反応 H2 ( 10 化学種, 27 反応 )]]&lt;br /&gt;
*[[chemFoam：燃焼反応 n-ヘプタン ( 544 化学種, 2446 反応 )]]&lt;br /&gt;
*[[chemFoam：燃焼反応 iso-オクタン ( 874 化学種, 3796 反応 )]]&lt;br /&gt;
*dieselFoam：&lt;br /&gt;
*engineFoam：&lt;br /&gt;
*fireFoam：&lt;br /&gt;
*PDRFoam：&lt;br /&gt;
*reactingFoam：&lt;br /&gt;
*XiFoam： &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compressible(圧縮性流れ)===&lt;br /&gt;
*rhoCentralFoam：&lt;br /&gt;
*rhoPimpleFoam：&lt;br /&gt;
*rhoPorousMRFLTSPimpleFoam：&lt;br /&gt;
*rhoPorousMRFPimpleFoam：&lt;br /&gt;
*rhoPorousMRFSimpleFoam：&lt;br /&gt;
*rhoSimplecFoam：&lt;br /&gt;
*sonicFoam：&lt;br /&gt;
*sonicLiquidFoam：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[steadyCompressibleSRFFoam : 平板動翼の定常回転流れ場]]&lt;br /&gt;
*[[steadyCompressibleSRFFoam : 曲がった動翼の定常回転流れ場]]&lt;br /&gt;
*[[steadyCompressibleMRFFoam : 平板動静翼の定常回転流れ場]]&lt;br /&gt;
*[[steadyCompressibleMRFFoam : 曲がった動静翼の定常回転流れ場]]&lt;br /&gt;
*[[steadyUniversalMRFFoam : 軸流タービンのggiジャンプ]]&lt;br /&gt;
*[[steadyUniversalMRFFoam : 軸流タービンのミキシングプレーン]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DiscreteMethods(離散法)===&lt;br /&gt;
*dsmcFoam：freeSpacePeriodic&lt;br /&gt;
*dsmcFoam：freeSpaceStream&lt;br /&gt;
*dsmcFoam：supersonicCorner&lt;br /&gt;
*dsmcFoam：wedge15Ma5&lt;br /&gt;
*molecularDynamics：mdEquilibrationFoam：periodicCubeArgon&lt;br /&gt;
*molecularDynamics：mdEquilibrationFoam：periodicCubeWater&lt;br /&gt;
*molecularDynamics：mdFoam：nanoNozzle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Electromagnetics(電磁流体)===&lt;br /&gt;
*electrostaticFoam：chargedWire&lt;br /&gt;
*mhdFoam：hartmann&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Finance(金融工学)===&lt;br /&gt;
*[[financialFoam：ブラック・ショールズ方程式]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HeatTransfer(熱輸送と浮力駆動流れ)===&lt;br /&gt;
*buoyantBaffleSimpleFoam：&lt;br /&gt;
*[[buoyantBoussinesqPisoFoam:hotroom:非定常浮力対流計算]]&lt;br /&gt;
*buoyantBoussinesqPimpleFoam：hotRoom&lt;br /&gt;
*buoyantBoussinesqSimpleFoam：hotRoom&lt;br /&gt;
*[[buoyantBoussinesqSimpleFoam：iglooWithFidges]]&lt;br /&gt;
*buoyantPimpleFoam：hotRoom&lt;br /&gt;
*[[buoyantSimpleFoam：buoyantCavity]]&lt;br /&gt;
*[[buoyantSimpleFoam：circuitBoardCooling]]&lt;br /&gt;
*[[buoyantSimpleFoam：hotRoom]]&lt;br /&gt;
*buoyantSimpleRadiationFoam：hotRadiationRoom&lt;br /&gt;
*buoyantSimpleRadiationFoam：hotRadiationRoomFvDOM&lt;br /&gt;
*[[chtMultiRegionFoam：multiRegionHeater]]&lt;br /&gt;
*[[chtMultiRegionFoam：multiRegionLiquidHeater]]&lt;br /&gt;
*[[chtMultiRegionFoam：windshieldDefrost:氷層の融解シミュレーション]]&lt;br /&gt;
*[[chtMultiRegionSimpleFoam：流体-固体熱連成解析（定常）]]&lt;br /&gt;
*[[chtMultiRegionSimpleFoam：熱交換器とファン]]&lt;br /&gt;
*chtMultiRegionSimpleFoam：multiRegionHeaterRadiation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Incompressible(非圧縮性流れ)===&lt;br /&gt;
*adjointShapeOptimizationFoam：pitzDaily&lt;br /&gt;
*[[boundaryFoam：平行平板間の発達した境界層の壁関数プロファイル]]&lt;br /&gt;
*channelFoam：&lt;br /&gt;
*icoFoam：&lt;br /&gt;
*[[MRFSimpleFoam：回転攪拌槽の流れ]]&lt;br /&gt;
*[[nonNewtonianIcoFoam：流路中心から外れた円柱周りの流れ]]&lt;br /&gt;
*[[pimpleDyMFoam：スクリューの回転流れ場]]&lt;br /&gt;
*[[pimpleDyMFoam: 円筒容器内での台形型ピストン押し込み流れ]]&lt;br /&gt;
*[[pimpleDyMFoam: 気流中にバネで懸架された翼型の６自由度剛体運動]]&lt;br /&gt;
*[[pimpleFoam：T型分岐管の流れ]]&lt;br /&gt;
*[[pimpleFoam:T型分岐管の流れ（ファン付き）]]&lt;br /&gt;
*[[pimpleFoam:楕円柱周りの流れ（乱流モデル比較）]]&lt;br /&gt;
*[[pisoFoam：pitzDaily(LES)]]&lt;br /&gt;
*porousSimpleFoam：&lt;br /&gt;
*[[potentialFreeSurfaceFoam:浮子の振動で生じる表面のさざ波]]&lt;br /&gt;
*[[shallowWaterFoam：浅水方程式による矩形段差流れ]]&lt;br /&gt;
*[[simpleFoam：pitzDaily]]&lt;br /&gt;
*[[simpleFoam（windSimpleFoam）：風力発電所の風環境シミュレーション]]&lt;br /&gt;
*SRFSimpleFoam：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*simpleSRFFoam : 軸流タービン動翼の定常非圧縮回転流れ場&lt;br /&gt;
*simpleSRFFoam : ミキサー動翼の定常非圧縮回転流れ場&lt;br /&gt;
*MRFSimpleFoam : 軸流タービン動静翼ggi定常回転流れ場&lt;br /&gt;
*MRFSimpleFoam : 軸流タービンのミキシングプレーン&lt;br /&gt;
*MRFSimpleFoam : ミキサー動静翼ggi定常回転流れ場&lt;br /&gt;
*pimpleDyMFoam : 軸流タービンの非定常回転流れ場&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lagrangian(ラグランジュ法による粒子追跡)===&lt;br /&gt;
*DPMFoam：Goldschmidt&lt;br /&gt;
*coalChemistryFoam：simplifiedSiwek&lt;br /&gt;
*icoUncoupledKinematicParcelFoam：hopper&lt;br /&gt;
*LTSReactingParcelFoam：counterFlowFlame2D&lt;br /&gt;
*LTSReactingParcelFoam：verticalChannel&lt;br /&gt;
*MPPICFoam：Goldschmidt&lt;br /&gt;
*MPPICFoam：column&lt;br /&gt;
*MPPICFoam：cyclone&lt;br /&gt;
*MPPICFoam：injectionChannel&lt;br /&gt;
*porousExplicitSourceReactingParcelFoam：&lt;br /&gt;
*reactingParcelFilmFoam：cylinder&lt;br /&gt;
*reactingParcelFilmFoam：hotBoxes&lt;br /&gt;
*reactingParcelFilmFoam：rivuletPanel&lt;br /&gt;
*reactingParcelFilmFoam：splashPanel&lt;br /&gt;
*reactingParcelFoam：filter&lt;br /&gt;
*reactingParcelFoam：parcelInBox&lt;br /&gt;
*reactingParcelFoam：verticalChannel&lt;br /&gt;
*simpleReactingParcelFoam：verticalChannel&lt;br /&gt;
*sprayFoam：aachenBomb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Mesh(メッシュ)===&lt;br /&gt;
*foamyHexMesh：blob&lt;br /&gt;
*foamyHexMesh：flange&lt;br /&gt;
*foamyHexMesh：mixerVessel&lt;br /&gt;
*foamyHexMesh：simpleShapes&lt;br /&gt;
*foamyHexMesh：straightDuctImplicit&lt;br /&gt;
*foamyQuadMesh：OpenCFD&lt;br /&gt;
*foamyQuadMesh：jaggedBoundary&lt;br /&gt;
*foamyQuadMesh：square&lt;br /&gt;
*[[moveDynamicMesh：simpleHarmonicMotion]]&lt;br /&gt;
*[[moveDynamicMesh:SnakeRiverCanyon]]&lt;br /&gt;
*snappyHexMesh：flange&lt;br /&gt;
*snappyHexMesh：iglooWithFridges&lt;br /&gt;
*snappyHexMesh：motorBike&lt;br /&gt;
*snappyHexMesh：snappyMultiRegionHeater&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Multiphase(多相流)===&lt;br /&gt;
*bubbleFoam：&lt;br /&gt;
*[[cavitatingFoam：フラッシング解析(ras)]]&lt;br /&gt;
*[[cavitatingFoam:フラッシング解析(2D-LES)]]&lt;br /&gt;
*[[cavitatingFoam:フラッシング解析(3D-LES)]]&lt;br /&gt;
*[[compressibleInterFoam：水中爆雷2D]]&lt;br /&gt;
*compressibleInterFoam:水中爆雷3D&lt;br /&gt;
*compressibletwoPhaseEulerFoam:&lt;br /&gt;
*[[interDyMFoam：撹拌槽内の流れ]]&lt;br /&gt;
*interDyMFoam:二次元スロッシングタンク&lt;br /&gt;
*interDyMFoam:三次元スロッシングタンク&lt;br /&gt;
*[[interFoam：ダム（水柱）の決壊]]&lt;br /&gt;
*[[interFoam：毛細管現象]]&lt;br /&gt;
*[[interFoam:ノズル噴流2D]]&lt;br /&gt;
*[[interFoam:水路]]&lt;br /&gt;
*[[interFoam:越流堰]]&lt;br /&gt;
*[[interFoam:傾斜ダクトの下面から注入した水が上面から溢れ出る挙動]]&lt;br /&gt;
*interMixingFoam：&lt;br /&gt;
*[[interPhaseChangeFoam：弾丸周りのキャビテーション流れ]]&lt;br /&gt;
*[[interPhaseChangeDyMFoam：プロペラのキャビテーション解析]]&lt;br /&gt;
*LTSInterFoam：&lt;br /&gt;
*[[MRFInterFoam：回転撹拌槽の二相流]]&lt;br /&gt;
*[[MRFMultiphaseInterFoam：多相ダム（水柱）の決壊]]&lt;br /&gt;
*[[multiphaseInterFoam:2D回転撹拌槽の混相流]]&lt;br /&gt;
*[[multiphaseEulerFoam:2D回転撹拌槽の混相流]]&lt;br /&gt;
*multiphaseInterFoam：&lt;br /&gt;
*[[potentialFreeSurfaceDyMFoam:浮子の振動で生じる表面のさざ波]]&lt;br /&gt;
*settlingFoam：&lt;br /&gt;
*twoPhaseEulerFoam：fluidized bed&lt;br /&gt;
*twoPhaseEulerFoam:fluidized bed2&lt;br /&gt;
*[[twoPhaseEulerFoam:気泡塔]]&lt;br /&gt;
*twoPhaseEulerFoam:回転撹拌槽&lt;br /&gt;
*[[twoPhaseEulerFoam:液中への気体注入]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===StressAnalysis(固体応力解析)===&lt;br /&gt;
*[[solidDisplacementFoam：円孔板の応力解析]]&lt;br /&gt;
*[[solidEquilibriumDisplacementFoam：はりの曲げ解析]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ext版tutorials==&lt;br /&gt;
===coupled(領域の連成)===&lt;br /&gt;
*conjugateHeatFoam : conjugateCavity&lt;br /&gt;
*blockCoupledScalarTransportFoam : blockCoupledSwirlTest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===surfaceTracking(界面追跡法)===&lt;br /&gt;
*[[surfactantFoam : sphereTransport]]&lt;br /&gt;
*[[interTrackFoam : tank3D 3次元タンク内液面変化]]&lt;br /&gt;
*[[interTrackFoam : sloshing2D ２次元スロッシング]]&lt;br /&gt;
*[[interTrackFoam : ramp 傾斜がある場所での自由表面流れ]]&lt;br /&gt;
*[[interTrackFoam : hydrofoil 翼近くの自由表面変形問題]]&lt;br /&gt;
*[[bubbleInterTrackFoam : bubble2D_r0.75mm : 気泡の変形]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===viscoelastic(粘弾性流体)===&lt;br /&gt;
*viscoelasticFluidFoam : XPP_SE&lt;br /&gt;
*viscoelasticFluidFoam : XPP_DE&lt;br /&gt;
*viscoelasticFluidFoam : whiteMetzer&lt;br /&gt;
*viscoelasticFluidFoam : S-MDCPP&lt;br /&gt;
*viscoelasticFluidFoam : PPT-Linear&lt;br /&gt;
*viscoelasticFluidFoam : PPT-Exponential&lt;br /&gt;
*viscoelasticFluidFoam : Oldroyd-B&lt;br /&gt;
*viscoelasticFluidFoam : Lenov&lt;br /&gt;
*viscoelasticFluidFoam : Giesekus&lt;br /&gt;
*viscoelasticFluidFoam : Feta-PTT&lt;br /&gt;
*viscoelasticFluidFoam : DCPP&lt;br /&gt;
*viscoelasticFluidFoam : FENE-P&lt;br /&gt;
*viscoelasticFluidFoam : FENE-CR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[cfMesh(メッシュ)]]===&lt;br /&gt;
*cartesian2DMesh：hatOctree&lt;br /&gt;
*cartesianMesh：asmoOctree&lt;br /&gt;
*cartesianMesh：bunnyOctree&lt;br /&gt;
*cartesianMesh：elbow_90degree&lt;br /&gt;
*cartesianMesh：intakePortOctree&lt;br /&gt;
*cartesianMesh：multipleOrifices&lt;br /&gt;
*cartesianMesh：sBendOctree&lt;br /&gt;
*cartesianMesh：sawOctree&lt;br /&gt;
*cartesianMesh：ship5415Octree&lt;br /&gt;
*cartesianMesh：singleOrifice&lt;br /&gt;
*pMesh：bunnyPoly&lt;br /&gt;
*pMesh：multipleOrifices&lt;br /&gt;
*tetMesh：cutCubeOctree&lt;br /&gt;
*tetMesh：socketOctree&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=856</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=856"/>
		<updated>2024-10-05T08:00:38Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* その他 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;オープンCAEWikiにようこそ！&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンソースCAEソフトウェアについての情報まとめています。&lt;br /&gt;
クローズドなwikiではありません。&lt;br /&gt;
ご編集されたい方はアカウントをご登録ください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なお、内容はオープンCAEに関連するものでお願いします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== オープンCAEの前提知識 ===&lt;br /&gt;
&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[解析用語]]&lt;br /&gt;
&lt;br /&gt;
=== CAD ===&lt;br /&gt;
[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
=== メッシャー ===&lt;br /&gt;
[[Netgen]]&lt;br /&gt;
&lt;br /&gt;
[[Gmsh]]&lt;br /&gt;
&lt;br /&gt;
=== 流体 ===&lt;br /&gt;
[[OpenFOAM]]&lt;br /&gt;
&lt;br /&gt;
[[SU2]]&lt;br /&gt;
&lt;br /&gt;
=== 構造 ===&lt;br /&gt;
[[FrontISTR]]&lt;br /&gt;
&lt;br /&gt;
[[Salome-Meca]]&lt;br /&gt;
&lt;br /&gt;
[[CalculiX]]&lt;br /&gt;
&lt;br /&gt;
[[PrePoMax]]&lt;br /&gt;
&lt;br /&gt;
[[StressRefine]]&lt;br /&gt;
&lt;br /&gt;
[[FEBio]]&lt;br /&gt;
&lt;br /&gt;
[[PlantFEM]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRadioss]]&lt;br /&gt;
&lt;br /&gt;
=== MBD(モデルベースデザイン) ===&lt;br /&gt;
[[OpenModelica]]&lt;br /&gt;
&lt;br /&gt;
=== 機構解析 ===&lt;br /&gt;
&lt;br /&gt;
[[MBDyn]]&lt;br /&gt;
&lt;br /&gt;
[[EXUDYN]]&lt;br /&gt;
&lt;br /&gt;
=== 有限要素法ライブラリ・ツールセット ===&lt;br /&gt;
&lt;br /&gt;
[[GetFEM]]&lt;br /&gt;
&lt;br /&gt;
[[DelFEM2]]&lt;br /&gt;
&lt;br /&gt;
[[sparselizard]]&lt;br /&gt;
&lt;br /&gt;
[[ivyFEM]]&lt;br /&gt;
&lt;br /&gt;
=== マルチフィジックス ===&lt;br /&gt;
[[Elmer]]&lt;br /&gt;
&lt;br /&gt;
=== 粒子法 ===&lt;br /&gt;
[[DualSPHygics]]&lt;br /&gt;
&lt;br /&gt;
[[OpenMPS]]&lt;br /&gt;
&lt;br /&gt;
=== 格子ボルツマン法 ===&lt;br /&gt;
[[Palabos]]&lt;br /&gt;
&lt;br /&gt;
[[waLBerla]]&lt;br /&gt;
&lt;br /&gt;
=== 偏微分方程式ソルバ ===&lt;br /&gt;
&lt;br /&gt;
[[FEniCSx]]&lt;br /&gt;
&lt;br /&gt;
=== 可視化 ===&lt;br /&gt;
[[Paraview]]&lt;br /&gt;
&lt;br /&gt;
[[PyVista]]&lt;br /&gt;
&lt;br /&gt;
[[Mayavi]]&lt;br /&gt;
&lt;br /&gt;
=== 最適化 ===&lt;br /&gt;
[[OpenMDAO]]&lt;br /&gt;
&lt;br /&gt;
[[OpenDA]]&lt;br /&gt;
&lt;br /&gt;
[[Dakota]]&lt;br /&gt;
&lt;br /&gt;
=== クラウド ===&lt;br /&gt;
&lt;br /&gt;
[[SimScale]]&lt;br /&gt;
&lt;br /&gt;
=== ベンチマーク ===&lt;br /&gt;
[https://www.cenav.org/ 計算工学ナビ]&lt;br /&gt;
&lt;br /&gt;
[https://feaber.readthedocs.io/ja/latest/ FEABeR]&lt;br /&gt;
&lt;br /&gt;
=== プログラミング ===&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
[[C++]]&lt;br /&gt;
&lt;br /&gt;
=== その他 ===&lt;br /&gt;
&lt;br /&gt;
[[物性データベース]]&lt;br /&gt;
&lt;br /&gt;
[[Blender]]&lt;br /&gt;
&lt;br /&gt;
[[Maxima]]&lt;br /&gt;
&lt;br /&gt;
[[REDUCE]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2023/opencae オープンCAE Advent Calendar 2023]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2022/opencae オープンCAE Advent Calendar 2022]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/6423 オープンCAE Advent Calendar 2021]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/5192 オープンCAE Advent Calendar 2020]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2019/opencae-ac2019 オープンCAE Advent Calendar 2019]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2018/opencae-ac2018 オープンCAE Advent Calendar 2018]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2017/openfoam OpenFOAM Advent Calendar 2017]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAE ===&lt;br /&gt;
[[オープンCAEの系譜]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCuffpM6BjZWZ4AEDFiQexEg オープンCAE動画チャンネル]&lt;br /&gt;
&lt;br /&gt;
[[各地の勉強会]]&lt;br /&gt;
&lt;br /&gt;
[[勝手にブックレビュー]]&lt;br /&gt;
&lt;br /&gt;
[[オープンCAE名言集]]&lt;br /&gt;
&lt;br /&gt;
=== Wikiについて ===&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンCAE学会が管理しています。&lt;br /&gt;
オープンCAE学会については[http://www.opencae.or.jp 公式サイト]を参照してください。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=PyVista&amp;diff=855</id>
		<title>PyVista</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=PyVista&amp;diff=855"/>
		<updated>2024-10-05T07:27:02Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「公式ページよりの説明&amp;lt;blockquote&amp;gt;Visualization Toolkit (VTK) の合理化されたインタフェースによる3 Dプロットおよびメッシュ解析&amp;lt;/blockquote&amp;gt;[https://docs.pyvista.org/ 公式ページ]  [https://pyvista.github.io/pyvista-docs-dev-ja/index.html 日本語ページ]」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;公式ページよりの説明&amp;lt;blockquote&amp;gt;Visualization Toolkit (VTK) の合理化されたインタフェースによる3 Dプロットおよびメッシュ解析&amp;lt;/blockquote&amp;gt;[https://docs.pyvista.org/ 公式ページ]&lt;br /&gt;
&lt;br /&gt;
[https://pyvista.github.io/pyvista-docs-dev-ja/index.html 日本語ページ]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=854</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=854"/>
		<updated>2024-10-05T07:24:34Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* 可視化 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;オープンCAEWikiにようこそ！&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンソースCAEソフトウェアについての情報まとめています。&lt;br /&gt;
クローズドなwikiではありません。&lt;br /&gt;
ご編集されたい方はアカウントをご登録ください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なお、内容はオープンCAEに関連するものでお願いします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== オープンCAEの前提知識 ===&lt;br /&gt;
&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[解析用語]]&lt;br /&gt;
&lt;br /&gt;
=== CAD ===&lt;br /&gt;
[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
=== メッシャー ===&lt;br /&gt;
[[Netgen]]&lt;br /&gt;
&lt;br /&gt;
[[Gmsh]]&lt;br /&gt;
&lt;br /&gt;
=== 流体 ===&lt;br /&gt;
[[OpenFOAM]]&lt;br /&gt;
&lt;br /&gt;
[[SU2]]&lt;br /&gt;
&lt;br /&gt;
=== 構造 ===&lt;br /&gt;
[[FrontISTR]]&lt;br /&gt;
&lt;br /&gt;
[[Salome-Meca]]&lt;br /&gt;
&lt;br /&gt;
[[CalculiX]]&lt;br /&gt;
&lt;br /&gt;
[[PrePoMax]]&lt;br /&gt;
&lt;br /&gt;
[[StressRefine]]&lt;br /&gt;
&lt;br /&gt;
[[FEBio]]&lt;br /&gt;
&lt;br /&gt;
[[PlantFEM]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRadioss]]&lt;br /&gt;
&lt;br /&gt;
=== MBD(モデルベースデザイン) ===&lt;br /&gt;
[[OpenModelica]]&lt;br /&gt;
&lt;br /&gt;
=== 機構解析 ===&lt;br /&gt;
&lt;br /&gt;
[[MBDyn]]&lt;br /&gt;
&lt;br /&gt;
[[EXUDYN]]&lt;br /&gt;
&lt;br /&gt;
=== 有限要素法ライブラリ・ツールセット ===&lt;br /&gt;
&lt;br /&gt;
[[GetFEM]]&lt;br /&gt;
&lt;br /&gt;
[[DelFEM2]]&lt;br /&gt;
&lt;br /&gt;
[[sparselizard]]&lt;br /&gt;
&lt;br /&gt;
[[ivyFEM]]&lt;br /&gt;
&lt;br /&gt;
=== マルチフィジックス ===&lt;br /&gt;
[[Elmer]]&lt;br /&gt;
&lt;br /&gt;
=== 粒子法 ===&lt;br /&gt;
[[DualSPHygics]]&lt;br /&gt;
&lt;br /&gt;
[[OpenMPS]]&lt;br /&gt;
&lt;br /&gt;
=== 格子ボルツマン法 ===&lt;br /&gt;
[[Palabos]]&lt;br /&gt;
&lt;br /&gt;
[[waLBerla]]&lt;br /&gt;
&lt;br /&gt;
=== 偏微分方程式ソルバ ===&lt;br /&gt;
&lt;br /&gt;
[[FEniCSx]]&lt;br /&gt;
&lt;br /&gt;
=== 可視化 ===&lt;br /&gt;
[[Paraview]]&lt;br /&gt;
&lt;br /&gt;
[[PyVista]]&lt;br /&gt;
&lt;br /&gt;
[[Mayavi]]&lt;br /&gt;
&lt;br /&gt;
=== 最適化 ===&lt;br /&gt;
[[OpenMDAO]]&lt;br /&gt;
&lt;br /&gt;
[[OpenDA]]&lt;br /&gt;
&lt;br /&gt;
[[Dakota]]&lt;br /&gt;
&lt;br /&gt;
=== クラウド ===&lt;br /&gt;
&lt;br /&gt;
[[SimScale]]&lt;br /&gt;
&lt;br /&gt;
=== ベンチマーク ===&lt;br /&gt;
[https://www.cenav.org/ 計算工学ナビ]&lt;br /&gt;
&lt;br /&gt;
[https://feaber.readthedocs.io/ja/latest/ FEABeR]&lt;br /&gt;
&lt;br /&gt;
=== プログラミング ===&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
[[C++]]&lt;br /&gt;
&lt;br /&gt;
=== その他 ===&lt;br /&gt;
&lt;br /&gt;
[[物性データベース]]&lt;br /&gt;
&lt;br /&gt;
[[Blender]]&lt;br /&gt;
&lt;br /&gt;
[[Maxima]]&lt;br /&gt;
&lt;br /&gt;
[[REDUCE]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2022/opencae オープンCAE Advent Calendar 2022]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/6423 オープンCAE Advent Calendar 2021]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/5192 オープンCAE Advent Calendar 2020]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2019/opencae-ac2019 オープンCAE Advent Calendar 2019]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2018/opencae-ac2018 オープンCAE Advent Calendar 2018]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2017/openfoam OpenFOAM Advent Calendar 2017]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAE ===&lt;br /&gt;
[[オープンCAEの系譜]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCuffpM6BjZWZ4AEDFiQexEg オープンCAE動画チャンネル]&lt;br /&gt;
&lt;br /&gt;
[[各地の勉強会]]&lt;br /&gt;
&lt;br /&gt;
[[勝手にブックレビュー]]&lt;br /&gt;
&lt;br /&gt;
[[オープンCAE名言集]]&lt;br /&gt;
&lt;br /&gt;
=== Wikiについて ===&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンCAE学会が管理しています。&lt;br /&gt;
オープンCAE学会については[http://www.opencae.or.jp 公式サイト]を参照してください。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=PrePoMax%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=853</id>
		<title>PrePoMaxリリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=PrePoMax%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=853"/>
		<updated>2024-09-08T10:50:07Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「[https://prepomax.discourse.group/c/news/9 Newsページ]からの転記  == v2.1.7 ==  * .dat ファイルリーダーの改善 * BC および荷重の作成中に選択された座標系がハイライト表示されるようになりました。 * 履歴（再生成用）が更新され、解析コマンドと後処理コマンドが含まれるようになりました。再生成はモデルコマンドのみ（解析コマンドと後処理コマンドは再生…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://prepomax.discourse.group/c/news/9 Newsページ]からの転記&lt;br /&gt;
&lt;br /&gt;
== v2.1.7 ==&lt;br /&gt;
&lt;br /&gt;
* .dat ファイルリーダーの改善&lt;br /&gt;
* BC および荷重の作成中に選択された座標系がハイライト表示されるようになりました。&lt;br /&gt;
* 履歴（再生成用）が更新され、解析コマンドと後処理コマンドが含まれるようになりました。再生成はモデルコマンドのみ（解析コマンドと後処理コマンドは再生成されません）またはすべてのコマンドに対して実行できるようになりました。&lt;br /&gt;
* コマンドラインパラメータのサポートが改善されました&lt;br /&gt;
* PrePoMaxCmd.exe という追加の .exe ファイルが追加されました。これは PrePoMax をコマンドライン アプリケーションとして起動します。&lt;br /&gt;
* PrePoMax 実行ファイルは両方ともコマンドラインパラメータで使用できますが、バッチモードで PrePoMax を実行するには PrePoMaxCmd.exe を使用する必要があります。&lt;br /&gt;
* バグ修正&lt;br /&gt;
&lt;br /&gt;
== v2.1.6 ==&lt;br /&gt;
&lt;br /&gt;
* 座標系更新のバグ修正&lt;br /&gt;
&lt;br /&gt;
== v2.1.5 ==&lt;br /&gt;
&lt;br /&gt;
* バグ修正&lt;br /&gt;
&lt;br /&gt;
== v2.1.4 ==&lt;br /&gt;
&lt;br /&gt;
* .dat ファイルのバックリング リーダーのサポートを追加しました&lt;br /&gt;
* バージョン 2.1.3 開発版からの選択バグ修正&lt;br /&gt;
&lt;br /&gt;
== v2.1.3 ==&lt;br /&gt;
&lt;br /&gt;
* 履歴出力のエクスポートのサポートを追加しました (結果 → 履歴出力 → エクスポート)&lt;br /&gt;
* ジオメトリIDによる選択のサポートを追加しました&lt;br /&gt;
* ジオメトリ選択に基づく参照ポイント作成のサポートを追加しました&lt;br /&gt;
* ジオメトリ選択に基づく座標系作成のサポートを追加しました&lt;br /&gt;
* 座標系のバグ修正&lt;br /&gt;
&lt;br /&gt;
== v2.1.2 ==&lt;br /&gt;
&lt;br /&gt;
* 式で定義されたフィールド出力の作成のサポートを追加しました (結果 → フィールド出力 → 作成)&lt;br /&gt;
* 式で定義された履歴出力の作成のサポートを追加しました (結果 → 履歴出力 → 作成)&lt;br /&gt;
* ユーザーが作成した履歴出力のフィルターのサポートを追加しました。使用可能なフィルターは、最小、最大、合計、平均です。&lt;br /&gt;
* 座標系のバグ修正&lt;br /&gt;
&lt;br /&gt;
== v2.1.1 ==&lt;br /&gt;
&lt;br /&gt;
* FE モデル ビューでの座標系の作成のサポートを追加しました (長方形、円筒形)&lt;br /&gt;
* 結果ビューでの座標系の作成のサポートを追加しました（長方形、円筒形）&lt;br /&gt;
* 結果ビューでの参照ポイントの作成のサポートを追加しました&lt;br /&gt;
* 境界条件の作成時に座標系を使用するためのサポートを追加しました&lt;br /&gt;
* 集中荷重の作成時に座標系を使用するためのサポートを追加しました&lt;br /&gt;
* 表面牽引荷重の作成時に座標系を使用するためのサポートを追加しました&lt;br /&gt;
* フィールド出力を別の座標系に変換するサポートを追加しました (結果 → フィールド出力 → 作成)&lt;br /&gt;
* バグ修正&lt;br /&gt;
&lt;br /&gt;
== v2.1.0 ==&lt;br /&gt;
&lt;br /&gt;
* 質量セクションのサポートを追加: 点質量と分散質量&lt;br /&gt;
* シェルメッシュを厚くする機能を追加&lt;br /&gt;
* 選択したサーフェスでソリッドメッシュを分割する機能を追加しました&lt;br /&gt;
* .stl ジオメトリ モデルの面を削除する機能を追加しました&lt;br /&gt;
* Gmsh メッシャー使用時のメッシュ最適化のサポートを追加しました&lt;br /&gt;
* ピラミッド要素のサポートを追加&lt;br /&gt;
* 新しい色の凡例を追加しました&lt;br /&gt;
* .pmxファイルの構造を変更し、より大きなファイルの作成を可能にしました。&lt;br /&gt;
* ステップコントロールのサポートを追加&lt;br /&gt;
* 圧縮のみのサポートにより、非線形ソリューションを有効化できるようになりました。&lt;br /&gt;
* Gmsh がバージョン 4.13 に更新されました&lt;br /&gt;
&lt;br /&gt;
* シンプルな履歴ビューアとエディタを追加&lt;br /&gt;
* キーワードエディタはパフォーマンスを改善するために作り直されました&lt;br /&gt;
* バグ修正&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=PrePoMax&amp;diff=852</id>
		<title>PrePoMax</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=PrePoMax&amp;diff=852"/>
		<updated>2024-09-08T10:45:56Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではオープンソース構造解析ソフト「PrePoMax」についてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
[https://prepomax.fs.um.si/ 公式サイト]&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
公式のバイナリーはWindowsのみです。&amp;lt;/br&amp;gt;&lt;br /&gt;
公式サイトに行って「Downloads」を左クリックしてください。Zipファイルをダウンロードして解凍してください。新しくできるフォルダーは移動しても構いません。そのフォルダーの中にあるPrePoMax.exeというファイルを左ダブルクリックすると起動します。&amp;lt;/br&amp;gt;&lt;br /&gt;
PrePoMax.exeというファイルのショートカットをデスクトップに作ると便利だと思います。&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
[[PrePoMaxリリースノート]]&lt;br /&gt;
&lt;br /&gt;
== 公式動画チュートリアル(英語) ==&lt;br /&gt;
公式サイトの「Documentation」からも行けますが、ここにURLを記載します。&amp;lt;/br&amp;gt;&lt;br /&gt;
[https://www.youtube.com/@MatejBorovinsek Matej Borovinšek YouTube Cannnel]&amp;lt;/br&amp;gt;&lt;br /&gt;
[https://www.youtube.com/@feanalyst4302 FEAnalyst YouTube Channel]&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 応力解析 ==&lt;br /&gt;
[https://qiita.com/Jun_Tatsuno/items/f59d916b98e823341882 PrePoMaxを用いた部品を連結したAssyの応力解析]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/Sagittarius_Chiron/items/fd806361ceca4864bc79 PrePoMax使用法解説]&lt;br /&gt;
&lt;br /&gt;
== 固有値解析 ==&lt;br /&gt;
[https://qiita.com/Jun_Tatsuno/items/f2bb87eaf3f594b52038 PrePoMaxを用いたモーダル解析]&lt;br /&gt;
&lt;br /&gt;
== 日本語ドキュメント（有志） ==&lt;br /&gt;
[https://speakerdeck.com/juntatsuno/prepomax-v1-dot-1-1-maniyuaru PrePoMax v1.1.1 マニュアル]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
[https://www.amazon.co.jp/%E3%80%8CPrePoMax%E3%80%8D%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E5%AE%9F%E8%B7%B5%E6%A7%8B%E9%80%A0%E8%A7%A3%E6%9E%90-%E6%94%B9%E8%A8%82%E7%89%88-OBOOKS-%E6%9F%B4%E7%94%B0-%E8%89%AF%E4%B8%80/dp/4777522156/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;crid=20HSEZ031ITSU&amp;amp;keywords=PrePoMax&amp;amp;qid=1680697869&amp;amp;s=books&amp;amp;sprefix=prepomax%2Cstripbooks%2C184&amp;amp;sr=1-1 &amp;lt;nowiki&amp;gt;「PrePoMax」ではじめる実践構造解析 [改訂版]&amp;lt;/nowiki&amp;gt;]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=851</id>
		<title>OpenFOAM v2312リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=851"/>
		<updated>2023-12-24T08:21:50Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenCFDは、2023年12月リリースのOpenFOAM® v2312を発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v2306の機能を拡張しています。この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージも多数あります。&lt;br /&gt;
&lt;br /&gt;
Ubuntu Linux: Ubuntu 22.04(LTS)、20.04(LTS)、18.04(LTS)、23.04、22.10 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
openSUSE Linux: Leap 15.5 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
Redhat Linuxの亜種: epel 9用のパッケージインストール; Fedora 37&lt;br /&gt;
&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢があります（詳細）：&lt;br /&gt;
&lt;br /&gt;
Windows Subsystem for Linux（Ubuntu、openSUSEなどベース）を使用する。&lt;br /&gt;
&lt;br /&gt;
クロスコンパイルによるネイティブ実行ファイル&lt;br /&gt;
&lt;br /&gt;
docker インストール&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのapptainerサポートは、事前にアセンブルされたイメージではなく、記述ファイルによって提供されます：&lt;br /&gt;
&lt;br /&gt;
パッケージング/コンテナ参照&lt;br /&gt;
&lt;br /&gt;
Mac OSXユーザーは、ソースからコンパイルするか、Dockerコンテナを使ってコンパイル済みのパッケージを使用するオプションがあります（詳細）。&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
=== v2312ユーザーアップグレードガイド ===&lt;br /&gt;
&lt;br /&gt;
=== 挙動の変化 ===&lt;br /&gt;
&lt;br /&gt;
==== デフォルトのEnSightフォーマット ====&lt;br /&gt;
&lt;br /&gt;
* 関数オブジェクトとライターが使用するデフォルトの ensight 出力が、シミュレー ション controlDict で指定される \c writeFormat に依存するのではなく、より一貫して ˶c binary format を使用するようになりました。この変更により、foamToEnsight などのユーティリティや、他のファンクション・ オブジェクトやライターとの動作がより一貫したものになります。&lt;br /&gt;
&lt;br /&gt;
==== Function object: &amp;lt;code&amp;gt;Lambda2&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Lambda2関数オブジェクトの出力が、支配方程式の変更、特に符号の反転によって修正されました。その結果、Lambda2のv2312以前のバージョンで観測された負のフィールド値は、v2312リリースでは正のフィールド値になりました（逆も同様）。&lt;br /&gt;
&lt;br /&gt;
=== 名前変更 ===&lt;br /&gt;
&lt;br /&gt;
==== Function object: &amp;lt;code&amp;gt;WeberNumberReacting&amp;lt;/code&amp;gt; ====&lt;br /&gt;
ラグランジュ関数オブジェクトクラスWeberNumberReactingは、新しいラグランジュ雲関数オブジェクトKinematicWeberNumberとの整合性を確保するため、ReactingWeberNumberと改名された。&lt;br /&gt;
&lt;br /&gt;
=== v2312開発者アップグレードガイド ===&lt;br /&gt;
&lt;br /&gt;
=== 非推奨と削除 ===&lt;br /&gt;
&lt;br /&gt;
==== 削除された項目 ====&lt;br /&gt;
&lt;br /&gt;
* faMesh::operator()が削除され、代わりにmesh()またはthisDb()が使われるようになりました。&lt;br /&gt;
* typeGlobal() グローバル関数が is_globalIOobject&amp;lt;Type&amp;gt; traits 構造体に置き換えられました。IOobject::typeHeaderOk との一貫性を保つために、補助的な typeFilePath() グローバル関数が IOobject::typeFilePath のメンバとしてのグローバル関数に取って代わられました。&lt;br /&gt;
&lt;br /&gt;
=== 定義の変更 ===&lt;br /&gt;
&lt;br /&gt;
* ReadFieldsは、格納されたオブジェクトを処理するためのLIFOを実装するためにDynamicListを使用するようになりました。古いLIFOStackインターフェースは、より多くの割り当てとオーバーヘッドを必要とするため、非推奨とマークされています。&lt;br /&gt;
* いくつかの IOobjectList::sorted() const-access メソッドを非推奨とし、新しい csorted() メソッドを採用した。これにより、HashTableとのメソッド名の一貫性が保たれ、戻り値の型が明確になります。&lt;br /&gt;
* 内部辞書の区切り文字が'.'から'/'に変更され、（fileNameのような）内部処理が簡素化され、辞書名を明確なアドレッシングで使用できるようになった。この変更による副作用は、生の辞書名がコード内で直接解析された場合を除き、特に期待されません。&lt;br /&gt;
&lt;br /&gt;
=== 相続の変化 ===&lt;br /&gt;
fvMeshで使われていたデータクラスは、polyMeshレベルのメンバーデータに置き換えられました。開発者にとっては、これは以下の（壊れやすく醜い）コードが確実に壊れることを意味する！&lt;br /&gt;
 &amp;lt;code&amp;gt;obr.lookupObject&amp;lt;fvMesh&amp;gt;(&amp;quot;data&amp;quot;)   // This was never a good idea&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 移設されたメソッド ===&lt;br /&gt;
ListOps::identityをFoam::identityに昇格させる。int32とint64の両方のバージョンを処理します。&lt;br /&gt;
&lt;br /&gt;
=== コンテナの改良／変更 ===&lt;br /&gt;
多くのリリースがそうであるように、基礎となるOpenFOAMコンテナは、様々な方法でアップグレードされ、調整されている。いくつかの焦点は、より多くの場所でC++アルゴリズムを利用することによって、内部のコピー、充填、データ移動を近代化することです。一般的なコード削減とは別に、アルゴリズムへの移行は、将来的に異なる実行モデル（例えば、std::execution::parallel_unsequenced_policy）を提供するのに役立ちます。&lt;br /&gt;
&lt;br /&gt;
==== ハッシュテーブル構造体 ====&lt;br /&gt;
HashTableとHashSetのデフォルトのコンストラクタは、本当にゼロ・サイズのコンストラクタに対応するようになり（つまり、割り当てを必要としない）、noexceptでもある。これは、ハッシュセットのリストなどを管理するときに特に便利で役立ちます。移動コンストラクタも同様にnoexceptになった。&lt;br /&gt;
&lt;br /&gt;
* 未使用の HashTable(Istream&amp;amp;, label) コンストラクタが削除されました。&lt;br /&gt;
&lt;br /&gt;
==== HashTableのサイズ改良 ====&lt;br /&gt;
&lt;br /&gt;
* サイズ変更時に、未入力のHashTableをより早く削除する：テーブルが既にクリアされている（つまり、エントリがない）場合、新しいサイズのテーブルを再割り当てする前に、古い内部テーブルを即座に削除することができます。&lt;br /&gt;
* メソッド： std::unordered_mapに準じた命名と一般的な動作。resize()メソッドと似たような動作をしますが、容量ではなく要素数が渡されます。さらに、reserve()は、DynamicListやstd::vector、std::stringなどに似た振る舞いをするテーブルの容量を増やすだけです。&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// old:&lt;br /&gt;
    labelHashSet set;&lt;br /&gt;
    set.resize(2*nElems);&lt;br /&gt;
&lt;br /&gt;
// now:&lt;br /&gt;
    labelHashSet set;&lt;br /&gt;
    set.reserve(nElems);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== リスト作成／割り当て ====&lt;br /&gt;
SLList（単一リンクリスト）からListまたはFixedListの構築または代入は削除されました。moveコンストラクトや代入はまだ残されていますが、次のバージョンまでにはその有用性が失われることが予想されます。&lt;br /&gt;
&lt;br /&gt;
==== リストの読み書き ====&lt;br /&gt;
入力サイズが既知でないリストを読み込む場合、これらのブラケット・リストは、単一リンク・リストを使用する代わりに、チャンク単位で読み込まれるようになった。積分型やベクトル空間型（スカラー、ベクトルなど）では、各要素に対する中間アロケーションを避けることができる。&lt;br /&gt;
&lt;br /&gt;
DynamicList::readList()メソッドが完全に実装され、List::readList()にリダイレクトされるようになりました。&lt;br /&gt;
&lt;br /&gt;
=== IOストリームの変化 ===&lt;br /&gt;
Ostreamの書き込みメソッド write(const string&amp;amp;) が write(const std::string&amp;amp;) に変更され、中間コピーなしでstd::stringを書き込めるようになった。これは、中間コピーなしで std::string を書き込むことを可能にする。しかし、これは Ostream から派生したクラスに調整が必要になることを意味する。&lt;br /&gt;
&lt;br /&gt;
Ostreamクラスはまた、将来のスパンとstring_viewのサポートに役立つ新しいwriteQuoted(const char* str, std::streamsize len, bool)メソッドを受け取った。&lt;br /&gt;
&lt;br /&gt;
==== メモリーストリームの更新と強化 ====&lt;br /&gt;
カバレッジを拡張して、すべての標準ストリームのバリアントを含むようにし、単純にOpenFOAM IOstreamタイプ用にリラップします。これにより、継承パターンが単純化され、icharstream/ocharstreamを他のラッパーでistringstream/ostringstreamのドロップイン置き換えとして再利用できるようになります。&lt;br /&gt;
&lt;br /&gt;
* Classes&lt;br /&gt;
** icharstream / ICharStream   [old: none / IListStream]&lt;br /&gt;
** ocharstream / OCharStream   [old: none / OListStream]&lt;br /&gt;
** ispanstream / ISpanStream   [old: uiliststream / UIListStream]&lt;br /&gt;
** ospanstream / OSpanStream   [old: none / UOListStream]&lt;br /&gt;
&lt;br /&gt;
ストリーム・バッファ・コンテンツのstd::string_view（c++17）またはspan view（古いc++）をサポート。これにより、フォーマットと再解析が簡単になります。&lt;br /&gt;
&lt;br /&gt;
=== 並列（MPI）処理の変更 ===&lt;br /&gt;
&lt;br /&gt;
==== 削除された機能 ====&lt;br /&gt;
実験的なフルNBX PstreamBuffersアルゴリズム（OpenFOAM-v2306で追加）は、ハイブリッドNBX/PEXアプローチと比較して利点が見られなかったため、削除されました。&lt;br /&gt;
&lt;br /&gt;
同様に、実験的な &amp;quot;ダブルノンブロッキング &amp;quot;NBXバージョンも削除された。このアイデアは、非常に大きなデータ転送のための受信のブロッキングを避けることであったが、それは通常、PstreamBuffersが可能にするようなNBX/PEXのハイブリッドアプローチでよりよく達成される。&lt;br /&gt;
&lt;br /&gt;
==== 新機能 ====&lt;br /&gt;
&lt;br /&gt;
===== broadcastList =====&lt;br /&gt;
新しいPstream::broadcastList()メソッドは、2段階のプロセスとして連続したコンテンツをブロードキャストする：&lt;br /&gt;
&lt;br /&gt;
# サイズをブロードキャストし、レシーバーリスト用にリサイズする。&lt;br /&gt;
# 連続した内容を放送する（空でない場合）&lt;br /&gt;
&lt;br /&gt;
これにより、シリアライズ／デシリアライズのメモリ・オーバーヘッドを回避できるが、ブロードキャスト・コールが追加される。サイズの余分なブロードキャストのトレードオフは、連続した大きなメッシュデータのメモリピークを避けることよりも重要ではないでしょう。&lt;br /&gt;
&lt;br /&gt;
===== mpiAllGather =====&lt;br /&gt;
mpiAllGather 関数が拡張され、char 型に限定されていたものが整数型と浮動小数点型も含むようになった。&lt;br /&gt;
&lt;br /&gt;
===== allToAllConsensus =====&lt;br /&gt;
Mapを受け取るallToAllConsensus関数は、Mapも返すようになり、使い方が単純化され、送信/再送信パラメータの曖昧さが回避された。このバージョンでは、Mapにゼロ値のデータが存在する場合、そのデータも送信されるようになった。&lt;br /&gt;
&lt;br /&gt;
===== PstreamBuffers =====&lt;br /&gt;
registered &amp;quot;センドをサポートし、減少した通信を適切に処理するだけでなく、投機的センドも処理できるようにした。これは、アルゴリズム内でプロセッサ-プロセッサ間の通信が発生する可能性があるが、センドがすべて必要になるかどうか事前にはわからない場合に発生する。この場合、センドは通常通り行われるが、登録されるのは「実際の」センドのみである。すべてのセンドが終了した後、実際にどの情報を（もしあれば）送信する必要があるかを判断することができる。&lt;br /&gt;
&lt;br /&gt;
例えば、&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
PstreamBuffers pBufs(UPstream::commsTypes::nonBlocking);&lt;br /&gt;
&lt;br /&gt;
pBufs.initRegisterSend();&lt;br /&gt;
&lt;br /&gt;
for (const polyPatch&amp;amp; pp : patches)&lt;br /&gt;
{&lt;br /&gt;
    const auto* ppp = isA&amp;lt;processorPolyPatch&amp;gt;(pp);&lt;br /&gt;
    if (ppp)&lt;br /&gt;
    {&lt;br /&gt;
        const label nbrProci = ppp-&amp;gt;neighbProcNo();&lt;br /&gt;
&lt;br /&gt;
        // Gather some patch information...&lt;br /&gt;
        UOPstream toNbr(nbrProci, pBufs);&lt;br /&gt;
        toNbr &amp;lt;&amp;lt; patchInfo;&lt;br /&gt;
&lt;br /&gt;
        // The send is needed if patchInfo is non-empty&lt;br /&gt;
        pBufs.registerSend(nbrProci, !patchInfo.empty());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pBufs.finishedSends();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
新しい PstreamBuffers::finishedSendsNBX() メソッドが追加され、デフォルトの設定パラメータに関係なく、all-to-all ではなくバッファサイズの NBX (ノンブロッキング転送) を指定できるようになった。&lt;br /&gt;
&lt;br /&gt;
=== MPI ネイティブの bitOrOp を拡張する ===&lt;br /&gt;
&lt;br /&gt;
* bitOrOpは複数の値も扱えるようになった。これは例えば、グローバルな状態を追跡するために使用できる：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Encode as 0:empty, 1:uniform, 2:nonuniform, 3:mixed&lt;br /&gt;
PackedList&amp;lt;2&amp;gt; uniformity(fields.size());&lt;br /&gt;
&lt;br /&gt;
forAll(fields, i)&lt;br /&gt;
{&lt;br /&gt;
    uniformity.set(i, fields[i].whichUniformity());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
reduce&lt;br /&gt;
(&lt;br /&gt;
    uniformity.data(),&lt;br /&gt;
    uniformity.size_data(),&lt;br /&gt;
    bitOrOp&amp;lt;unsigned&amp;gt;()&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPIリクエスト処理の改善 ===&lt;br /&gt;
&lt;br /&gt;
* UPstream::waitSomeRequests()のスライス/レンジのサポートにより、受信のポーリングが簡素化され、送信から分離できるようになった。&lt;br /&gt;
* UPstream::removeRequests(pos、len) を使用して、未処理のリクエストをキャンセル／解放し、未処理のリクエストの内部リストからセグメントを削除する。&lt;br /&gt;
* mapDistribute でのリクエスト処理の改善&lt;br /&gt;
** 受信してから送信&lt;br /&gt;
** 自己送信の受信バッファへの直接コピー&lt;br /&gt;
** 送信/再送バッファのPtrListを使った不要な再割り当てを無効にする。&lt;br /&gt;
&lt;br /&gt;
=== グローバルインデックス ===&lt;br /&gt;
whichProcID() に代わる失敗しないメソッドとして、新しい findProc() メソッドを含む様々な改良。&lt;br /&gt;
&lt;br /&gt;
C++の最低規格は、2024年にC++11からC++17に引き上げられる予定である。&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：自動リークパスクロージャーから面を書き込む ===&lt;br /&gt;
snappyHexMeshにはメッシュ内の任意の位置とメッシュ外の位置の間のパスとして定義されたサーフェスのリークを自動的に閉じるオプションがあります。このリリースではリークを閉じるために使用された面はpostProcessingディレクトリのファイルに書き込まれます。&lt;br /&gt;
&lt;br /&gt;
下図は、ギャップのある球体（灰色）、スナップされたメッシュライン（青）、リークを閉じる面（赤）からなるテストケースを示しています：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ファイル書き込みフォーマットはsnappyHexMeshDictの新しいエントリーで選択できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//// Format for writing lines. E.g. leak path. Default is vtk format.&lt;br /&gt;
//setFormat ensight;&lt;br /&gt;
&lt;br /&gt;
//// Format to use for surfaces. E.g. leak-closure faces. Default is vtk format.&lt;br /&gt;
//surfaceFormat vtk;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_gapClosure&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：新しい複数の内側ポイント ===&lt;br /&gt;
snappyHexMeshのセルゾーンはinsidePointを指定することで作成できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
refinementSurfaces&lt;br /&gt;
{&lt;br /&gt;
    ..&lt;br /&gt;
    cellZoneInside insidePoint;    // outside/insidePoint&lt;br /&gt;
    insidePoint    (1 1 1);        // if (cellZoneInside == insidePoint)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1つのinsidePointではなく、複数のinsidePointが用意された：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cellZoneInside insidePoints;      // outside/insidePoint&lt;br /&gt;
insidePoints   ((1 1 1));         // if (cellZoneInside == insidePoint)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図では、ジオメトリは2つのボックス（ワイヤーフレーム）で構成され、上のボックスは2つの切り離されたメッシュ領域をカバーしている。赤で示されたセルゾーンは、3つの別々のメッシュ領域を使用して作成されています。checkMeshユーティリティは、切断されたリージョンを表示するために使うことができます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/insidePoints&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/refinementSurfaces/surfaceZonesInfo.H&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：並列メッシュの負荷分散 ===&lt;br /&gt;
snappyHexMeshは並列実行時に自動的にメッシュのバランスをとることができます。それは以下のどちらかになります&lt;br /&gt;
&lt;br /&gt;
* 変更が小さすぎる場合はバランスを取らない - maxLoadUnbalanceまたはmaxCellUnbalance設定を参照。&lt;br /&gt;
* maxLocalCells設定を参照してください。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、各ステップでメッシュのアンバランスがプリントされます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Layer mesh : cells:353749  faces:1108448  points:406303  unbalance:0.00110248&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;精製前のバランスは、セルの重みを与えることで実装されることに注意。各精製されるセルは8ずつカウントされる。しかし、これは単純な分解法、例えば階層的な分解法にのみ有効である。scotch と KaHip メソッドでは、カット数を含む重みを使ってアンバランスを最小化する。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* any parallel snappyHexMesh case&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 3034&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：レイヤーごとの追加 ===&lt;br /&gt;
OpenFOAM v2206リリースでは、snappyHexMeshが拡張され、nOuterIterエントリーを使用して複数パスでレイヤーを追加できるようになりました。ここでは、$FOAM_TUTORIALS/incompressible/pisoFoam/LES/motorBike/motorBikeチュートリアルを出発点として、どのように改良されたレイヤーの追加を実行できるかをデモしたいと思います：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
relativeSizes false; // true&lt;br /&gt;
&lt;br /&gt;
// Per final patch (so not geometry!) the layer information&lt;br /&gt;
layers&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;(lowerWall|motorBike).*&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        nSurfaceLayers 16;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Expansion factor for layer mesh&lt;br /&gt;
expansionRatio 1.2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;重要な設定は、外側の反復回数とメッシュ・モーション・ソルバーである：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Overall max number of layer addition iterations&lt;br /&gt;
nLayerIter      25;&lt;br /&gt;
&lt;br /&gt;
// Add layers in multiple passes - gives layers a chance to rotate&lt;br /&gt;
nOuterIter      4;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meshShrinker    displacementMotionSolver;&lt;br /&gt;
solver          displacementLaplacian;&lt;br /&gt;
displacementLaplacianCoeffs&lt;br /&gt;
{&lt;br /&gt;
    diffusivity quadratic inverseDistance (lowerWall upperWall &amp;quot;motorBike*&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;メッシュの品質基準を緩めることで、（全体的なメッシュ品質は維持したまま）この複雑な形状でもレイヤーカバレッジを劇的に向上させることができる。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/addLayersToFaceZone&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
=== Nastranサーフェスリーダーの改良 ===&lt;br /&gt;
NASTRANパーサーが更新され、PSHELL名の新しいANSA規約に対応しました。これにより、snappyHexMeshなど、より多くの場所でNASTRANファイルを直接使用することができるようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/surfaceFormats/nas/NASsurfaceFormat.C&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 3009&lt;br /&gt;
&lt;br /&gt;
=== checkMeshユーティリティの改良 ===&lt;br /&gt;
checkMesh ユーティリティに writeChecks オプションが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -writeChecks &amp;lt;format&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これにより、メッシュ・チェックのフォーマットを含むファイルが生成される：&lt;br /&gt;
&lt;br /&gt;
* dictionary : OpenFOAM dictionary;&lt;br /&gt;
* json : JSON format.&lt;br /&gt;
&lt;br /&gt;
例えば、コマンドを使う：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -allGeometry -allTopology -writeChecks JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;motorBikeチュートリアルでは、caseディレクトリにcheckMesh.jsonファイルが生成される：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;maxNonOrth&amp;quot; : 64.9999,&lt;br /&gt;
    &amp;quot;aveNonOrth&amp;quot; : 9.92427,&lt;br /&gt;
    &amp;quot;maxSkew&amp;quot; : 9.25719,&lt;br /&gt;
    &amp;quot;nWarnSkew&amp;quot; : 12,&lt;br /&gt;
    &amp;quot;minDeterminant&amp;quot; : 0,&lt;br /&gt;
    &amp;quot;aveDeterminant&amp;quot; : 1.55371,&lt;br /&gt;
    &amp;quot;thresholdDeterminant&amp;quot; : 0.001,&lt;br /&gt;
    &amp;quot;nErrorDeterminant&amp;quot; : 1274,&lt;br /&gt;
    &amp;quot;minFaceWeight&amp;quot; : 0.0216708,&lt;br /&gt;
    &amp;quot;aveFaceWeight&amp;quot; : 0.465687,&lt;br /&gt;
    &amp;quot;thresholdFaceWeight&amp;quot; : 0.05,&lt;br /&gt;
    &amp;quot;nErrorFaceWeight&amp;quot; : 1143,&lt;br /&gt;
    &amp;quot;minFaceVolumeRatio&amp;quot; : 0.0101126,&lt;br /&gt;
    &amp;quot;aveFaceVolumeRatio&amp;quot; : 0.846049&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/mesh/manipulation/checkMesh/checkMesh.C&lt;br /&gt;
&lt;br /&gt;
=== subsetMeshユーティリティの改良 ===&lt;br /&gt;
subsetMesh ユーティリティが更新され、通常の -patches 選択を変更する -exclude-patches オプションを受け付けるようになりました。&lt;br /&gt;
&lt;br /&gt;
この変更により、最も近い露出パッチの指定が簡単になりました。&lt;br /&gt;
&lt;br /&gt;
== Numerics ==&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 随伴形状最適化の改善 ===&lt;br /&gt;
形状最適化のための感度微分を計算するためのE-SIとFI定式化間の整合性が改善されました。naca0012/laminar/moment/primalAdjointチュートリアルから取得した、変更前後のコード動作の例を以下に示します：&lt;br /&gt;
&lt;br /&gt;
一貫した点／面の感度マップ&lt;br /&gt;
&lt;br /&gt;
v2306とv2312で計算されたドラッグ感度マップを比較すると、a)新しいポイント-フェイス補間は、生の、つまり平滑化されていない感度でも、より滑らかな結果を生成する。&lt;br /&gt;
&lt;br /&gt;
さらなる改善点は以下の通り：&lt;br /&gt;
&lt;br /&gt;
* 不必要に新しいアドジョイントフィールドを割り当てることなく幾何学的制約を定義するための新しいアドジョイントソルバ（null）と目的関数（geometric）タイプ&lt;br /&gt;
&lt;br /&gt;
* 不等式制約のある最適化問題に取り組むための3つの新しい更新法（ISQP, nullSpace, MMA）&lt;br /&gt;
* 設計変数に境界を導入。ボリューメトリックBスプラインの場合、最適化を通してメッシュの品質をより良く保つことができます。&lt;br /&gt;
* 最適化ループの収束基準の導入。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/naca0012/laminar/multipleConstraints&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 トポロジーに基づく新しいアジョイント最適化 ===&lt;br /&gt;
OpenFOAM v2312では、空隙率ベースまたはレベルセットアプローチによる新しいトポロジー最適化機能が追加されました。どちらも、設計されたジオメトリをSTLとしてエクスポートする機能を備えており、製造やボディフィットグリッドによる再評価に利用できます。&lt;br /&gt;
&lt;br /&gt;
空隙率ベースのアプローチは、計算領域の非生産的な部分を固めることでブロックする設計変数の場（人工空隙率α）に依存する。得られた解の平滑性を高めるために、正則化方程式を解いて中間場α̃を計算し、次にシャープニング/プロジェクションステップを経てほぼ二値の場βを計算します。後者は、固化した領域（すなわちβ≈1の領域）で流れ解をゼロにするソース項を流れ方程式に導入するために使用されます。上記のプロセスの手順を以下に示す。&lt;br /&gt;
&lt;br /&gt;
次の表は、同じケースの3つの異なるバリエーション、すなわち、Jpt＜Jpttarget制約（右）の下で、総圧力損失（Jpt）の最小化（左）、下部出口と右出口間の体積流量の均等配分制約（Jm）を伴うJptの最小化（中央）、および流れの均一性（Jun）の最大化（右）に対するトポロジー最適化の結果を示している。&lt;br /&gt;
&lt;br /&gt;
ケースは、adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/BPにあります。&lt;br /&gt;
&lt;br /&gt;
次の表は、同様の目的関数と制約関数を持つ3次元多様体のトポロジー最適化の結果を示しています。最初の行は、最適化サイクル中の計算領域の流体部分と固体部分の境界の進行を示し、最後の行は、最適化された3つの形状のSTLファイルを示しています。後者の生成プロセスは自動化されており、各最適化サイクルの終了時に実行されます。これらのSTLファイルは、適切な境界条件によるボディフィットシミュレーションや、その後の形状最適化、さらには製造に使用することができます。&lt;br /&gt;
&lt;br /&gt;
ケースはtopologyOptimisation/monoFluidAero/laminar/3DBoxにあります。&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
optimisationDict.optimisationの項目が少し変わりました。この変更は、例えば、$FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/motorBikeのoptimisationDictを以前のものと比較することで確認できます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
== Solvers and physical models ==&lt;br /&gt;
&lt;br /&gt;
=== fvOptionsの改良：ポイントの移動 ===&lt;br /&gt;
有限体積オプション（fvOptions）フレームワークが改良されました：&lt;br /&gt;
&lt;br /&gt;
* 入力辞書の更新により、セル選択を実行時に更新できるようになりました。&lt;br /&gt;
* 空間内を移動する点をモデル化する新しい方法。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
fvOption1&lt;br /&gt;
{&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    updateSelection         true;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fvOption2&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    selectionMode   movingPoints;&lt;br /&gt;
&lt;br /&gt;
    movingPoints&lt;br /&gt;
    {&lt;br /&gt;
        point1        table&lt;br /&gt;
        (&lt;br /&gt;
            // time    position&lt;br /&gt;
            (  0 (0 0 0.75))&lt;br /&gt;
            (  1 (0 0 0.65))&lt;br /&gt;
            (  2 (0 0 0.55))&lt;br /&gt;
            (  3 (0 0 0.45))&lt;br /&gt;
            (  4 (0 0 0.35))&lt;br /&gt;
            (  5 (0 0 0.25))&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        point2        (-0.25 -0.25 0.5);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/cellSetOption/cellSetOption.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== 新しい fvOption: マップされたフィールド制約 ===&lt;br /&gt;
MapFieldConstraintは、外部メッシュからのソース・フィールドを使用して、&amp;lt;Type&amp;gt;型の指定フィールドに値の制約を課します。ここで、&amp;lt;Type&amp;gt;には{scalar, vector, sphericalTensor, symmTensor, tensor}を指定できます。オプションとして、ソースフィールドは時間経過とともに平行移動または回転させることができます。&lt;br /&gt;
&lt;br /&gt;
考えられる用途は、例えば、移動する電気源の影響をモデル化することである。最小限の使用例を以下に示す：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
MapFieldConstraint1&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type                MapFieldConstraint;&lt;br /&gt;
    field               &amp;lt;word&amp;gt;;&lt;br /&gt;
    srcMesh             &amp;lt;fileName&amp;gt;;&lt;br /&gt;
    mapMethod           &amp;lt;word&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    consistent          &amp;lt;bool&amp;gt;;&lt;br /&gt;
    patchMapMethod      &amp;lt;word&amp;gt;;&lt;br /&gt;
    transform&lt;br /&gt;
    {&lt;br /&gt;
        // Optional entries&lt;br /&gt;
        position    &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        origin      &amp;lt;vector&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
        direction   &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        normal      &amp;lt;vector&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Conditional entries&lt;br /&gt;
&lt;br /&gt;
        // when consistent=false&lt;br /&gt;
        patchMap        &amp;lt;HashTable&amp;lt;word&amp;gt;&amp;gt;;  // (&amp;lt;patchSrc&amp;gt; &amp;lt;patchTgt&amp;gt;);&lt;br /&gt;
        cuttingPatches  &amp;lt;wordList&amp;gt;;  // (&amp;lt;patchTgt1&amp;gt; ... &amp;lt;patchTgtN&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
    // Inherited entries&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/constraints/general/mapFieldConstraint/MapFieldConstraint.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献：新しい乱流技術委員会サブモジュール ===&lt;br /&gt;
OpenFOAMガバナンス内のTurbulence Technical Committeeのネストされたサブモジュールを含む新しいコミュニティサブモジュールが開始されました。このサブモジュールは、公開されている Turbulence Technical Committee のリポジトリでホストされています。&lt;br /&gt;
&lt;br /&gt;
コミュニティ・サブモジュールは、乱流モデリングに関連する学術的・産業的な貢献のホストとして機能し、知識交換の場を作り、この分野とOpenFOAMの両方を発展させるコラボレーションを促進します。&lt;br /&gt;
&lt;br /&gt;
BitbucketやGitHubのようなGitベースのソースコード・リポジトリ・ホスティング・サービスでホストし、このサブモジュールを介してOpenFOAMソフトウェアにリンクすることができます。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、サブモジュールにlibWallModelledLESライブラリーが組み込まれ、壁面モデルによるラージ・エディ・シミュレーション（WMLES）の領域でOpenFOAMの機能が拡張されました。この乱流モデリング手法は、乱流境界層の内部領域の解像度を回避することで、費用対効果の高いLESを可能にします。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $WM_PROJECT_DIR/modules/turbulence-community&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Turbulence Technical Committee members for their contributions and help.&lt;br /&gt;
&lt;br /&gt;
=== 改善されたラグランジュ・ブラウン運動 ===&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。しかし、特に指定がない限り、（互換性のために）デフォルトの球形分布が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。&lt;br /&gt;
&lt;br /&gt;
しかし、特に指定がない限り、適度に小さな時間ステップでは不正確であるにもかかわらず、（互換性のために）デフォルトの球面処理が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
三次分布は、球面処理が明示的に無効化されている場合に使用される。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subModels&lt;br /&gt;
{&lt;br /&gt;
    particleForces&lt;br /&gt;
    {&lt;br /&gt;
        sphereDrag;&lt;br /&gt;
        BrownianMotion&lt;br /&gt;
        {&lt;br /&gt;
            lambda     2e-10;&lt;br /&gt;
            turbulence false;&lt;br /&gt;
            spherical  false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;立方体分布と球形分布の違いは次の図に見られる。&lt;br /&gt;
&lt;br /&gt;
変更の報告、検証、テストはGuanyang Xueの好意によるものである。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2922&lt;br /&gt;
&lt;br /&gt;
Merge request 634&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusサンプルセット ===&lt;br /&gt;
新しい abaqusMesh セットは、Abaqus メッシュポイント形式を使用してファイルからサンプル位置を導出します。使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sets&lt;br /&gt;
{&lt;br /&gt;
    cone25 // user-specified set name&lt;br /&gt;
    {&lt;br /&gt;
        type        abaqusMesh;&lt;br /&gt;
        file        &amp;quot;abaqusMesh.inp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Scale, e.g. mm to m&lt;br /&gt;
        scale       0.001;&lt;br /&gt;
&lt;br /&gt;
        // Search distance when the sample point is not located in a cell&lt;br /&gt;
        maxDist     0.25;&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/abaqus&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusセットライター ===&lt;br /&gt;
新しいAbaqusセットライターはOpenFOAMセットデータをAbaqusフォーマットに変換します。使用例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
T&lt;br /&gt;
{&lt;br /&gt;
    type sets;&lt;br /&gt;
    setFormat abaqus;&lt;br /&gt;
    fields (T);&lt;br /&gt;
    sets&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;オプションの書式オプションは、formatOptions辞書内のabaqusサブ辞書で提供されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    abaqus&lt;br /&gt;
    {&lt;br /&gt;
        format      ascii;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Custom header: $ entries are substituions&lt;br /&gt;
        header&lt;br /&gt;
        (&lt;br /&gt;
            &amp;quot;** OpenFOAM abaqus output&amp;quot;&lt;br /&gt;
            &amp;quot;** Project $FOAM_CASE&amp;quot;&lt;br /&gt;
            &amp;quot;** File $FILE_NAME&amp;quot;&lt;br /&gt;
            &amp;quot;** $FIELD_NAME Time t=$TIME&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        // Write geometry in addition to field data&lt;br /&gt;
        writeGeometry yes;&lt;br /&gt;
&lt;br /&gt;
        // Null value when sample value is not found&lt;br /&gt;
        // Default is scalar::min&lt;br /&gt;
        nullValue   0;&lt;br /&gt;
&lt;br /&gt;
        // Insert additional time sub-directory in the output path&lt;br /&gt;
        // - yes : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;time&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        // - no : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        useTimeDir  no;&lt;br /&gt;
&lt;br /&gt;
        // Available when 'useTimeDir' is 'no' to disambiguate file names&lt;br /&gt;
&lt;br /&gt;
        // Time base for output file names:&lt;br /&gt;
        // - 'time' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;time&amp;gt;&lt;br /&gt;
        // - 'iteration' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;iteration&amp;gt;&lt;br /&gt;
        timeBase    iteration;&lt;br /&gt;
&lt;br /&gt;
        // Optional start counters when using timeBase iteration&lt;br /&gt;
        writeIndex&lt;br /&gt;
        (&lt;br /&gt;
            T 1&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/coordSet/writers/abaqus/abaqusCoordSetWriter.C&lt;br /&gt;
&lt;br /&gt;
=== パッチ・シード・セットの改善 ===&lt;br /&gt;
patchSeed sampled setがパッチ全体で一様にサンプルシードを計算するようになりました。以前の実装では、顔のインデックスをパッチ全体で一様にサンプリングしていましたが、その副作用として、より小さな顔に偏りがありました。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
streamline5&lt;br /&gt;
{&lt;br /&gt;
    type                streamLine;&lt;br /&gt;
    libs                (fieldFunctionObjects);&lt;br /&gt;
    U                   U;&lt;br /&gt;
    fields              (U p);&lt;br /&gt;
    setFormat           vtk;&lt;br /&gt;
    direction           forward;&lt;br /&gt;
    lifeTime            20000;&lt;br /&gt;
    cloud               particleTracks;&lt;br /&gt;
    seedSampleSet&lt;br /&gt;
    {&lt;br /&gt;
        type            patchSeed;&lt;br /&gt;
        axis            xyz;&lt;br /&gt;
        patches         (&amp;quot;inlet1&amp;quot;);&lt;br /&gt;
        maxPoints       40;&lt;br /&gt;
    }&lt;br /&gt;
    interpolationScheme cellPoint;&lt;br /&gt;
    trackLength         0.001;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/patchSeed&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 647&lt;br /&gt;
&lt;br /&gt;
=== 新しいケース情報機能オブジェクト ===&lt;br /&gt;
新しい caseInfo 関数オブジェクトは、実行時または後処理の一部として、ソルバーとケースの情報を生成します。収集されるデータには以下が含まれます：&lt;br /&gt;
&lt;br /&gt;
* メタデータ：ケース名、パス、タイムディレクトリ数など。&lt;br /&gt;
* 辞書エントリ : 任意の入力辞書からすべて/選択したものを抽出&lt;br /&gt;
** fvSolutionからUリニアソルバーを取得するには、'solvers/U/solver'などのスコープを使用する。&lt;br /&gt;
** はワイルドカードをサポートしている。例えば、fvSolution U ソルバー・キーワードが&amp;quot;(U|k|epsilon) &amp;quot;であった場合。&lt;br /&gt;
** include'または'exclude'リストを使用して、含める/除外するエントリ名の選択を制限する。&lt;br /&gt;
* メッシュ統計：点、面、セルの数、境界、ゾーン名など。&lt;br /&gt;
* 関数オブジェクトの結果：関数オブジェクトの結果のキャッシュ値など&lt;br /&gt;
&lt;br /&gt;
使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
caseInfo1&lt;br /&gt;
{&lt;br /&gt;
    type        caseInfo;&lt;br /&gt;
    libs        (utilityFunctionObjects);&lt;br /&gt;
&lt;br /&gt;
    writeFormat json; // josn | dictionary&lt;br /&gt;
&lt;br /&gt;
    // List of dictionaries - retrieve using 'path' or registered 'name'&lt;br /&gt;
    dictionaries&lt;br /&gt;
    {&lt;br /&gt;
        fvSolution&lt;br /&gt;
        {&lt;br /&gt;
            name        &amp;quot;fvSolution&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // include all entries by default&lt;br /&gt;
        }&lt;br /&gt;
        controlDict&lt;br /&gt;
        {&lt;br /&gt;
            path        &amp;quot;system/controlDict&amp;quot;;&lt;br /&gt;
            include&lt;br /&gt;
            (&lt;br /&gt;
                &amp;quot;application&amp;quot;&lt;br /&gt;
                &amp;quot;deltaT&amp;quot;&lt;br /&gt;
                &amp;quot;startTime&amp;quot;&lt;br /&gt;
                &amp;quot;endTime&amp;quot;&lt;br /&gt;
            );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Extract function object results&lt;br /&gt;
    functionObjects (pressureDifference sample1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;出力例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;meta&amp;quot; : {&lt;br /&gt;
        &amp;quot;case&amp;quot; : &amp;quot;heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;path&amp;quot; : &amp;quot;chtMultiRegionSimpleFoam/heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;regions&amp;quot; : [&amp;quot;air&amp;quot;, &amp;quot;porous&amp;quot;],&lt;br /&gt;
        &amp;quot;nTimes&amp;quot; : 7,&lt;br /&gt;
        &amp;quot;nProc&amp;quot; : 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;regions&amp;quot; : {&lt;br /&gt;
        &amp;quot;air&amp;quot; : {&lt;br /&gt;
            &amp;quot;mesh&amp;quot; : {&lt;br /&gt;
                &amp;quot;nGeometricD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nSolutionD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nPoints&amp;quot; : 252991,&lt;br /&gt;
                &amp;quot;nFaces&amp;quot; : 739260,&lt;br /&gt;
                &amp;quot;nCells&amp;quot; : 243000,&lt;br /&gt;
                &amp;quot;nPatches&amp;quot; : 4,&lt;br /&gt;
                &amp;quot;pointZones&amp;quot; : [],&lt;br /&gt;
                &amp;quot;faceZones&amp;quot; : [&amp;quot;rotorBlades&amp;quot;, &amp;quot;baffleFaces&amp;quot;],&lt;br /&gt;
                &amp;quot;cellZones&amp;quot; : [&amp;quot;cylinder&amp;quot;, &amp;quot;innerCylinder&amp;quot;, &amp;quot;rotor&amp;quot;],&lt;br /&gt;
                &amp;quot;boundsMin&amp;quot; : [0, 0, 0],&lt;br /&gt;
                &amp;quot;boundsMax&amp;quot; : [5.000000e-01, 5.000000e-01, 5.000000e-01],&lt;br /&gt;
                &amp;quot;clouds&amp;quot; : []&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;boundary&amp;quot; : {&lt;br /&gt;
                &amp;quot;types&amp;quot; : {&lt;br /&gt;
                    &amp;quot;walls&amp;quot; : &amp;quot;wall&amp;quot;,&lt;br /&gt;
                    &amp;quot;inlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;outlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;blades&amp;quot; : &amp;quot;wall&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;fields&amp;quot; : {&lt;br /&gt;
                    &amp;quot;alphat&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;nut&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;p&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;calculated&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/caseInfo&lt;br /&gt;
&lt;br /&gt;
== DMDによる新しい低次モデリング磁場再構成 ==&lt;br /&gt;
動的モード分解（DMD）機能は、OpenFOAM v2006で導入され、その後OpenFOAM v2106で拡張されました。このリリースにより、OpenFOAMは、DMDの主な利点の1つである、任意の中間時点や将来の時点におけるCFD計算を必要とせずに、与えられたモードとそれに関連するダイナミクスに基づいて場を生成する機能を習得しました。&lt;br /&gt;
&lt;br /&gt;
この機能により、ユーザーはシミュレーション全体をいくつかのモードとモードダイナミクスに凝縮し、CFD解析を追加することなく、任意の時間における場の生成や将来の状態の予測を行うことができます。&lt;br /&gt;
&lt;br /&gt;
もう一つの潜在的な利点は、ユーザーがシミュレーションを短縮し、大規模なシミュレーションを行うことなく流れ場の将来の状態を予測できることである。これは、より短時間のシミュレーションで得られたモードとモードダイナミクスを使用することで実現できます。&lt;br /&gt;
&lt;br /&gt;
結果の質は、基礎となる縮小モデルの能力と入力データの質に依存することに留意すべきである。再構成結果を改善するためには、流れからモードが正しく抽出されていることを確認する必要がある。&lt;br /&gt;
&lt;br /&gt;
system/ROMfieldsDictを使った最小の例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Mandatory entries&lt;br /&gt;
ROMmodel        &amp;lt;word&amp;gt;;&lt;br /&gt;
field           &amp;lt;word&amp;gt;;&lt;br /&gt;
object          &amp;lt;word&amp;gt;;&lt;br /&gt;
deltaT          &amp;lt;scalar&amp;gt;;&lt;br /&gt;
time            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
modes           &amp;lt;labelList&amp;gt;;&lt;br /&gt;
amplitudes      &amp;lt;complexList&amp;gt;;&lt;br /&gt;
eigenvalues     &amp;lt;complexList&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Optional entries&lt;br /&gt;
startTime       &amp;lt;scalar&amp;gt;;&lt;br /&gt;
dimensions      &amp;lt;dimensionSet&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Inherited entries&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図は、2次元円柱チュートリアルから得られた速度場と、シミュレーションを実行せずにDMDモードとダイナミクスを使用して再構成したものです：&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/createROMfields.C&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/ROMmodels/DMD/DMD.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
&lt;br /&gt;
* Kiewat, M. (2019). Streaming modal decomposition approaches for vehicle aerodynamics. PhD thesis. Munich: Technical University of Munich. URL:mediatum.ub.tum.de/doc/1482652/1482652.pdf&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Marco Kiewat for his contributions, elaborate suggestions and help, and critical recommendations.&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 639&lt;br /&gt;
&lt;br /&gt;
=== ノイズ・ユーティリティの向上 ===&lt;br /&gt;
ノイズユーティリティは、時間情報からのデフォルトの自動計算だけでなく、ユーザー定義のサンプリング周波数（キーワード：sampleFreq）もサポートするようになりました。読みやすさを向上させるため、周波数の上限と下限をminFreqとmaxFreqで指定できるようになりました（以前のキーワードも引き続きサポートされています）。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Lower frequency limit, default 25 Hz, former name 'fl'&lt;br /&gt;
minFreq 25;&lt;br /&gt;
&lt;br /&gt;
// Upper frequency limit, default 10 kHz, former name 'fu'&lt;br /&gt;
maxFreq 10000;&lt;br /&gt;
&lt;br /&gt;
// OPTIONAL - Sample frequency&lt;br /&gt;
sampleFreq 100;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;サンプリングされた時間から周波数を計算する際に時間が不均一であると評価された場合、deltaT が非常に小さい場合、不均一性は多くの場合偽のエラーであるため、ユーティリティはエラーではなく警告を発するようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/randomProcesses/noise/noiseModels/noiseModel/noiseModel.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS//incompressible/pimpleFoam/LES/vortexShed&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2999&lt;br /&gt;
&lt;br /&gt;
=== エンサイトの出力向上 ===&lt;br /&gt;
EnSightライターの時間値は、デフォルトの固定フォーマットと精度を使用する代わりに、ユーザーが指定できるようになりました。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    ensight&lt;br /&gt;
    {&lt;br /&gt;
        timeFormat      general; // Format for time directory names (general | fixed | scientific); default scientific&lt;br /&gt;
        timePrecision   12;      // Default = 5&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これらの新しいフォーマットオプションは、例えばノイズユーティリティの圧力サンプリングと組み合わせて、小さなタイムステップを使用する場合に特に便利です。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/ensightWrite/ensightWrite.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Merge request 634&lt;br /&gt;
&lt;br /&gt;
=== 新しいラグランジュ関数オブジェクト ウェーバー数 ===&lt;br /&gt;
表面張力と比較した粒子の慣性の相対的な重要性を監視するために、ラグランジュ関数オブジェクトWeberNumberが運動学小包に導入されています。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cloudFunctions&lt;br /&gt;
{&lt;br /&gt;
    KinematicWeberNumber1&lt;br /&gt;
    {&lt;br /&gt;
        // Mandatory entries&lt;br /&gt;
        type             WeberNumber;&lt;br /&gt;
        sigma            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicWeberNumber/KinematicWeberNumber.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 648&lt;br /&gt;
&lt;br /&gt;
=== 空のサーフェス（surfaceFieldValue）の取り扱いが改善されました。 ===&lt;br /&gt;
ワークフローによっては、サンプリングされたサーフェスが、シミュレーション中に現れたり消えたりするフェイスゾーンなどの量に依存する場合があります。そのため、空のサーフェスでサーフェスフィールドの値を評価することは、通常、セットアップに重大なエラーがあることを示しますが、このようなことが予想される場合もあります。追加キーワードempty-surfaceにより、空のサーフェスに遭遇したときの動作を指定することができます。&lt;br /&gt;
&lt;br /&gt;
最小限の例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
surfaceFieldValueFaceZone1&lt;br /&gt;
{&lt;br /&gt;
    type            surfaceFieldValue;&lt;br /&gt;
    libs            (fieldFunctionObjects);&lt;br /&gt;
    ...&lt;br /&gt;
    regionType      faceZone;&lt;br /&gt;
&lt;br /&gt;
    empty-surface   warn;  // default | warn | ignore | strict&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2966&lt;br /&gt;
&lt;br /&gt;
== Parallel ==&lt;br /&gt;
&lt;br /&gt;
=== 結合パッチフィールド値の一貫性 ===&lt;br /&gt;
結合された制約境界条件、例: プロセッサーとサイクリックは、その内部フィールド値と一致している必要があります。 たとえば、プロセッサ パッチでは、値フィールドに隣接するプロセッサ セルの値が含まれます。つまり、反対側のセルの値がキャッシュされます。 他の結合されたパッチ フィールドは、ローカルおよび隣接セル値の補間値を値として持つ場合があります。 経験則として、セル値を変更するコードはすべて、たとえば、 勾配計算では、値の更新を実行するために境界条件を修正する呼び出しを行う必要があります (プロセッサ境界フィールドでのハロー スワップに相当します)。 ただし、「ローカル」操作の場合、たとえば 乗算では、境界条件に値のみがあり、セル値に依存しない場合、これがスキップされることがあります。 ほとんどの「通常の」境界条件はこのカテゴリに分類されます。&lt;br /&gt;
&lt;br /&gt;
結合境界条件の場合、プロセッサのパッチ フィールドにも適用されますが、たとえば、パッチ フィールドには適用されません。 環状、環状AMI のバリアント。 これにより、中間計算の値が一貫性制約に従わなくなります。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、制約パッチの値がいつでも最新であるように、ローカル操作の後の評価を強制しています。この選択はまだ調査中であり、将来更新される可能性があることに注意してください。&lt;br /&gt;
&lt;br /&gt;
=== patchField の整合性チェックの結合 ===&lt;br /&gt;
ビジュアルコードのチェックで、meshWaveメソッドとmeshWaveAddressingメソッドによって返される壁面距離フィールドが平行一貫していないことが確認されました。このようなエラーを発見しやすくするために、オプションで整合性チェックが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
DebugSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary            1;&lt;br /&gt;
    volVectorField::Boundary            1;&lt;br /&gt;
    volSphericalTensorField::Boundary   1;&lt;br /&gt;
    volSymmTensorField::Boundary        1;&lt;br /&gt;
    volTensorField::Boundary            1;&lt;br /&gt;
&lt;br /&gt;
    areaScalarField::Boundary           1;&lt;br /&gt;
    areaVectorField::Boundary           1;&lt;br /&gt;
    areaSphericalTensorField::Boundary  1;&lt;br /&gt;
    areaSymmTensorField::Boundary       1;&lt;br /&gt;
    areaTensorField::Boundary           1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1 を指定するとチェックが有効になり、チェックに失敗すると FatalError が発生する。特に FOAM_ABORT と組み合わせることで、スタックトレースを生成することができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
FOAM_ABORT=true mpirun -np 2 simpleFoam -parallel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;デバッグ・スイッチはビットマップとして解釈される：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!bit&lt;br /&gt;
!value(2^bit)&lt;br /&gt;
!effect&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|ローカル操作ごとにチェックを加える&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|プリントの入力と終了をチェックする&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|4&lt;br /&gt;
|fatalErrorの代わりにwarning&lt;br /&gt;
|}&lt;br /&gt;
比較の許容誤差はデフォルトで0に設定されている。プロセッサのハロースワップでは、まったく同じ操作がまったく同じ順序で実行されるため、許容誤差の問題はありません。しかし、サイクリックやサイクリックAMIなどの「補間」結合境界条件では、ローカル演算（定数による乗算など）が補間後に実行されるため、若干異なる切り捨て誤差が発生します。この場合、許容誤差をオーバーライドすることができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary::tolerance           1e-10;&lt;br /&gt;
    // .. and similar for all the other field types ..&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
新しい整合性操作は、周期的または周期的AMI境界条件、または結合境界条件を使用する非自明な乱流モデルを使用するケースの動作をわずかに変更します。&lt;br /&gt;
&lt;br /&gt;
オプションとして、etc/controlDictのlocalConsistency設定をオーバーライドすることで、この振る舞いを以前の（一貫性のない！）形に戻すことができる：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    //- Enable enforced consistency of constraint bcs after 'local' operations.&lt;br /&gt;
    //  Default is on. Set to 0/false to revert to &amp;lt;v2306 behaviour&lt;br /&gt;
    localConsistency 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;簡単なテストはcyclicAMIパッチを使ったチュートリアル、例えばpipeCyclicチュートリアルです。上記のDebugSwitchでチェックを有効にすると問題なく動作しますが、localConsistencyフラグを無効にすると不整合が検出されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[0] --&amp;gt; FOAM FATAL ERROR: (openfoam-2302 patch=230110)&lt;br /&gt;
[0] Field dev(symm(grad(U))) is not evaluated? On patch side1 type cyclicAMI : average of field = ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 2783&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 628&lt;br /&gt;
&lt;br /&gt;
==== ノンブロッキング環状A(C)MI ====&lt;br /&gt;
cyclicAMI境界条件は、複数の隣接する面からの面積加重補間を実装します。これらの面はローカルであることも、リモートプロセッサに存在することもあり、並列通信を必要とします。&lt;br /&gt;
&lt;br /&gt;
以前のリリースでは、それぞれのcyclicAMIの評価または線形ソルバーの行列寄与（ローカルでない隣接面の場合）が、独自の通信セットをトリガーし、次のcyclicAMIまたはプロセッサパッチに進む前に、これらの終了を待っていました。このリリースでは、すべての送受信を開始するプロセッサパッチと同様の経路をたどり、ローカル値を更新するためにリモートデータを使用する「消費」フェーズがあります。典型的な境界条件の評価や線形ソルバーの更新は、次のような形になります：&lt;br /&gt;
&lt;br /&gt;
* すべての initEvaluate/initInterfaceMatrixUpdate を行う（結合境界のみ）。プロセッサ、cyclicA(C)MI の場合、これはノンブロッキングの送受信を開始する。&lt;br /&gt;
* すべての通信が終了するのを待つ（または、ポーリング（v2306 nPollProcInterfaces）を使用して以下と組み合わせる）。&lt;br /&gt;
* すべてのevaluate/updateInterfaceMatrixを行う。これは、受信したデータを使用して、行列解への寄与を計算します。&lt;br /&gt;
&lt;br /&gt;
cyclicA(C)MIからの通信をプロセッサの境界条件とまったく同じ方法で処理することで、ボトルネックが発生する可能性が低くなり、スケーリングが向上することが期待される。さらなる最適化として、ローカル送受信バッファは一度割り当てられ、再利用される。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 641&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* any case with &amp;lt;code&amp;gt;cyclicAMI&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cyclicACMI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GAMG : プロセッサ・アグロメレーションにおけるcyclicAMIのサポート ====&lt;br /&gt;
GAMGソルバーは、ローカルアグロメレーションに加えて、プロセッサ間で行列を結合することができます（プロセッサアグロメレーション）。これは、コア数が多い場合に有益です：&lt;br /&gt;
&lt;br /&gt;
* 最も粗いレベルを解くコアの数を減らす - 世界的な削減のほとんどは、最も粗いレベルで起こる。&lt;br /&gt;
* は、スムージングやプリコンディショニングなど、すべての演算の暗黙性を高める。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、cyclicAMIやcyclicACMIなど、すべての連成境界条件のプロセッサアグロメレーションを可能にするようにフレームワークが拡張されました。&lt;br /&gt;
&lt;br /&gt;
テストとして、以下を比較した。&lt;br /&gt;
&lt;br /&gt;
* 40x10x1のブロック1つ、および&lt;br /&gt;
* 2つの20x10x1ブロックがcyclicAMIを使って結合されている。&lt;br /&gt;
&lt;br /&gt;
どちらのケースも4つに分解され、GAMGソルバーとmasterCoarsestプロセッサーのアグロメーターを併用することで、すべての行列がmaster(s)に結合された。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
solvers&lt;br /&gt;
{&lt;br /&gt;
    p&lt;br /&gt;
    {&lt;br /&gt;
        solver                  GAMG;&lt;br /&gt;
        processorAgglomerator   masterCoarsest;&lt;br /&gt;
        ..&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* シングルブロック（つまり、cyclicAMIはなく、プロセッサーフェイスのみ）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells       nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max       avg     max&lt;br /&gt;
   -----  ------         ---     ---       ---     ---&lt;br /&gt;
       0       4         100     100       1.5       2&lt;br /&gt;
       1       4          50      50       1.5       2&lt;br /&gt;
       2       1         100     100         0       0&lt;br /&gt;
       3       1          48      48         0       0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;すべてのプロセッサ面が内部となるため、境界の数（nInterfaces）は0となる。&lt;br /&gt;
&lt;br /&gt;
* 2ブロックの場合（つまり、cyclicAMIとプロセッサフェイス）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells         nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max         avg     max&lt;br /&gt;
   -----  ------         ---     ---         ---     ---&lt;br /&gt;
       0       4         100     100           3       3&lt;br /&gt;
       1       4          50      50           3       3&lt;br /&gt;
       2       1         100     100           2       2&lt;br /&gt;
       3       1          48      48           2       2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ここでは、2つのcyclicAMIのみが保存されるため、境界の数は3つから2つに減る。&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cyclicA(C)MI&amp;lt;/code&amp;gt; :&lt;br /&gt;
** すべての面がローカルになると、動作は非分散にリセットされる。つまり、操作は追加のコピーなしで、提供されたフィールドに直接適用される。&lt;br /&gt;
** 回転変換はまだサポートされていません。これは基本的な制限ではありませんが、変換を考慮するためにステンシルを追加で書き換える必要があります。&lt;br /&gt;
* processorCyclic : (オーナーセルと隣接セルが異なるプロセッサ上にあるサイクリック) はまだサポートされていない。これは通常のプロセッサ境界として扱われるため、変換は失われる。processorCyclicはdecomposeParDictでパッチ制約を使うことで回避できることに注意。&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
constraints&lt;br /&gt;
{&lt;br /&gt;
    patches&lt;br /&gt;
    {&lt;br /&gt;
        //- Keep owner and neighbour on same processor for faces in patches&lt;br /&gt;
        //  (only makes sense for cyclic patches and cyclicAMI)&lt;br /&gt;
        type    preservePatches;&lt;br /&gt;
        patches (cyclic);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* masterCoarsestのみがテストされているが、コードは他のどのプロセッサー凝集法もサポートするはずである。&lt;br /&gt;
* これまでの限られたテストでは、cyclicAMIのプロセッサー集積の利点は示され ていない。これは、ボトルネック、例えば、大域的削減の数や暗黙性が問題となる場合にのみ有効である。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 645&lt;br /&gt;
&lt;br /&gt;
=== redistributeParとファイルシステムの改良 ===&lt;br /&gt;
このリリースでは、照合ファイル・フォーマットの一般的なサポートが改善され、redistributeParユーティリティの調整も行われました。これらの変更により、照合ファイル形式は以前よりも幅広いワークフローで使用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
これらの変更に加え、分散ファイルシステムによるダイナミックコードの取り扱いが改善された。このようなタイプのシステムでは、動的にコンパイルされたライブラリも対応するサブランクに配布されるようになった。&lt;br /&gt;
&lt;br /&gt;
==== 照合されたインクルードファイルの取り扱いが改善された ====&lt;br /&gt;
以前のバージョンでは、&amp;quot;include &amp;quot;ファイルを照合と組み合わせて使用すると、ファイルの内容がランタイムで変更可能なものとして扱われる場合、非常に壊れやすいことがあった。今回、ウォッチド・ファイルの取り扱いが更新され、プロセッサー・ランク間の適切な対応が保証されるようになった。&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
=== New verification and validation public repository ===&lt;br /&gt;
OpenFOAMソフトウェアの検証と妥当性確認に関するコミュニティへの貢献をホストする新しいパブリックリポジトリが開設されました： OpenFOAM Verification and Validation Repository。&lt;br /&gt;
&lt;br /&gt;
このリポジトリの主な目的は、OpenFOAMコミュニティがソフトウェアの検証と検証の側面を共有、協力、強化するための一元化されたプラットフォームを提供することです。コミュニティの集合的な知識と専門知識を結集することにより、OpenFOAMシミュレーションの全体的な品質を向上させ、数値モデリングのベストプラクティスを推進することを目指しています。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、Taylor-Green渦問題と円形Couette流れが組み込まれ、ケースのセットアップとドキュメンテーションのために提供されたテンプレートの実用的な応用が示されています。&lt;br /&gt;
&lt;br /&gt;
=== コンピレーション ===&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
OpenFOAMで使用されるC++標準は、GNUコンパイラでもc++14になりました。この変更により、推奨コンパイラの最小バージョンはgcc-7.5.0になりました。&lt;br /&gt;
&lt;br /&gt;
将来のコード移行を支援するため、「より厳しい」非推奨警告を有効にできるようになりました。これは WM_COMPILE_CONTROL 環境変数の +strict エントリでグローバルに、または wmake -strict で一度だけ有効にできます。これは主に開発者向けのオプションと考えることができます（多くの警告を生成する可能性があります）が、モジュールを書くときに便利で面白いかもしれません。&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
このバージョンには、MacOS上でのコンパイルと実行に関するいくつかの改良が含まれています。&lt;br /&gt;
&lt;br /&gt;
* AppleとARM64のFPE処理の改善（Guanyang Xue氏提供）&lt;br /&gt;
* rpathハンドリング&lt;br /&gt;
* xcrun サポート&lt;br /&gt;
&lt;br /&gt;
MacOS のコンパイルでは、rpath のサポートがデフォルトで有効になり、Apple SIP (System Integrity Protection) の影響に対する回避策がいくらか減って、これらのシステムでの OpenFOAM の実行が簡単になりました。WM_COMPILE_CONTROL環境変数に~rpathを追加することで、rpath処理を無効にできます。&lt;br /&gt;
&lt;br /&gt;
MacOSコンパイルでは、xcodeツール（xcrunなど）の使用もサポートするようになりました。これらはWM_COMPILE_CONTROL環境変数に+xcrunを追加することで有効になります。見つかると、これらのコンパイル・ルールが使用されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cc   := xcrun cc&lt;br /&gt;
CC   := xcrun c++ -std=c++14&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Clang ===&lt;br /&gt;
clangベースのコンパイルで、ldリンカを使用するように明示的に指定できるようになりました（注意：clangがldを使用するかlldを使用するかはインストールに依存します）。リンカの選択は環境変数 WM_COMPILE_CONTROL の対応するエントリで定義されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
- `+gold`    : use gold linker&lt;br /&gt;
- `+link-ld` : use   ld linker&lt;br /&gt;
- `+lld`     : use  lld linker&lt;br /&gt;
- `+mold`    : use mold linker&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenMP ===&lt;br /&gt;
openmp と no-openmp の扱いが強化された。&amp;quot;+openmp&amp;quot; (wmake -openmp) よりも &amp;quot;~openmp&amp;quot; (wmake -no-openmp) の方が優先されます。&lt;br /&gt;
&lt;br /&gt;
これにより、一般的に+openmpを指定する場合はrobusterとなり、特定のビルド・コンポーネント（スタティック・ライブラリやMPIブリッジ・コードなど）を指定する場合は~openmpとなる。&lt;br /&gt;
&lt;br /&gt;
=== Profiling ===&lt;br /&gt;
このバージョンには、Extraeプロファイリング用のフックが含まれています。デフォルトでは、フックは常にOpenFOAMと一緒にビルドされますが、LD_PRELOADによってExtraeが実際にロードされるまで休止しています。これにより、OpenFOAMをその目的専用に再コンパイルすることなく、Extraeのトレースが可能になります。&lt;br /&gt;
&lt;br /&gt;
Josep Pocurull（Barcelona Supercomputing Center）により提供され、exaFOAMプロジェクトの一部として使用されたコード。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/global/profiling/profilingTrigger.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 652&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=850</id>
		<title>OpenFOAM v2312リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=850"/>
		<updated>2023-12-24T08:12:39Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenCFDは、2023年12月リリースのOpenFOAM® v2312を発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v2306の機能を拡張しています。この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージも多数あります。&lt;br /&gt;
&lt;br /&gt;
Ubuntu Linux: Ubuntu 22.04(LTS)、20.04(LTS)、18.04(LTS)、23.04、22.10 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
openSUSE Linux: Leap 15.5 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
Redhat Linuxの亜種: epel 9用のパッケージインストール; Fedora 37&lt;br /&gt;
&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢があります（詳細）：&lt;br /&gt;
&lt;br /&gt;
Windows Subsystem for Linux（Ubuntu、openSUSEなどベース）を使用する。&lt;br /&gt;
&lt;br /&gt;
クロスコンパイルによるネイティブ実行ファイル&lt;br /&gt;
&lt;br /&gt;
docker インストール&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのapptainerサポートは、事前にアセンブルされたイメージではなく、記述ファイルによって提供されます：&lt;br /&gt;
&lt;br /&gt;
パッケージング/コンテナ参照&lt;br /&gt;
&lt;br /&gt;
Mac OSXユーザーは、ソースからコンパイルするか、Dockerコンテナを使ってコンパイル済みのパッケージを使用するオプションがあります（詳細）。&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
=== v2312ユーザーアップグレードガイド ===&lt;br /&gt;
&lt;br /&gt;
=== 挙動の変化 ===&lt;br /&gt;
&lt;br /&gt;
==== デフォルトのEnSightフォーマット ====&lt;br /&gt;
&lt;br /&gt;
* 関数オブジェクトとライターが使用するデフォルトの ensight 出力が、シミュレー ション controlDict で指定される \c writeFormat に依存するのではなく、より一貫して ˶c binary format を使用するようになりました。この変更により、foamToEnsight などのユーティリティや、他のファンクション・ オブジェクトやライターとの動作がより一貫したものになります。&lt;br /&gt;
&lt;br /&gt;
==== Function object: &amp;lt;code&amp;gt;Lambda2&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Lambda2関数オブジェクトの出力が、支配方程式の変更、特に符号の反転によって修正されました。その結果、Lambda2のv2312以前のバージョンで観測された負のフィールド値は、v2312リリースでは正のフィールド値になりました（逆も同様）。&lt;br /&gt;
&lt;br /&gt;
=== 名前変更 ===&lt;br /&gt;
&lt;br /&gt;
==== Function object: &amp;lt;code&amp;gt;WeberNumberReacting&amp;lt;/code&amp;gt; ====&lt;br /&gt;
ラグランジュ関数オブジェクトクラスWeberNumberReactingは、新しいラグランジュ雲関数オブジェクトKinematicWeberNumberとの整合性を確保するため、ReactingWeberNumberと改名された。&lt;br /&gt;
&lt;br /&gt;
=== v2312 Developer Upgrade Guide ===&lt;br /&gt;
&lt;br /&gt;
=== Deprecation and Removal ===&lt;br /&gt;
&lt;br /&gt;
==== Removed Items ====&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;faMesh::operator()&amp;lt;/code&amp;gt; has been removed in favour of &amp;lt;code&amp;gt;mesh()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;thisDb()&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* The &amp;lt;code&amp;gt;typeGlobal()&amp;lt;/code&amp;gt; global function has been replaced with an &amp;lt;code&amp;gt;is_globalIOobject&amp;lt;Type&amp;gt;&amp;lt;/code&amp;gt; traits structure for more consistent and easier overriding. The ancillary &amp;lt;code&amp;gt;typeFilePath()&amp;lt;/code&amp;gt; global function has been superseded by global function as a member of &amp;lt;code&amp;gt;IOobject::typeFilePath&amp;lt;/code&amp;gt; for consistency with &amp;lt;code&amp;gt;IOobject::typeHeaderOk&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changes in definition ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ReadFields&amp;lt;/code&amp;gt; now uses a &amp;lt;code&amp;gt;DynamicList&amp;lt;/code&amp;gt; to implement its LIFO for handling stored objects. The older &amp;lt;code&amp;gt;LIFOStack&amp;lt;/code&amp;gt; interface is marked as ''deprecated'' since it requires more allocations and overhead.&lt;br /&gt;
* Deprecate some &amp;lt;code&amp;gt;IOobjectList::sorted()&amp;lt;/code&amp;gt; const-access methods in favour of the new &amp;lt;code&amp;gt;csorted()&amp;lt;/code&amp;gt; methods. This provides method name consistency with &amp;lt;code&amp;gt;HashTable&amp;lt;/code&amp;gt; and ensures an unambiguous return type.&lt;br /&gt;
* The internal dictionary separator has changed from &amp;lt;code&amp;gt;'.'&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;'/'&amp;lt;/code&amp;gt;, which simplifies internal handling (like a fileName) and allows the dictionary name to be used with unambiguous addressing. No particular side-effects of this change are expected, except if the raw dictionary names have been directly reparsed within code.&lt;br /&gt;
&lt;br /&gt;
=== Changes in inheritance ===&lt;br /&gt;
The &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; class used by &amp;lt;code&amp;gt;fvMesh&amp;lt;/code&amp;gt; has been replaced by member data at the &amp;lt;code&amp;gt;polyMesh&amp;lt;/code&amp;gt; level. For a developer, this means that the following (fragile and ugly) code will now most certainly break!&lt;br /&gt;
 &amp;lt;code&amp;gt;obr.lookupObject&amp;lt;fvMesh&amp;gt;(&amp;quot;data&amp;quot;)   // This was never a good idea&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Relocated Methods ===&lt;br /&gt;
Promote &amp;lt;code&amp;gt;ListOps::identity&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Foam::identity&amp;lt;/code&amp;gt; this becoming more frequently used and there is no ambiguity in calling parameters. Handles both int32 and int64 versions.&lt;br /&gt;
&lt;br /&gt;
=== Container improvements / changes ===&lt;br /&gt;
As with some many releases, the underlying OpenFOAM containers have been upgraded and tweaked in a variety of ways. Some of the focus has been on modernizing internal copying, filling, moving data by harnessing using C++ algorithms in more places. Apart from general code reduction, the shift to algorithms helps provision for different execution models (eg, &amp;lt;code&amp;gt;std::execution::parallel_unsequenced_policy&amp;lt;/code&amp;gt;) in the future.&lt;br /&gt;
&lt;br /&gt;
==== HashTable construct ====&lt;br /&gt;
The default constructors for &amp;lt;code&amp;gt;HashTable&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;HashSet&amp;lt;/code&amp;gt; now truly correspond to a zero-size construct (ie, they invoke no allocations) and are also &amp;lt;code&amp;gt;noexcept&amp;lt;/code&amp;gt;. This is particularly convenient and useful when managing lists of hash sets etc. The move constructors are also now noexcept as well.&lt;br /&gt;
&lt;br /&gt;
* removed unused &amp;lt;code&amp;gt;HashTable(Istream&amp;amp;, label)&amp;lt;/code&amp;gt; constructor.&lt;br /&gt;
&lt;br /&gt;
==== HashTable sizing improvements ====&lt;br /&gt;
&lt;br /&gt;
* earlier deletion of unpopulated HashTable on resizing:  If the table is already clear (ie, has no entries), can immediately remove the old internal table before reallocating the newly sized table, which may avoid a needless memory spike.&lt;br /&gt;
* reserve() method:  Naming and general behaviour as per &amp;lt;code&amp;gt;std::unordered_map&amp;lt;/code&amp;gt;. It behaves similarly to the &amp;lt;code&amp;gt;resize()&amp;lt;/code&amp;gt; method but is supplied the number of elements instead of the capacity, which can be a more natural way of specifying the storage requirements. Additionally, &amp;lt;code&amp;gt;reserve()&amp;lt;/code&amp;gt; will only increase the table capacity for behaviour similar to &amp;lt;code&amp;gt;DynamicList&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;std::vector&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;std::string&amp;lt;/code&amp;gt; etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C++の最低規格は、2024年にC++11からC++17に引き上げられる予定である。&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：自動リークパスクロージャーから面を書き込む ===&lt;br /&gt;
snappyHexMeshにはメッシュ内の任意の位置とメッシュ外の位置の間のパスとして定義されたサーフェスのリークを自動的に閉じるオプションがあります。このリリースではリークを閉じるために使用された面はpostProcessingディレクトリのファイルに書き込まれます。&lt;br /&gt;
&lt;br /&gt;
下図は、ギャップのある球体（灰色）、スナップされたメッシュライン（青）、リークを閉じる面（赤）からなるテストケースを示しています：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ファイル書き込みフォーマットはsnappyHexMeshDictの新しいエントリーで選択できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//// Format for writing lines. E.g. leak path. Default is vtk format.&lt;br /&gt;
//setFormat ensight;&lt;br /&gt;
&lt;br /&gt;
//// Format to use for surfaces. E.g. leak-closure faces. Default is vtk format.&lt;br /&gt;
//surfaceFormat vtk;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_gapClosure&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：新しい複数の内側ポイント ===&lt;br /&gt;
snappyHexMeshのセルゾーンはinsidePointを指定することで作成できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
refinementSurfaces&lt;br /&gt;
{&lt;br /&gt;
    ..&lt;br /&gt;
    cellZoneInside insidePoint;    // outside/insidePoint&lt;br /&gt;
    insidePoint    (1 1 1);        // if (cellZoneInside == insidePoint)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1つのinsidePointではなく、複数のinsidePointが用意された：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cellZoneInside insidePoints;      // outside/insidePoint&lt;br /&gt;
insidePoints   ((1 1 1));         // if (cellZoneInside == insidePoint)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図では、ジオメトリは2つのボックス（ワイヤーフレーム）で構成され、上のボックスは2つの切り離されたメッシュ領域をカバーしている。赤で示されたセルゾーンは、3つの別々のメッシュ領域を使用して作成されています。checkMeshユーティリティは、切断されたリージョンを表示するために使うことができます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/insidePoints&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/refinementSurfaces/surfaceZonesInfo.H&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：並列メッシュの負荷分散 ===&lt;br /&gt;
snappyHexMeshは並列実行時に自動的にメッシュのバランスをとることができます。それは以下のどちらかになります&lt;br /&gt;
&lt;br /&gt;
* 変更が小さすぎる場合はバランスを取らない - maxLoadUnbalanceまたはmaxCellUnbalance設定を参照。&lt;br /&gt;
* maxLocalCells設定を参照してください。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、各ステップでメッシュのアンバランスがプリントされます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Layer mesh : cells:353749  faces:1108448  points:406303  unbalance:0.00110248&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;精製前のバランスは、セルの重みを与えることで実装されることに注意。各精製されるセルは8ずつカウントされる。しかし、これは単純な分解法、例えば階層的な分解法にのみ有効である。scotch と KaHip メソッドでは、カット数を含む重みを使ってアンバランスを最小化する。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* any parallel snappyHexMesh case&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 3034&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：レイヤーごとの追加 ===&lt;br /&gt;
OpenFOAM v2206リリースでは、snappyHexMeshが拡張され、nOuterIterエントリーを使用して複数パスでレイヤーを追加できるようになりました。ここでは、$FOAM_TUTORIALS/incompressible/pisoFoam/LES/motorBike/motorBikeチュートリアルを出発点として、どのように改良されたレイヤーの追加を実行できるかをデモしたいと思います：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
relativeSizes false; // true&lt;br /&gt;
&lt;br /&gt;
// Per final patch (so not geometry!) the layer information&lt;br /&gt;
layers&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;(lowerWall|motorBike).*&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        nSurfaceLayers 16;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Expansion factor for layer mesh&lt;br /&gt;
expansionRatio 1.2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;重要な設定は、外側の反復回数とメッシュ・モーション・ソルバーである：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Overall max number of layer addition iterations&lt;br /&gt;
nLayerIter      25;&lt;br /&gt;
&lt;br /&gt;
// Add layers in multiple passes - gives layers a chance to rotate&lt;br /&gt;
nOuterIter      4;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meshShrinker    displacementMotionSolver;&lt;br /&gt;
solver          displacementLaplacian;&lt;br /&gt;
displacementLaplacianCoeffs&lt;br /&gt;
{&lt;br /&gt;
    diffusivity quadratic inverseDistance (lowerWall upperWall &amp;quot;motorBike*&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;メッシュの品質基準を緩めることで、（全体的なメッシュ品質は維持したまま）この複雑な形状でもレイヤーカバレッジを劇的に向上させることができる。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/addLayersToFaceZone&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
=== Nastranサーフェスリーダーの改良 ===&lt;br /&gt;
NASTRANパーサーが更新され、PSHELL名の新しいANSA規約に対応しました。これにより、snappyHexMeshなど、より多くの場所でNASTRANファイルを直接使用することができるようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/surfaceFormats/nas/NASsurfaceFormat.C&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 3009&lt;br /&gt;
&lt;br /&gt;
=== checkMeshユーティリティの改良 ===&lt;br /&gt;
checkMesh ユーティリティに writeChecks オプションが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -writeChecks &amp;lt;format&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これにより、メッシュ・チェックのフォーマットを含むファイルが生成される：&lt;br /&gt;
&lt;br /&gt;
* dictionary : OpenFOAM dictionary;&lt;br /&gt;
* json : JSON format.&lt;br /&gt;
&lt;br /&gt;
例えば、コマンドを使う：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -allGeometry -allTopology -writeChecks JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;motorBikeチュートリアルでは、caseディレクトリにcheckMesh.jsonファイルが生成される：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;maxNonOrth&amp;quot; : 64.9999,&lt;br /&gt;
    &amp;quot;aveNonOrth&amp;quot; : 9.92427,&lt;br /&gt;
    &amp;quot;maxSkew&amp;quot; : 9.25719,&lt;br /&gt;
    &amp;quot;nWarnSkew&amp;quot; : 12,&lt;br /&gt;
    &amp;quot;minDeterminant&amp;quot; : 0,&lt;br /&gt;
    &amp;quot;aveDeterminant&amp;quot; : 1.55371,&lt;br /&gt;
    &amp;quot;thresholdDeterminant&amp;quot; : 0.001,&lt;br /&gt;
    &amp;quot;nErrorDeterminant&amp;quot; : 1274,&lt;br /&gt;
    &amp;quot;minFaceWeight&amp;quot; : 0.0216708,&lt;br /&gt;
    &amp;quot;aveFaceWeight&amp;quot; : 0.465687,&lt;br /&gt;
    &amp;quot;thresholdFaceWeight&amp;quot; : 0.05,&lt;br /&gt;
    &amp;quot;nErrorFaceWeight&amp;quot; : 1143,&lt;br /&gt;
    &amp;quot;minFaceVolumeRatio&amp;quot; : 0.0101126,&lt;br /&gt;
    &amp;quot;aveFaceVolumeRatio&amp;quot; : 0.846049&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/mesh/manipulation/checkMesh/checkMesh.C&lt;br /&gt;
&lt;br /&gt;
=== subsetMeshユーティリティの改良 ===&lt;br /&gt;
subsetMesh ユーティリティが更新され、通常の -patches 選択を変更する -exclude-patches オプションを受け付けるようになりました。&lt;br /&gt;
&lt;br /&gt;
この変更により、最も近い露出パッチの指定が簡単になりました。&lt;br /&gt;
&lt;br /&gt;
== Numerics ==&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 随伴形状最適化の改善 ===&lt;br /&gt;
形状最適化のための感度微分を計算するためのE-SIとFI定式化間の整合性が改善されました。naca0012/laminar/moment/primalAdjointチュートリアルから取得した、変更前後のコード動作の例を以下に示します：&lt;br /&gt;
&lt;br /&gt;
一貫した点／面の感度マップ&lt;br /&gt;
&lt;br /&gt;
v2306とv2312で計算されたドラッグ感度マップを比較すると、a)新しいポイント-フェイス補間は、生の、つまり平滑化されていない感度でも、より滑らかな結果を生成する。&lt;br /&gt;
&lt;br /&gt;
さらなる改善点は以下の通り：&lt;br /&gt;
&lt;br /&gt;
* 不必要に新しいアドジョイントフィールドを割り当てることなく幾何学的制約を定義するための新しいアドジョイントソルバ（null）と目的関数（geometric）タイプ&lt;br /&gt;
&lt;br /&gt;
* 不等式制約のある最適化問題に取り組むための3つの新しい更新法（ISQP, nullSpace, MMA）&lt;br /&gt;
* 設計変数に境界を導入。ボリューメトリックBスプラインの場合、最適化を通してメッシュの品質をより良く保つことができます。&lt;br /&gt;
* 最適化ループの収束基準の導入。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/naca0012/laminar/multipleConstraints&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 トポロジーに基づく新しいアジョイント最適化 ===&lt;br /&gt;
OpenFOAM v2312では、空隙率ベースまたはレベルセットアプローチによる新しいトポロジー最適化機能が追加されました。どちらも、設計されたジオメトリをSTLとしてエクスポートする機能を備えており、製造やボディフィットグリッドによる再評価に利用できます。&lt;br /&gt;
&lt;br /&gt;
空隙率ベースのアプローチは、計算領域の非生産的な部分を固めることでブロックする設計変数の場（人工空隙率α）に依存する。得られた解の平滑性を高めるために、正則化方程式を解いて中間場α̃を計算し、次にシャープニング/プロジェクションステップを経てほぼ二値の場βを計算します。後者は、固化した領域（すなわちβ≈1の領域）で流れ解をゼロにするソース項を流れ方程式に導入するために使用されます。上記のプロセスの手順を以下に示す。&lt;br /&gt;
&lt;br /&gt;
次の表は、同じケースの3つの異なるバリエーション、すなわち、Jpt＜Jpttarget制約（右）の下で、総圧力損失（Jpt）の最小化（左）、下部出口と右出口間の体積流量の均等配分制約（Jm）を伴うJptの最小化（中央）、および流れの均一性（Jun）の最大化（右）に対するトポロジー最適化の結果を示している。&lt;br /&gt;
&lt;br /&gt;
ケースは、adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/BPにあります。&lt;br /&gt;
&lt;br /&gt;
次の表は、同様の目的関数と制約関数を持つ3次元多様体のトポロジー最適化の結果を示しています。最初の行は、最適化サイクル中の計算領域の流体部分と固体部分の境界の進行を示し、最後の行は、最適化された3つの形状のSTLファイルを示しています。後者の生成プロセスは自動化されており、各最適化サイクルの終了時に実行されます。これらのSTLファイルは、適切な境界条件によるボディフィットシミュレーションや、その後の形状最適化、さらには製造に使用することができます。&lt;br /&gt;
&lt;br /&gt;
ケースはtopologyOptimisation/monoFluidAero/laminar/3DBoxにあります。&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
optimisationDict.optimisationの項目が少し変わりました。この変更は、例えば、$FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/motorBikeのoptimisationDictを以前のものと比較することで確認できます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
== Solvers and physical models ==&lt;br /&gt;
&lt;br /&gt;
=== fvOptionsの改良：ポイントの移動 ===&lt;br /&gt;
有限体積オプション（fvOptions）フレームワークが改良されました：&lt;br /&gt;
&lt;br /&gt;
* 入力辞書の更新により、セル選択を実行時に更新できるようになりました。&lt;br /&gt;
* 空間内を移動する点をモデル化する新しい方法。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
fvOption1&lt;br /&gt;
{&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    updateSelection         true;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fvOption2&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    selectionMode   movingPoints;&lt;br /&gt;
&lt;br /&gt;
    movingPoints&lt;br /&gt;
    {&lt;br /&gt;
        point1        table&lt;br /&gt;
        (&lt;br /&gt;
            // time    position&lt;br /&gt;
            (  0 (0 0 0.75))&lt;br /&gt;
            (  1 (0 0 0.65))&lt;br /&gt;
            (  2 (0 0 0.55))&lt;br /&gt;
            (  3 (0 0 0.45))&lt;br /&gt;
            (  4 (0 0 0.35))&lt;br /&gt;
            (  5 (0 0 0.25))&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        point2        (-0.25 -0.25 0.5);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/cellSetOption/cellSetOption.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== 新しい fvOption: マップされたフィールド制約 ===&lt;br /&gt;
MapFieldConstraintは、外部メッシュからのソース・フィールドを使用して、&amp;lt;Type&amp;gt;型の指定フィールドに値の制約を課します。ここで、&amp;lt;Type&amp;gt;には{scalar, vector, sphericalTensor, symmTensor, tensor}を指定できます。オプションとして、ソースフィールドは時間経過とともに平行移動または回転させることができます。&lt;br /&gt;
&lt;br /&gt;
考えられる用途は、例えば、移動する電気源の影響をモデル化することである。最小限の使用例を以下に示す：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
MapFieldConstraint1&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type                MapFieldConstraint;&lt;br /&gt;
    field               &amp;lt;word&amp;gt;;&lt;br /&gt;
    srcMesh             &amp;lt;fileName&amp;gt;;&lt;br /&gt;
    mapMethod           &amp;lt;word&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    consistent          &amp;lt;bool&amp;gt;;&lt;br /&gt;
    patchMapMethod      &amp;lt;word&amp;gt;;&lt;br /&gt;
    transform&lt;br /&gt;
    {&lt;br /&gt;
        // Optional entries&lt;br /&gt;
        position    &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        origin      &amp;lt;vector&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
        direction   &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        normal      &amp;lt;vector&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Conditional entries&lt;br /&gt;
&lt;br /&gt;
        // when consistent=false&lt;br /&gt;
        patchMap        &amp;lt;HashTable&amp;lt;word&amp;gt;&amp;gt;;  // (&amp;lt;patchSrc&amp;gt; &amp;lt;patchTgt&amp;gt;);&lt;br /&gt;
        cuttingPatches  &amp;lt;wordList&amp;gt;;  // (&amp;lt;patchTgt1&amp;gt; ... &amp;lt;patchTgtN&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
    // Inherited entries&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/constraints/general/mapFieldConstraint/MapFieldConstraint.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献：新しい乱流技術委員会サブモジュール ===&lt;br /&gt;
OpenFOAMガバナンス内のTurbulence Technical Committeeのネストされたサブモジュールを含む新しいコミュニティサブモジュールが開始されました。このサブモジュールは、公開されている Turbulence Technical Committee のリポジトリでホストされています。&lt;br /&gt;
&lt;br /&gt;
コミュニティ・サブモジュールは、乱流モデリングに関連する学術的・産業的な貢献のホストとして機能し、知識交換の場を作り、この分野とOpenFOAMの両方を発展させるコラボレーションを促進します。&lt;br /&gt;
&lt;br /&gt;
BitbucketやGitHubのようなGitベースのソースコード・リポジトリ・ホスティング・サービスでホストし、このサブモジュールを介してOpenFOAMソフトウェアにリンクすることができます。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、サブモジュールにlibWallModelledLESライブラリーが組み込まれ、壁面モデルによるラージ・エディ・シミュレーション（WMLES）の領域でOpenFOAMの機能が拡張されました。この乱流モデリング手法は、乱流境界層の内部領域の解像度を回避することで、費用対効果の高いLESを可能にします。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $WM_PROJECT_DIR/modules/turbulence-community&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Turbulence Technical Committee members for their contributions and help.&lt;br /&gt;
&lt;br /&gt;
=== 改善されたラグランジュ・ブラウン運動 ===&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。しかし、特に指定がない限り、（互換性のために）デフォルトの球形分布が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。&lt;br /&gt;
&lt;br /&gt;
しかし、特に指定がない限り、適度に小さな時間ステップでは不正確であるにもかかわらず、（互換性のために）デフォルトの球面処理が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
三次分布は、球面処理が明示的に無効化されている場合に使用される。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subModels&lt;br /&gt;
{&lt;br /&gt;
    particleForces&lt;br /&gt;
    {&lt;br /&gt;
        sphereDrag;&lt;br /&gt;
        BrownianMotion&lt;br /&gt;
        {&lt;br /&gt;
            lambda     2e-10;&lt;br /&gt;
            turbulence false;&lt;br /&gt;
            spherical  false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;立方体分布と球形分布の違いは次の図に見られる。&lt;br /&gt;
&lt;br /&gt;
変更の報告、検証、テストはGuanyang Xueの好意によるものである。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2922&lt;br /&gt;
&lt;br /&gt;
Merge request 634&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusサンプルセット ===&lt;br /&gt;
新しい abaqusMesh セットは、Abaqus メッシュポイント形式を使用してファイルからサンプル位置を導出します。使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sets&lt;br /&gt;
{&lt;br /&gt;
    cone25 // user-specified set name&lt;br /&gt;
    {&lt;br /&gt;
        type        abaqusMesh;&lt;br /&gt;
        file        &amp;quot;abaqusMesh.inp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Scale, e.g. mm to m&lt;br /&gt;
        scale       0.001;&lt;br /&gt;
&lt;br /&gt;
        // Search distance when the sample point is not located in a cell&lt;br /&gt;
        maxDist     0.25;&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/abaqus&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusセットライター ===&lt;br /&gt;
新しいAbaqusセットライターはOpenFOAMセットデータをAbaqusフォーマットに変換します。使用例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
T&lt;br /&gt;
{&lt;br /&gt;
    type sets;&lt;br /&gt;
    setFormat abaqus;&lt;br /&gt;
    fields (T);&lt;br /&gt;
    sets&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;オプションの書式オプションは、formatOptions辞書内のabaqusサブ辞書で提供されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    abaqus&lt;br /&gt;
    {&lt;br /&gt;
        format      ascii;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Custom header: $ entries are substituions&lt;br /&gt;
        header&lt;br /&gt;
        (&lt;br /&gt;
            &amp;quot;** OpenFOAM abaqus output&amp;quot;&lt;br /&gt;
            &amp;quot;** Project $FOAM_CASE&amp;quot;&lt;br /&gt;
            &amp;quot;** File $FILE_NAME&amp;quot;&lt;br /&gt;
            &amp;quot;** $FIELD_NAME Time t=$TIME&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        // Write geometry in addition to field data&lt;br /&gt;
        writeGeometry yes;&lt;br /&gt;
&lt;br /&gt;
        // Null value when sample value is not found&lt;br /&gt;
        // Default is scalar::min&lt;br /&gt;
        nullValue   0;&lt;br /&gt;
&lt;br /&gt;
        // Insert additional time sub-directory in the output path&lt;br /&gt;
        // - yes : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;time&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        // - no : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        useTimeDir  no;&lt;br /&gt;
&lt;br /&gt;
        // Available when 'useTimeDir' is 'no' to disambiguate file names&lt;br /&gt;
&lt;br /&gt;
        // Time base for output file names:&lt;br /&gt;
        // - 'time' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;time&amp;gt;&lt;br /&gt;
        // - 'iteration' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;iteration&amp;gt;&lt;br /&gt;
        timeBase    iteration;&lt;br /&gt;
&lt;br /&gt;
        // Optional start counters when using timeBase iteration&lt;br /&gt;
        writeIndex&lt;br /&gt;
        (&lt;br /&gt;
            T 1&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/coordSet/writers/abaqus/abaqusCoordSetWriter.C&lt;br /&gt;
&lt;br /&gt;
=== パッチ・シード・セットの改善 ===&lt;br /&gt;
patchSeed sampled setがパッチ全体で一様にサンプルシードを計算するようになりました。以前の実装では、顔のインデックスをパッチ全体で一様にサンプリングしていましたが、その副作用として、より小さな顔に偏りがありました。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
streamline5&lt;br /&gt;
{&lt;br /&gt;
    type                streamLine;&lt;br /&gt;
    libs                (fieldFunctionObjects);&lt;br /&gt;
    U                   U;&lt;br /&gt;
    fields              (U p);&lt;br /&gt;
    setFormat           vtk;&lt;br /&gt;
    direction           forward;&lt;br /&gt;
    lifeTime            20000;&lt;br /&gt;
    cloud               particleTracks;&lt;br /&gt;
    seedSampleSet&lt;br /&gt;
    {&lt;br /&gt;
        type            patchSeed;&lt;br /&gt;
        axis            xyz;&lt;br /&gt;
        patches         (&amp;quot;inlet1&amp;quot;);&lt;br /&gt;
        maxPoints       40;&lt;br /&gt;
    }&lt;br /&gt;
    interpolationScheme cellPoint;&lt;br /&gt;
    trackLength         0.001;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/patchSeed&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 647&lt;br /&gt;
&lt;br /&gt;
=== 新しいケース情報機能オブジェクト ===&lt;br /&gt;
新しい caseInfo 関数オブジェクトは、実行時または後処理の一部として、ソルバーとケースの情報を生成します。収集されるデータには以下が含まれます：&lt;br /&gt;
&lt;br /&gt;
* メタデータ：ケース名、パス、タイムディレクトリ数など。&lt;br /&gt;
* 辞書エントリ : 任意の入力辞書からすべて/選択したものを抽出&lt;br /&gt;
** fvSolutionからUリニアソルバーを取得するには、'solvers/U/solver'などのスコープを使用する。&lt;br /&gt;
** はワイルドカードをサポートしている。例えば、fvSolution U ソルバー・キーワードが&amp;quot;(U|k|epsilon) &amp;quot;であった場合。&lt;br /&gt;
** include'または'exclude'リストを使用して、含める/除外するエントリ名の選択を制限する。&lt;br /&gt;
* メッシュ統計：点、面、セルの数、境界、ゾーン名など。&lt;br /&gt;
* 関数オブジェクトの結果：関数オブジェクトの結果のキャッシュ値など&lt;br /&gt;
&lt;br /&gt;
使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
caseInfo1&lt;br /&gt;
{&lt;br /&gt;
    type        caseInfo;&lt;br /&gt;
    libs        (utilityFunctionObjects);&lt;br /&gt;
&lt;br /&gt;
    writeFormat json; // josn | dictionary&lt;br /&gt;
&lt;br /&gt;
    // List of dictionaries - retrieve using 'path' or registered 'name'&lt;br /&gt;
    dictionaries&lt;br /&gt;
    {&lt;br /&gt;
        fvSolution&lt;br /&gt;
        {&lt;br /&gt;
            name        &amp;quot;fvSolution&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // include all entries by default&lt;br /&gt;
        }&lt;br /&gt;
        controlDict&lt;br /&gt;
        {&lt;br /&gt;
            path        &amp;quot;system/controlDict&amp;quot;;&lt;br /&gt;
            include&lt;br /&gt;
            (&lt;br /&gt;
                &amp;quot;application&amp;quot;&lt;br /&gt;
                &amp;quot;deltaT&amp;quot;&lt;br /&gt;
                &amp;quot;startTime&amp;quot;&lt;br /&gt;
                &amp;quot;endTime&amp;quot;&lt;br /&gt;
            );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Extract function object results&lt;br /&gt;
    functionObjects (pressureDifference sample1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;出力例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;meta&amp;quot; : {&lt;br /&gt;
        &amp;quot;case&amp;quot; : &amp;quot;heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;path&amp;quot; : &amp;quot;chtMultiRegionSimpleFoam/heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;regions&amp;quot; : [&amp;quot;air&amp;quot;, &amp;quot;porous&amp;quot;],&lt;br /&gt;
        &amp;quot;nTimes&amp;quot; : 7,&lt;br /&gt;
        &amp;quot;nProc&amp;quot; : 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;regions&amp;quot; : {&lt;br /&gt;
        &amp;quot;air&amp;quot; : {&lt;br /&gt;
            &amp;quot;mesh&amp;quot; : {&lt;br /&gt;
                &amp;quot;nGeometricD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nSolutionD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nPoints&amp;quot; : 252991,&lt;br /&gt;
                &amp;quot;nFaces&amp;quot; : 739260,&lt;br /&gt;
                &amp;quot;nCells&amp;quot; : 243000,&lt;br /&gt;
                &amp;quot;nPatches&amp;quot; : 4,&lt;br /&gt;
                &amp;quot;pointZones&amp;quot; : [],&lt;br /&gt;
                &amp;quot;faceZones&amp;quot; : [&amp;quot;rotorBlades&amp;quot;, &amp;quot;baffleFaces&amp;quot;],&lt;br /&gt;
                &amp;quot;cellZones&amp;quot; : [&amp;quot;cylinder&amp;quot;, &amp;quot;innerCylinder&amp;quot;, &amp;quot;rotor&amp;quot;],&lt;br /&gt;
                &amp;quot;boundsMin&amp;quot; : [0, 0, 0],&lt;br /&gt;
                &amp;quot;boundsMax&amp;quot; : [5.000000e-01, 5.000000e-01, 5.000000e-01],&lt;br /&gt;
                &amp;quot;clouds&amp;quot; : []&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;boundary&amp;quot; : {&lt;br /&gt;
                &amp;quot;types&amp;quot; : {&lt;br /&gt;
                    &amp;quot;walls&amp;quot; : &amp;quot;wall&amp;quot;,&lt;br /&gt;
                    &amp;quot;inlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;outlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;blades&amp;quot; : &amp;quot;wall&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;fields&amp;quot; : {&lt;br /&gt;
                    &amp;quot;alphat&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;nut&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;p&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;calculated&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/caseInfo&lt;br /&gt;
&lt;br /&gt;
== DMDによる新しい低次モデリング磁場再構成 ==&lt;br /&gt;
動的モード分解（DMD）機能は、OpenFOAM v2006で導入され、その後OpenFOAM v2106で拡張されました。このリリースにより、OpenFOAMは、DMDの主な利点の1つである、任意の中間時点や将来の時点におけるCFD計算を必要とせずに、与えられたモードとそれに関連するダイナミクスに基づいて場を生成する機能を習得しました。&lt;br /&gt;
&lt;br /&gt;
この機能により、ユーザーはシミュレーション全体をいくつかのモードとモードダイナミクスに凝縮し、CFD解析を追加することなく、任意の時間における場の生成や将来の状態の予測を行うことができます。&lt;br /&gt;
&lt;br /&gt;
もう一つの潜在的な利点は、ユーザーがシミュレーションを短縮し、大規模なシミュレーションを行うことなく流れ場の将来の状態を予測できることである。これは、より短時間のシミュレーションで得られたモードとモードダイナミクスを使用することで実現できます。&lt;br /&gt;
&lt;br /&gt;
結果の質は、基礎となる縮小モデルの能力と入力データの質に依存することに留意すべきである。再構成結果を改善するためには、流れからモードが正しく抽出されていることを確認する必要がある。&lt;br /&gt;
&lt;br /&gt;
system/ROMfieldsDictを使った最小の例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Mandatory entries&lt;br /&gt;
ROMmodel        &amp;lt;word&amp;gt;;&lt;br /&gt;
field           &amp;lt;word&amp;gt;;&lt;br /&gt;
object          &amp;lt;word&amp;gt;;&lt;br /&gt;
deltaT          &amp;lt;scalar&amp;gt;;&lt;br /&gt;
time            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
modes           &amp;lt;labelList&amp;gt;;&lt;br /&gt;
amplitudes      &amp;lt;complexList&amp;gt;;&lt;br /&gt;
eigenvalues     &amp;lt;complexList&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Optional entries&lt;br /&gt;
startTime       &amp;lt;scalar&amp;gt;;&lt;br /&gt;
dimensions      &amp;lt;dimensionSet&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Inherited entries&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図は、2次元円柱チュートリアルから得られた速度場と、シミュレーションを実行せずにDMDモードとダイナミクスを使用して再構成したものです：&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/createROMfields.C&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/ROMmodels/DMD/DMD.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
&lt;br /&gt;
* Kiewat, M. (2019). Streaming modal decomposition approaches for vehicle aerodynamics. PhD thesis. Munich: Technical University of Munich. URL:mediatum.ub.tum.de/doc/1482652/1482652.pdf&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Marco Kiewat for his contributions, elaborate suggestions and help, and critical recommendations.&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 639&lt;br /&gt;
&lt;br /&gt;
=== ノイズ・ユーティリティの向上 ===&lt;br /&gt;
ノイズユーティリティは、時間情報からのデフォルトの自動計算だけでなく、ユーザー定義のサンプリング周波数（キーワード：sampleFreq）もサポートするようになりました。読みやすさを向上させるため、周波数の上限と下限をminFreqとmaxFreqで指定できるようになりました（以前のキーワードも引き続きサポートされています）。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Lower frequency limit, default 25 Hz, former name 'fl'&lt;br /&gt;
minFreq 25;&lt;br /&gt;
&lt;br /&gt;
// Upper frequency limit, default 10 kHz, former name 'fu'&lt;br /&gt;
maxFreq 10000;&lt;br /&gt;
&lt;br /&gt;
// OPTIONAL - Sample frequency&lt;br /&gt;
sampleFreq 100;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;サンプリングされた時間から周波数を計算する際に時間が不均一であると評価された場合、deltaT が非常に小さい場合、不均一性は多くの場合偽のエラーであるため、ユーティリティはエラーではなく警告を発するようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/randomProcesses/noise/noiseModels/noiseModel/noiseModel.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS//incompressible/pimpleFoam/LES/vortexShed&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2999&lt;br /&gt;
&lt;br /&gt;
=== エンサイトの出力向上 ===&lt;br /&gt;
EnSightライターの時間値は、デフォルトの固定フォーマットと精度を使用する代わりに、ユーザーが指定できるようになりました。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    ensight&lt;br /&gt;
    {&lt;br /&gt;
        timeFormat      general; // Format for time directory names (general | fixed | scientific); default scientific&lt;br /&gt;
        timePrecision   12;      // Default = 5&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これらの新しいフォーマットオプションは、例えばノイズユーティリティの圧力サンプリングと組み合わせて、小さなタイムステップを使用する場合に特に便利です。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/ensightWrite/ensightWrite.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Merge request 634&lt;br /&gt;
&lt;br /&gt;
=== 新しいラグランジュ関数オブジェクト ウェーバー数 ===&lt;br /&gt;
表面張力と比較した粒子の慣性の相対的な重要性を監視するために、ラグランジュ関数オブジェクトWeberNumberが運動学小包に導入されています。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cloudFunctions&lt;br /&gt;
{&lt;br /&gt;
    KinematicWeberNumber1&lt;br /&gt;
    {&lt;br /&gt;
        // Mandatory entries&lt;br /&gt;
        type             WeberNumber;&lt;br /&gt;
        sigma            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicWeberNumber/KinematicWeberNumber.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 648&lt;br /&gt;
&lt;br /&gt;
=== 空のサーフェス（surfaceFieldValue）の取り扱いが改善されました。 ===&lt;br /&gt;
ワークフローによっては、サンプリングされたサーフェスが、シミュレーション中に現れたり消えたりするフェイスゾーンなどの量に依存する場合があります。そのため、空のサーフェスでサーフェスフィールドの値を評価することは、通常、セットアップに重大なエラーがあることを示しますが、このようなことが予想される場合もあります。追加キーワードempty-surfaceにより、空のサーフェスに遭遇したときの動作を指定することができます。&lt;br /&gt;
&lt;br /&gt;
最小限の例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
surfaceFieldValueFaceZone1&lt;br /&gt;
{&lt;br /&gt;
    type            surfaceFieldValue;&lt;br /&gt;
    libs            (fieldFunctionObjects);&lt;br /&gt;
    ...&lt;br /&gt;
    regionType      faceZone;&lt;br /&gt;
&lt;br /&gt;
    empty-surface   warn;  // default | warn | ignore | strict&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2966&lt;br /&gt;
&lt;br /&gt;
== Parallel ==&lt;br /&gt;
&lt;br /&gt;
=== 結合パッチフィールド値の一貫性 ===&lt;br /&gt;
結合された制約境界条件、例: プロセッサーとサイクリックは、その内部フィールド値と一致している必要があります。 たとえば、プロセッサ パッチでは、値フィールドに隣接するプロセッサ セルの値が含まれます。つまり、反対側のセルの値がキャッシュされます。 他の結合されたパッチ フィールドは、ローカルおよび隣接セル値の補間値を値として持つ場合があります。 経験則として、セル値を変更するコードはすべて、たとえば、 勾配計算では、値の更新を実行するために境界条件を修正する呼び出しを行う必要があります (プロセッサ境界フィールドでのハロー スワップに相当します)。 ただし、「ローカル」操作の場合、たとえば 乗算では、境界条件に値のみがあり、セル値に依存しない場合、これがスキップされることがあります。 ほとんどの「通常の」境界条件はこのカテゴリに分類されます。&lt;br /&gt;
&lt;br /&gt;
結合境界条件の場合、プロセッサのパッチ フィールドにも適用されますが、たとえば、パッチ フィールドには適用されません。 環状、環状AMI のバリアント。 これにより、中間計算の値が一貫性制約に従わなくなります。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、制約パッチの値がいつでも最新であるように、ローカル操作の後の評価を強制しています。この選択はまだ調査中であり、将来更新される可能性があることに注意してください。&lt;br /&gt;
&lt;br /&gt;
=== patchField の整合性チェックの結合 ===&lt;br /&gt;
ビジュアルコードのチェックで、meshWaveメソッドとmeshWaveAddressingメソッドによって返される壁面距離フィールドが平行一貫していないことが確認されました。このようなエラーを発見しやすくするために、オプションで整合性チェックが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
DebugSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary            1;&lt;br /&gt;
    volVectorField::Boundary            1;&lt;br /&gt;
    volSphericalTensorField::Boundary   1;&lt;br /&gt;
    volSymmTensorField::Boundary        1;&lt;br /&gt;
    volTensorField::Boundary            1;&lt;br /&gt;
&lt;br /&gt;
    areaScalarField::Boundary           1;&lt;br /&gt;
    areaVectorField::Boundary           1;&lt;br /&gt;
    areaSphericalTensorField::Boundary  1;&lt;br /&gt;
    areaSymmTensorField::Boundary       1;&lt;br /&gt;
    areaTensorField::Boundary           1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1 を指定するとチェックが有効になり、チェックに失敗すると FatalError が発生する。特に FOAM_ABORT と組み合わせることで、スタックトレースを生成することができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
FOAM_ABORT=true mpirun -np 2 simpleFoam -parallel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;デバッグ・スイッチはビットマップとして解釈される：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!bit&lt;br /&gt;
!value(2^bit)&lt;br /&gt;
!effect&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|ローカル操作ごとにチェックを加える&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|プリントの入力と終了をチェックする&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|4&lt;br /&gt;
|fatalErrorの代わりにwarning&lt;br /&gt;
|}&lt;br /&gt;
比較の許容誤差はデフォルトで0に設定されている。プロセッサのハロースワップでは、まったく同じ操作がまったく同じ順序で実行されるため、許容誤差の問題はありません。しかし、サイクリックやサイクリックAMIなどの「補間」結合境界条件では、ローカル演算（定数による乗算など）が補間後に実行されるため、若干異なる切り捨て誤差が発生します。この場合、許容誤差をオーバーライドすることができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary::tolerance           1e-10;&lt;br /&gt;
    // .. and similar for all the other field types ..&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
新しい整合性操作は、周期的または周期的AMI境界条件、または結合境界条件を使用する非自明な乱流モデルを使用するケースの動作をわずかに変更します。&lt;br /&gt;
&lt;br /&gt;
オプションとして、etc/controlDictのlocalConsistency設定をオーバーライドすることで、この振る舞いを以前の（一貫性のない！）形に戻すことができる：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    //- Enable enforced consistency of constraint bcs after 'local' operations.&lt;br /&gt;
    //  Default is on. Set to 0/false to revert to &amp;lt;v2306 behaviour&lt;br /&gt;
    localConsistency 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;簡単なテストはcyclicAMIパッチを使ったチュートリアル、例えばpipeCyclicチュートリアルです。上記のDebugSwitchでチェックを有効にすると問題なく動作しますが、localConsistencyフラグを無効にすると不整合が検出されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[0] --&amp;gt; FOAM FATAL ERROR: (openfoam-2302 patch=230110)&lt;br /&gt;
[0] Field dev(symm(grad(U))) is not evaluated? On patch side1 type cyclicAMI : average of field = ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 2783&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 628&lt;br /&gt;
&lt;br /&gt;
==== ノンブロッキング環状A(C)MI ====&lt;br /&gt;
cyclicAMI境界条件は、複数の隣接する面からの面積加重補間を実装します。これらの面はローカルであることも、リモートプロセッサに存在することもあり、並列通信を必要とします。&lt;br /&gt;
&lt;br /&gt;
以前のリリースでは、それぞれのcyclicAMIの評価または線形ソルバーの行列寄与（ローカルでない隣接面の場合）が、独自の通信セットをトリガーし、次のcyclicAMIまたはプロセッサパッチに進む前に、これらの終了を待っていました。このリリースでは、すべての送受信を開始するプロセッサパッチと同様の経路をたどり、ローカル値を更新するためにリモートデータを使用する「消費」フェーズがあります。典型的な境界条件の評価や線形ソルバーの更新は、次のような形になります：&lt;br /&gt;
&lt;br /&gt;
* すべての initEvaluate/initInterfaceMatrixUpdate を行う（結合境界のみ）。プロセッサ、cyclicA(C)MI の場合、これはノンブロッキングの送受信を開始する。&lt;br /&gt;
* すべての通信が終了するのを待つ（または、ポーリング（v2306 nPollProcInterfaces）を使用して以下と組み合わせる）。&lt;br /&gt;
* すべてのevaluate/updateInterfaceMatrixを行う。これは、受信したデータを使用して、行列解への寄与を計算します。&lt;br /&gt;
&lt;br /&gt;
cyclicA(C)MIからの通信をプロセッサの境界条件とまったく同じ方法で処理することで、ボトルネックが発生する可能性が低くなり、スケーリングが向上することが期待される。さらなる最適化として、ローカル送受信バッファは一度割り当てられ、再利用される。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 641&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* any case with &amp;lt;code&amp;gt;cyclicAMI&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cyclicACMI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GAMG : プロセッサ・アグロメレーションにおけるcyclicAMIのサポート ====&lt;br /&gt;
GAMGソルバーは、ローカルアグロメレーションに加えて、プロセッサ間で行列を結合することができます（プロセッサアグロメレーション）。これは、コア数が多い場合に有益です：&lt;br /&gt;
&lt;br /&gt;
* 最も粗いレベルを解くコアの数を減らす - 世界的な削減のほとんどは、最も粗いレベルで起こる。&lt;br /&gt;
* は、スムージングやプリコンディショニングなど、すべての演算の暗黙性を高める。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、cyclicAMIやcyclicACMIなど、すべての連成境界条件のプロセッサアグロメレーションを可能にするようにフレームワークが拡張されました。&lt;br /&gt;
&lt;br /&gt;
テストとして、以下を比較した。&lt;br /&gt;
&lt;br /&gt;
* 40x10x1のブロック1つ、および&lt;br /&gt;
* 2つの20x10x1ブロックがcyclicAMIを使って結合されている。&lt;br /&gt;
&lt;br /&gt;
どちらのケースも4つに分解され、GAMGソルバーとmasterCoarsestプロセッサーのアグロメーターを併用することで、すべての行列がmaster(s)に結合された。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
solvers&lt;br /&gt;
{&lt;br /&gt;
    p&lt;br /&gt;
    {&lt;br /&gt;
        solver                  GAMG;&lt;br /&gt;
        processorAgglomerator   masterCoarsest;&lt;br /&gt;
        ..&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* シングルブロック（つまり、cyclicAMIはなく、プロセッサーフェイスのみ）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells       nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max       avg     max&lt;br /&gt;
   -----  ------         ---     ---       ---     ---&lt;br /&gt;
       0       4         100     100       1.5       2&lt;br /&gt;
       1       4          50      50       1.5       2&lt;br /&gt;
       2       1         100     100         0       0&lt;br /&gt;
       3       1          48      48         0       0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;すべてのプロセッサ面が内部となるため、境界の数（nInterfaces）は0となる。&lt;br /&gt;
&lt;br /&gt;
* 2ブロックの場合（つまり、cyclicAMIとプロセッサフェイス）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells         nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max         avg     max&lt;br /&gt;
   -----  ------         ---     ---         ---     ---&lt;br /&gt;
       0       4         100     100           3       3&lt;br /&gt;
       1       4          50      50           3       3&lt;br /&gt;
       2       1         100     100           2       2&lt;br /&gt;
       3       1          48      48           2       2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ここでは、2つのcyclicAMIのみが保存されるため、境界の数は3つから2つに減る。&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cyclicA(C)MI&amp;lt;/code&amp;gt; :&lt;br /&gt;
** すべての面がローカルになると、動作は非分散にリセットされる。つまり、操作は追加のコピーなしで、提供されたフィールドに直接適用される。&lt;br /&gt;
** 回転変換はまだサポートされていません。これは基本的な制限ではありませんが、変換を考慮するためにステンシルを追加で書き換える必要があります。&lt;br /&gt;
* processorCyclic : (オーナーセルと隣接セルが異なるプロセッサ上にあるサイクリック) はまだサポートされていない。これは通常のプロセッサ境界として扱われるため、変換は失われる。processorCyclicはdecomposeParDictでパッチ制約を使うことで回避できることに注意。&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
constraints&lt;br /&gt;
{&lt;br /&gt;
    patches&lt;br /&gt;
    {&lt;br /&gt;
        //- Keep owner and neighbour on same processor for faces in patches&lt;br /&gt;
        //  (only makes sense for cyclic patches and cyclicAMI)&lt;br /&gt;
        type    preservePatches;&lt;br /&gt;
        patches (cyclic);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* masterCoarsestのみがテストされているが、コードは他のどのプロセッサー凝集法もサポートするはずである。&lt;br /&gt;
* これまでの限られたテストでは、cyclicAMIのプロセッサー集積の利点は示され ていない。これは、ボトルネック、例えば、大域的削減の数や暗黙性が問題となる場合にのみ有効である。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 645&lt;br /&gt;
&lt;br /&gt;
=== redistributeParとファイルシステムの改良 ===&lt;br /&gt;
このリリースでは、照合ファイル・フォーマットの一般的なサポートが改善され、redistributeParユーティリティの調整も行われました。これらの変更により、照合ファイル形式は以前よりも幅広いワークフローで使用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
これらの変更に加え、分散ファイルシステムによるダイナミックコードの取り扱いが改善された。このようなタイプのシステムでは、動的にコンパイルされたライブラリも対応するサブランクに配布されるようになった。&lt;br /&gt;
&lt;br /&gt;
==== 照合されたインクルードファイルの取り扱いが改善された ====&lt;br /&gt;
以前のバージョンでは、&amp;quot;include &amp;quot;ファイルを照合と組み合わせて使用すると、ファイルの内容がランタイムで変更可能なものとして扱われる場合、非常に壊れやすいことがあった。今回、ウォッチド・ファイルの取り扱いが更新され、プロセッサー・ランク間の適切な対応が保証されるようになった。&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
=== New verification and validation public repository ===&lt;br /&gt;
OpenFOAMソフトウェアの検証と妥当性確認に関するコミュニティへの貢献をホストする新しいパブリックリポジトリが開設されました： OpenFOAM Verification and Validation Repository。&lt;br /&gt;
&lt;br /&gt;
このリポジトリの主な目的は、OpenFOAMコミュニティがソフトウェアの検証と検証の側面を共有、協力、強化するための一元化されたプラットフォームを提供することです。コミュニティの集合的な知識と専門知識を結集することにより、OpenFOAMシミュレーションの全体的な品質を向上させ、数値モデリングのベストプラクティスを推進することを目指しています。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、Taylor-Green渦問題と円形Couette流れが組み込まれ、ケースのセットアップとドキュメンテーションのために提供されたテンプレートの実用的な応用が示されています。&lt;br /&gt;
&lt;br /&gt;
=== コンピレーション ===&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
OpenFOAMで使用されるC++標準は、GNUコンパイラでもc++14になりました。この変更により、推奨コンパイラの最小バージョンはgcc-7.5.0になりました。&lt;br /&gt;
&lt;br /&gt;
将来のコード移行を支援するため、「より厳しい」非推奨警告を有効にできるようになりました。これは WM_COMPILE_CONTROL 環境変数の +strict エントリでグローバルに、または wmake -strict で一度だけ有効にできます。これは主に開発者向けのオプションと考えることができます（多くの警告を生成する可能性があります）が、モジュールを書くときに便利で面白いかもしれません。&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
このバージョンには、MacOS上でのコンパイルと実行に関するいくつかの改良が含まれています。&lt;br /&gt;
&lt;br /&gt;
* AppleとARM64のFPE処理の改善（Guanyang Xue氏提供）&lt;br /&gt;
* rpathハンドリング&lt;br /&gt;
* xcrun サポート&lt;br /&gt;
&lt;br /&gt;
MacOS のコンパイルでは、rpath のサポートがデフォルトで有効になり、Apple SIP (System Integrity Protection) の影響に対する回避策がいくらか減って、これらのシステムでの OpenFOAM の実行が簡単になりました。WM_COMPILE_CONTROL環境変数に~rpathを追加することで、rpath処理を無効にできます。&lt;br /&gt;
&lt;br /&gt;
MacOSコンパイルでは、xcodeツール（xcrunなど）の使用もサポートするようになりました。これらはWM_COMPILE_CONTROL環境変数に+xcrunを追加することで有効になります。見つかると、これらのコンパイル・ルールが使用されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cc   := xcrun cc&lt;br /&gt;
CC   := xcrun c++ -std=c++14&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Clang ===&lt;br /&gt;
clangベースのコンパイルで、ldリンカを使用するように明示的に指定できるようになりました（注意：clangがldを使用するかlldを使用するかはインストールに依存します）。リンカの選択は環境変数 WM_COMPILE_CONTROL の対応するエントリで定義されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
- `+gold`    : use gold linker&lt;br /&gt;
- `+link-ld` : use   ld linker&lt;br /&gt;
- `+lld`     : use  lld linker&lt;br /&gt;
- `+mold`    : use mold linker&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenMP ===&lt;br /&gt;
openmp と no-openmp の扱いが強化された。&amp;quot;+openmp&amp;quot; (wmake -openmp) よりも &amp;quot;~openmp&amp;quot; (wmake -no-openmp) の方が優先されます。&lt;br /&gt;
&lt;br /&gt;
これにより、一般的に+openmpを指定する場合はrobusterとなり、特定のビルド・コンポーネント（スタティック・ライブラリやMPIブリッジ・コードなど）を指定する場合は~openmpとなる。&lt;br /&gt;
&lt;br /&gt;
=== Profiling ===&lt;br /&gt;
このバージョンには、Extraeプロファイリング用のフックが含まれています。デフォルトでは、フックは常にOpenFOAMと一緒にビルドされますが、LD_PRELOADによってExtraeが実際にロードされるまで休止しています。これにより、OpenFOAMをその目的専用に再コンパイルすることなく、Extraeのトレースが可能になります。&lt;br /&gt;
&lt;br /&gt;
Josep Pocurull（Barcelona Supercomputing Center）により提供され、exaFOAMプロジェクトの一部として使用されたコード。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/global/profiling/profilingTrigger.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 652&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=849</id>
		<title>OpenFOAM v2312リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=849"/>
		<updated>2023-12-24T08:11:10Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenCFDは、2023年12月リリースのOpenFOAM® v2312を発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v2306の機能を拡張しています。この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージも多数あります。&lt;br /&gt;
&lt;br /&gt;
Ubuntu Linux: Ubuntu 22.04(LTS)、20.04(LTS)、18.04(LTS)、23.04、22.10 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
openSUSE Linux: Leap 15.5 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
Redhat Linuxの亜種: epel 9用のパッケージインストール; Fedora 37&lt;br /&gt;
&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢があります（詳細）：&lt;br /&gt;
&lt;br /&gt;
Windows Subsystem for Linux（Ubuntu、openSUSEなどベース）を使用する。&lt;br /&gt;
&lt;br /&gt;
クロスコンパイルによるネイティブ実行ファイル&lt;br /&gt;
&lt;br /&gt;
docker インストール&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのapptainerサポートは、事前にアセンブルされたイメージではなく、記述ファイルによって提供されます：&lt;br /&gt;
&lt;br /&gt;
パッケージング/コンテナ参照&lt;br /&gt;
&lt;br /&gt;
Mac OSXユーザーは、ソースからコンパイルするか、Dockerコンテナを使ってコンパイル済みのパッケージを使用するオプションがあります（詳細）。&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
=== v2312ユーザーアップグレードガイド ===&lt;br /&gt;
&lt;br /&gt;
=== 挙動の変化 ===&lt;br /&gt;
&lt;br /&gt;
==== デフォルトのEnSightフォーマット ====&lt;br /&gt;
&lt;br /&gt;
* 関数オブジェクトとライターが使用するデフォルトの ensight 出力が、シミュレー ション controlDict で指定される \c writeFormat に依存するのではなく、より一貫して ˶c binary format を使用するようになりました。この変更により、foamToEnsight などのユーティリティや、他のファンクション・ オブジェクトやライターとの動作がより一貫したものになります。&lt;br /&gt;
&lt;br /&gt;
==== Function object: &amp;lt;code&amp;gt;Lambda2&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Lambda2関数オブジェクトの出力が、支配方程式の変更、特に符号の反転によって修正されました。その結果、Lambda2のv2312以前のバージョンで観測された負のフィールド値は、v2312リリースでは正のフィールド値になりました（逆も同様）。&lt;br /&gt;
&lt;br /&gt;
=== 名前変更 ===&lt;br /&gt;
&lt;br /&gt;
==== Function object: &amp;lt;code&amp;gt;WeberNumberReacting&amp;lt;/code&amp;gt; ====&lt;br /&gt;
ラグランジュ関数オブジェクトクラスWeberNumberReactingは、新しいラグランジュ雲関数オブジェクトKinematicWeberNumberとの整合性を確保するため、ReactingWeberNumberと改名された。&lt;br /&gt;
&lt;br /&gt;
=== v2312 Developer Upgrade Guide ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C++の最低規格は、2024年にC++11からC++17に引き上げられる予定である。&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：自動リークパスクロージャーから面を書き込む ===&lt;br /&gt;
snappyHexMeshにはメッシュ内の任意の位置とメッシュ外の位置の間のパスとして定義されたサーフェスのリークを自動的に閉じるオプションがあります。このリリースではリークを閉じるために使用された面はpostProcessingディレクトリのファイルに書き込まれます。&lt;br /&gt;
&lt;br /&gt;
下図は、ギャップのある球体（灰色）、スナップされたメッシュライン（青）、リークを閉じる面（赤）からなるテストケースを示しています：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ファイル書き込みフォーマットはsnappyHexMeshDictの新しいエントリーで選択できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//// Format for writing lines. E.g. leak path. Default is vtk format.&lt;br /&gt;
//setFormat ensight;&lt;br /&gt;
&lt;br /&gt;
//// Format to use for surfaces. E.g. leak-closure faces. Default is vtk format.&lt;br /&gt;
//surfaceFormat vtk;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_gapClosure&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：新しい複数の内側ポイント ===&lt;br /&gt;
snappyHexMeshのセルゾーンはinsidePointを指定することで作成できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
refinementSurfaces&lt;br /&gt;
{&lt;br /&gt;
    ..&lt;br /&gt;
    cellZoneInside insidePoint;    // outside/insidePoint&lt;br /&gt;
    insidePoint    (1 1 1);        // if (cellZoneInside == insidePoint)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1つのinsidePointではなく、複数のinsidePointが用意された：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cellZoneInside insidePoints;      // outside/insidePoint&lt;br /&gt;
insidePoints   ((1 1 1));         // if (cellZoneInside == insidePoint)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図では、ジオメトリは2つのボックス（ワイヤーフレーム）で構成され、上のボックスは2つの切り離されたメッシュ領域をカバーしている。赤で示されたセルゾーンは、3つの別々のメッシュ領域を使用して作成されています。checkMeshユーティリティは、切断されたリージョンを表示するために使うことができます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/insidePoints&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/refinementSurfaces/surfaceZonesInfo.H&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：並列メッシュの負荷分散 ===&lt;br /&gt;
snappyHexMeshは並列実行時に自動的にメッシュのバランスをとることができます。それは以下のどちらかになります&lt;br /&gt;
&lt;br /&gt;
* 変更が小さすぎる場合はバランスを取らない - maxLoadUnbalanceまたはmaxCellUnbalance設定を参照。&lt;br /&gt;
* maxLocalCells設定を参照してください。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、各ステップでメッシュのアンバランスがプリントされます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Layer mesh : cells:353749  faces:1108448  points:406303  unbalance:0.00110248&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;精製前のバランスは、セルの重みを与えることで実装されることに注意。各精製されるセルは8ずつカウントされる。しかし、これは単純な分解法、例えば階層的な分解法にのみ有効である。scotch と KaHip メソッドでは、カット数を含む重みを使ってアンバランスを最小化する。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* any parallel snappyHexMesh case&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 3034&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：レイヤーごとの追加 ===&lt;br /&gt;
OpenFOAM v2206リリースでは、snappyHexMeshが拡張され、nOuterIterエントリーを使用して複数パスでレイヤーを追加できるようになりました。ここでは、$FOAM_TUTORIALS/incompressible/pisoFoam/LES/motorBike/motorBikeチュートリアルを出発点として、どのように改良されたレイヤーの追加を実行できるかをデモしたいと思います：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
relativeSizes false; // true&lt;br /&gt;
&lt;br /&gt;
// Per final patch (so not geometry!) the layer information&lt;br /&gt;
layers&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;(lowerWall|motorBike).*&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        nSurfaceLayers 16;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Expansion factor for layer mesh&lt;br /&gt;
expansionRatio 1.2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;重要な設定は、外側の反復回数とメッシュ・モーション・ソルバーである：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Overall max number of layer addition iterations&lt;br /&gt;
nLayerIter      25;&lt;br /&gt;
&lt;br /&gt;
// Add layers in multiple passes - gives layers a chance to rotate&lt;br /&gt;
nOuterIter      4;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meshShrinker    displacementMotionSolver;&lt;br /&gt;
solver          displacementLaplacian;&lt;br /&gt;
displacementLaplacianCoeffs&lt;br /&gt;
{&lt;br /&gt;
    diffusivity quadratic inverseDistance (lowerWall upperWall &amp;quot;motorBike*&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;メッシュの品質基準を緩めることで、（全体的なメッシュ品質は維持したまま）この複雑な形状でもレイヤーカバレッジを劇的に向上させることができる。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/addLayersToFaceZone&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
=== Nastranサーフェスリーダーの改良 ===&lt;br /&gt;
NASTRANパーサーが更新され、PSHELL名の新しいANSA規約に対応しました。これにより、snappyHexMeshなど、より多くの場所でNASTRANファイルを直接使用することができるようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/surfaceFormats/nas/NASsurfaceFormat.C&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 3009&lt;br /&gt;
&lt;br /&gt;
=== checkMeshユーティリティの改良 ===&lt;br /&gt;
checkMesh ユーティリティに writeChecks オプションが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -writeChecks &amp;lt;format&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これにより、メッシュ・チェックのフォーマットを含むファイルが生成される：&lt;br /&gt;
&lt;br /&gt;
* dictionary : OpenFOAM dictionary;&lt;br /&gt;
* json : JSON format.&lt;br /&gt;
&lt;br /&gt;
例えば、コマンドを使う：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -allGeometry -allTopology -writeChecks JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;motorBikeチュートリアルでは、caseディレクトリにcheckMesh.jsonファイルが生成される：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;maxNonOrth&amp;quot; : 64.9999,&lt;br /&gt;
    &amp;quot;aveNonOrth&amp;quot; : 9.92427,&lt;br /&gt;
    &amp;quot;maxSkew&amp;quot; : 9.25719,&lt;br /&gt;
    &amp;quot;nWarnSkew&amp;quot; : 12,&lt;br /&gt;
    &amp;quot;minDeterminant&amp;quot; : 0,&lt;br /&gt;
    &amp;quot;aveDeterminant&amp;quot; : 1.55371,&lt;br /&gt;
    &amp;quot;thresholdDeterminant&amp;quot; : 0.001,&lt;br /&gt;
    &amp;quot;nErrorDeterminant&amp;quot; : 1274,&lt;br /&gt;
    &amp;quot;minFaceWeight&amp;quot; : 0.0216708,&lt;br /&gt;
    &amp;quot;aveFaceWeight&amp;quot; : 0.465687,&lt;br /&gt;
    &amp;quot;thresholdFaceWeight&amp;quot; : 0.05,&lt;br /&gt;
    &amp;quot;nErrorFaceWeight&amp;quot; : 1143,&lt;br /&gt;
    &amp;quot;minFaceVolumeRatio&amp;quot; : 0.0101126,&lt;br /&gt;
    &amp;quot;aveFaceVolumeRatio&amp;quot; : 0.846049&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/mesh/manipulation/checkMesh/checkMesh.C&lt;br /&gt;
&lt;br /&gt;
=== subsetMeshユーティリティの改良 ===&lt;br /&gt;
subsetMesh ユーティリティが更新され、通常の -patches 選択を変更する -exclude-patches オプションを受け付けるようになりました。&lt;br /&gt;
&lt;br /&gt;
この変更により、最も近い露出パッチの指定が簡単になりました。&lt;br /&gt;
&lt;br /&gt;
== Numerics ==&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 随伴形状最適化の改善 ===&lt;br /&gt;
形状最適化のための感度微分を計算するためのE-SIとFI定式化間の整合性が改善されました。naca0012/laminar/moment/primalAdjointチュートリアルから取得した、変更前後のコード動作の例を以下に示します：&lt;br /&gt;
&lt;br /&gt;
一貫した点／面の感度マップ&lt;br /&gt;
&lt;br /&gt;
v2306とv2312で計算されたドラッグ感度マップを比較すると、a)新しいポイント-フェイス補間は、生の、つまり平滑化されていない感度でも、より滑らかな結果を生成する。&lt;br /&gt;
&lt;br /&gt;
さらなる改善点は以下の通り：&lt;br /&gt;
&lt;br /&gt;
* 不必要に新しいアドジョイントフィールドを割り当てることなく幾何学的制約を定義するための新しいアドジョイントソルバ（null）と目的関数（geometric）タイプ&lt;br /&gt;
&lt;br /&gt;
* 不等式制約のある最適化問題に取り組むための3つの新しい更新法（ISQP, nullSpace, MMA）&lt;br /&gt;
* 設計変数に境界を導入。ボリューメトリックBスプラインの場合、最適化を通してメッシュの品質をより良く保つことができます。&lt;br /&gt;
* 最適化ループの収束基準の導入。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/naca0012/laminar/multipleConstraints&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 トポロジーに基づく新しいアジョイント最適化 ===&lt;br /&gt;
OpenFOAM v2312では、空隙率ベースまたはレベルセットアプローチによる新しいトポロジー最適化機能が追加されました。どちらも、設計されたジオメトリをSTLとしてエクスポートする機能を備えており、製造やボディフィットグリッドによる再評価に利用できます。&lt;br /&gt;
&lt;br /&gt;
空隙率ベースのアプローチは、計算領域の非生産的な部分を固めることでブロックする設計変数の場（人工空隙率α）に依存する。得られた解の平滑性を高めるために、正則化方程式を解いて中間場α̃を計算し、次にシャープニング/プロジェクションステップを経てほぼ二値の場βを計算します。後者は、固化した領域（すなわちβ≈1の領域）で流れ解をゼロにするソース項を流れ方程式に導入するために使用されます。上記のプロセスの手順を以下に示す。&lt;br /&gt;
&lt;br /&gt;
次の表は、同じケースの3つの異なるバリエーション、すなわち、Jpt＜Jpttarget制約（右）の下で、総圧力損失（Jpt）の最小化（左）、下部出口と右出口間の体積流量の均等配分制約（Jm）を伴うJptの最小化（中央）、および流れの均一性（Jun）の最大化（右）に対するトポロジー最適化の結果を示している。&lt;br /&gt;
&lt;br /&gt;
ケースは、adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/BPにあります。&lt;br /&gt;
&lt;br /&gt;
次の表は、同様の目的関数と制約関数を持つ3次元多様体のトポロジー最適化の結果を示しています。最初の行は、最適化サイクル中の計算領域の流体部分と固体部分の境界の進行を示し、最後の行は、最適化された3つの形状のSTLファイルを示しています。後者の生成プロセスは自動化されており、各最適化サイクルの終了時に実行されます。これらのSTLファイルは、適切な境界条件によるボディフィットシミュレーションや、その後の形状最適化、さらには製造に使用することができます。&lt;br /&gt;
&lt;br /&gt;
ケースはtopologyOptimisation/monoFluidAero/laminar/3DBoxにあります。&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
optimisationDict.optimisationの項目が少し変わりました。この変更は、例えば、$FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/motorBikeのoptimisationDictを以前のものと比較することで確認できます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
== Solvers and physical models ==&lt;br /&gt;
&lt;br /&gt;
=== fvOptionsの改良：ポイントの移動 ===&lt;br /&gt;
有限体積オプション（fvOptions）フレームワークが改良されました：&lt;br /&gt;
&lt;br /&gt;
* 入力辞書の更新により、セル選択を実行時に更新できるようになりました。&lt;br /&gt;
* 空間内を移動する点をモデル化する新しい方法。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
fvOption1&lt;br /&gt;
{&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    updateSelection         true;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fvOption2&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    selectionMode   movingPoints;&lt;br /&gt;
&lt;br /&gt;
    movingPoints&lt;br /&gt;
    {&lt;br /&gt;
        point1        table&lt;br /&gt;
        (&lt;br /&gt;
            // time    position&lt;br /&gt;
            (  0 (0 0 0.75))&lt;br /&gt;
            (  1 (0 0 0.65))&lt;br /&gt;
            (  2 (0 0 0.55))&lt;br /&gt;
            (  3 (0 0 0.45))&lt;br /&gt;
            (  4 (0 0 0.35))&lt;br /&gt;
            (  5 (0 0 0.25))&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        point2        (-0.25 -0.25 0.5);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/cellSetOption/cellSetOption.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== 新しい fvOption: マップされたフィールド制約 ===&lt;br /&gt;
MapFieldConstraintは、外部メッシュからのソース・フィールドを使用して、&amp;lt;Type&amp;gt;型の指定フィールドに値の制約を課します。ここで、&amp;lt;Type&amp;gt;には{scalar, vector, sphericalTensor, symmTensor, tensor}を指定できます。オプションとして、ソースフィールドは時間経過とともに平行移動または回転させることができます。&lt;br /&gt;
&lt;br /&gt;
考えられる用途は、例えば、移動する電気源の影響をモデル化することである。最小限の使用例を以下に示す：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
MapFieldConstraint1&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type                MapFieldConstraint;&lt;br /&gt;
    field               &amp;lt;word&amp;gt;;&lt;br /&gt;
    srcMesh             &amp;lt;fileName&amp;gt;;&lt;br /&gt;
    mapMethod           &amp;lt;word&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    consistent          &amp;lt;bool&amp;gt;;&lt;br /&gt;
    patchMapMethod      &amp;lt;word&amp;gt;;&lt;br /&gt;
    transform&lt;br /&gt;
    {&lt;br /&gt;
        // Optional entries&lt;br /&gt;
        position    &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        origin      &amp;lt;vector&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
        direction   &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        normal      &amp;lt;vector&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Conditional entries&lt;br /&gt;
&lt;br /&gt;
        // when consistent=false&lt;br /&gt;
        patchMap        &amp;lt;HashTable&amp;lt;word&amp;gt;&amp;gt;;  // (&amp;lt;patchSrc&amp;gt; &amp;lt;patchTgt&amp;gt;);&lt;br /&gt;
        cuttingPatches  &amp;lt;wordList&amp;gt;;  // (&amp;lt;patchTgt1&amp;gt; ... &amp;lt;patchTgtN&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
    // Inherited entries&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/constraints/general/mapFieldConstraint/MapFieldConstraint.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献：新しい乱流技術委員会サブモジュール ===&lt;br /&gt;
OpenFOAMガバナンス内のTurbulence Technical Committeeのネストされたサブモジュールを含む新しいコミュニティサブモジュールが開始されました。このサブモジュールは、公開されている Turbulence Technical Committee のリポジトリでホストされています。&lt;br /&gt;
&lt;br /&gt;
コミュニティ・サブモジュールは、乱流モデリングに関連する学術的・産業的な貢献のホストとして機能し、知識交換の場を作り、この分野とOpenFOAMの両方を発展させるコラボレーションを促進します。&lt;br /&gt;
&lt;br /&gt;
BitbucketやGitHubのようなGitベースのソースコード・リポジトリ・ホスティング・サービスでホストし、このサブモジュールを介してOpenFOAMソフトウェアにリンクすることができます。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、サブモジュールにlibWallModelledLESライブラリーが組み込まれ、壁面モデルによるラージ・エディ・シミュレーション（WMLES）の領域でOpenFOAMの機能が拡張されました。この乱流モデリング手法は、乱流境界層の内部領域の解像度を回避することで、費用対効果の高いLESを可能にします。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $WM_PROJECT_DIR/modules/turbulence-community&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Turbulence Technical Committee members for their contributions and help.&lt;br /&gt;
&lt;br /&gt;
=== 改善されたラグランジュ・ブラウン運動 ===&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。しかし、特に指定がない限り、（互換性のために）デフォルトの球形分布が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。&lt;br /&gt;
&lt;br /&gt;
しかし、特に指定がない限り、適度に小さな時間ステップでは不正確であるにもかかわらず、（互換性のために）デフォルトの球面処理が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
三次分布は、球面処理が明示的に無効化されている場合に使用される。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subModels&lt;br /&gt;
{&lt;br /&gt;
    particleForces&lt;br /&gt;
    {&lt;br /&gt;
        sphereDrag;&lt;br /&gt;
        BrownianMotion&lt;br /&gt;
        {&lt;br /&gt;
            lambda     2e-10;&lt;br /&gt;
            turbulence false;&lt;br /&gt;
            spherical  false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;立方体分布と球形分布の違いは次の図に見られる。&lt;br /&gt;
&lt;br /&gt;
変更の報告、検証、テストはGuanyang Xueの好意によるものである。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2922&lt;br /&gt;
&lt;br /&gt;
Merge request 634&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusサンプルセット ===&lt;br /&gt;
新しい abaqusMesh セットは、Abaqus メッシュポイント形式を使用してファイルからサンプル位置を導出します。使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sets&lt;br /&gt;
{&lt;br /&gt;
    cone25 // user-specified set name&lt;br /&gt;
    {&lt;br /&gt;
        type        abaqusMesh;&lt;br /&gt;
        file        &amp;quot;abaqusMesh.inp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Scale, e.g. mm to m&lt;br /&gt;
        scale       0.001;&lt;br /&gt;
&lt;br /&gt;
        // Search distance when the sample point is not located in a cell&lt;br /&gt;
        maxDist     0.25;&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/abaqus&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusセットライター ===&lt;br /&gt;
新しいAbaqusセットライターはOpenFOAMセットデータをAbaqusフォーマットに変換します。使用例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
T&lt;br /&gt;
{&lt;br /&gt;
    type sets;&lt;br /&gt;
    setFormat abaqus;&lt;br /&gt;
    fields (T);&lt;br /&gt;
    sets&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;オプションの書式オプションは、formatOptions辞書内のabaqusサブ辞書で提供されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    abaqus&lt;br /&gt;
    {&lt;br /&gt;
        format      ascii;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Custom header: $ entries are substituions&lt;br /&gt;
        header&lt;br /&gt;
        (&lt;br /&gt;
            &amp;quot;** OpenFOAM abaqus output&amp;quot;&lt;br /&gt;
            &amp;quot;** Project $FOAM_CASE&amp;quot;&lt;br /&gt;
            &amp;quot;** File $FILE_NAME&amp;quot;&lt;br /&gt;
            &amp;quot;** $FIELD_NAME Time t=$TIME&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        // Write geometry in addition to field data&lt;br /&gt;
        writeGeometry yes;&lt;br /&gt;
&lt;br /&gt;
        // Null value when sample value is not found&lt;br /&gt;
        // Default is scalar::min&lt;br /&gt;
        nullValue   0;&lt;br /&gt;
&lt;br /&gt;
        // Insert additional time sub-directory in the output path&lt;br /&gt;
        // - yes : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;time&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        // - no : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        useTimeDir  no;&lt;br /&gt;
&lt;br /&gt;
        // Available when 'useTimeDir' is 'no' to disambiguate file names&lt;br /&gt;
&lt;br /&gt;
        // Time base for output file names:&lt;br /&gt;
        // - 'time' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;time&amp;gt;&lt;br /&gt;
        // - 'iteration' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;iteration&amp;gt;&lt;br /&gt;
        timeBase    iteration;&lt;br /&gt;
&lt;br /&gt;
        // Optional start counters when using timeBase iteration&lt;br /&gt;
        writeIndex&lt;br /&gt;
        (&lt;br /&gt;
            T 1&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/coordSet/writers/abaqus/abaqusCoordSetWriter.C&lt;br /&gt;
&lt;br /&gt;
=== パッチ・シード・セットの改善 ===&lt;br /&gt;
patchSeed sampled setがパッチ全体で一様にサンプルシードを計算するようになりました。以前の実装では、顔のインデックスをパッチ全体で一様にサンプリングしていましたが、その副作用として、より小さな顔に偏りがありました。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
streamline5&lt;br /&gt;
{&lt;br /&gt;
    type                streamLine;&lt;br /&gt;
    libs                (fieldFunctionObjects);&lt;br /&gt;
    U                   U;&lt;br /&gt;
    fields              (U p);&lt;br /&gt;
    setFormat           vtk;&lt;br /&gt;
    direction           forward;&lt;br /&gt;
    lifeTime            20000;&lt;br /&gt;
    cloud               particleTracks;&lt;br /&gt;
    seedSampleSet&lt;br /&gt;
    {&lt;br /&gt;
        type            patchSeed;&lt;br /&gt;
        axis            xyz;&lt;br /&gt;
        patches         (&amp;quot;inlet1&amp;quot;);&lt;br /&gt;
        maxPoints       40;&lt;br /&gt;
    }&lt;br /&gt;
    interpolationScheme cellPoint;&lt;br /&gt;
    trackLength         0.001;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/patchSeed&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 647&lt;br /&gt;
&lt;br /&gt;
=== 新しいケース情報機能オブジェクト ===&lt;br /&gt;
新しい caseInfo 関数オブジェクトは、実行時または後処理の一部として、ソルバーとケースの情報を生成します。収集されるデータには以下が含まれます：&lt;br /&gt;
&lt;br /&gt;
* メタデータ：ケース名、パス、タイムディレクトリ数など。&lt;br /&gt;
* 辞書エントリ : 任意の入力辞書からすべて/選択したものを抽出&lt;br /&gt;
** fvSolutionからUリニアソルバーを取得するには、'solvers/U/solver'などのスコープを使用する。&lt;br /&gt;
** はワイルドカードをサポートしている。例えば、fvSolution U ソルバー・キーワードが&amp;quot;(U|k|epsilon) &amp;quot;であった場合。&lt;br /&gt;
** include'または'exclude'リストを使用して、含める/除外するエントリ名の選択を制限する。&lt;br /&gt;
* メッシュ統計：点、面、セルの数、境界、ゾーン名など。&lt;br /&gt;
* 関数オブジェクトの結果：関数オブジェクトの結果のキャッシュ値など&lt;br /&gt;
&lt;br /&gt;
使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
caseInfo1&lt;br /&gt;
{&lt;br /&gt;
    type        caseInfo;&lt;br /&gt;
    libs        (utilityFunctionObjects);&lt;br /&gt;
&lt;br /&gt;
    writeFormat json; // josn | dictionary&lt;br /&gt;
&lt;br /&gt;
    // List of dictionaries - retrieve using 'path' or registered 'name'&lt;br /&gt;
    dictionaries&lt;br /&gt;
    {&lt;br /&gt;
        fvSolution&lt;br /&gt;
        {&lt;br /&gt;
            name        &amp;quot;fvSolution&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // include all entries by default&lt;br /&gt;
        }&lt;br /&gt;
        controlDict&lt;br /&gt;
        {&lt;br /&gt;
            path        &amp;quot;system/controlDict&amp;quot;;&lt;br /&gt;
            include&lt;br /&gt;
            (&lt;br /&gt;
                &amp;quot;application&amp;quot;&lt;br /&gt;
                &amp;quot;deltaT&amp;quot;&lt;br /&gt;
                &amp;quot;startTime&amp;quot;&lt;br /&gt;
                &amp;quot;endTime&amp;quot;&lt;br /&gt;
            );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Extract function object results&lt;br /&gt;
    functionObjects (pressureDifference sample1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;出力例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;meta&amp;quot; : {&lt;br /&gt;
        &amp;quot;case&amp;quot; : &amp;quot;heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;path&amp;quot; : &amp;quot;chtMultiRegionSimpleFoam/heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;regions&amp;quot; : [&amp;quot;air&amp;quot;, &amp;quot;porous&amp;quot;],&lt;br /&gt;
        &amp;quot;nTimes&amp;quot; : 7,&lt;br /&gt;
        &amp;quot;nProc&amp;quot; : 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;regions&amp;quot; : {&lt;br /&gt;
        &amp;quot;air&amp;quot; : {&lt;br /&gt;
            &amp;quot;mesh&amp;quot; : {&lt;br /&gt;
                &amp;quot;nGeometricD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nSolutionD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nPoints&amp;quot; : 252991,&lt;br /&gt;
                &amp;quot;nFaces&amp;quot; : 739260,&lt;br /&gt;
                &amp;quot;nCells&amp;quot; : 243000,&lt;br /&gt;
                &amp;quot;nPatches&amp;quot; : 4,&lt;br /&gt;
                &amp;quot;pointZones&amp;quot; : [],&lt;br /&gt;
                &amp;quot;faceZones&amp;quot; : [&amp;quot;rotorBlades&amp;quot;, &amp;quot;baffleFaces&amp;quot;],&lt;br /&gt;
                &amp;quot;cellZones&amp;quot; : [&amp;quot;cylinder&amp;quot;, &amp;quot;innerCylinder&amp;quot;, &amp;quot;rotor&amp;quot;],&lt;br /&gt;
                &amp;quot;boundsMin&amp;quot; : [0, 0, 0],&lt;br /&gt;
                &amp;quot;boundsMax&amp;quot; : [5.000000e-01, 5.000000e-01, 5.000000e-01],&lt;br /&gt;
                &amp;quot;clouds&amp;quot; : []&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;boundary&amp;quot; : {&lt;br /&gt;
                &amp;quot;types&amp;quot; : {&lt;br /&gt;
                    &amp;quot;walls&amp;quot; : &amp;quot;wall&amp;quot;,&lt;br /&gt;
                    &amp;quot;inlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;outlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;blades&amp;quot; : &amp;quot;wall&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;fields&amp;quot; : {&lt;br /&gt;
                    &amp;quot;alphat&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;nut&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;p&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;calculated&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/caseInfo&lt;br /&gt;
&lt;br /&gt;
== DMDによる新しい低次モデリング磁場再構成 ==&lt;br /&gt;
動的モード分解（DMD）機能は、OpenFOAM v2006で導入され、その後OpenFOAM v2106で拡張されました。このリリースにより、OpenFOAMは、DMDの主な利点の1つである、任意の中間時点や将来の時点におけるCFD計算を必要とせずに、与えられたモードとそれに関連するダイナミクスに基づいて場を生成する機能を習得しました。&lt;br /&gt;
&lt;br /&gt;
この機能により、ユーザーはシミュレーション全体をいくつかのモードとモードダイナミクスに凝縮し、CFD解析を追加することなく、任意の時間における場の生成や将来の状態の予測を行うことができます。&lt;br /&gt;
&lt;br /&gt;
もう一つの潜在的な利点は、ユーザーがシミュレーションを短縮し、大規模なシミュレーションを行うことなく流れ場の将来の状態を予測できることである。これは、より短時間のシミュレーションで得られたモードとモードダイナミクスを使用することで実現できます。&lt;br /&gt;
&lt;br /&gt;
結果の質は、基礎となる縮小モデルの能力と入力データの質に依存することに留意すべきである。再構成結果を改善するためには、流れからモードが正しく抽出されていることを確認する必要がある。&lt;br /&gt;
&lt;br /&gt;
system/ROMfieldsDictを使った最小の例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Mandatory entries&lt;br /&gt;
ROMmodel        &amp;lt;word&amp;gt;;&lt;br /&gt;
field           &amp;lt;word&amp;gt;;&lt;br /&gt;
object          &amp;lt;word&amp;gt;;&lt;br /&gt;
deltaT          &amp;lt;scalar&amp;gt;;&lt;br /&gt;
time            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
modes           &amp;lt;labelList&amp;gt;;&lt;br /&gt;
amplitudes      &amp;lt;complexList&amp;gt;;&lt;br /&gt;
eigenvalues     &amp;lt;complexList&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Optional entries&lt;br /&gt;
startTime       &amp;lt;scalar&amp;gt;;&lt;br /&gt;
dimensions      &amp;lt;dimensionSet&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Inherited entries&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図は、2次元円柱チュートリアルから得られた速度場と、シミュレーションを実行せずにDMDモードとダイナミクスを使用して再構成したものです：&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/createROMfields.C&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/ROMmodels/DMD/DMD.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
&lt;br /&gt;
* Kiewat, M. (2019). Streaming modal decomposition approaches for vehicle aerodynamics. PhD thesis. Munich: Technical University of Munich. URL:mediatum.ub.tum.de/doc/1482652/1482652.pdf&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Marco Kiewat for his contributions, elaborate suggestions and help, and critical recommendations.&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 639&lt;br /&gt;
&lt;br /&gt;
=== ノイズ・ユーティリティの向上 ===&lt;br /&gt;
ノイズユーティリティは、時間情報からのデフォルトの自動計算だけでなく、ユーザー定義のサンプリング周波数（キーワード：sampleFreq）もサポートするようになりました。読みやすさを向上させるため、周波数の上限と下限をminFreqとmaxFreqで指定できるようになりました（以前のキーワードも引き続きサポートされています）。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Lower frequency limit, default 25 Hz, former name 'fl'&lt;br /&gt;
minFreq 25;&lt;br /&gt;
&lt;br /&gt;
// Upper frequency limit, default 10 kHz, former name 'fu'&lt;br /&gt;
maxFreq 10000;&lt;br /&gt;
&lt;br /&gt;
// OPTIONAL - Sample frequency&lt;br /&gt;
sampleFreq 100;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;サンプリングされた時間から周波数を計算する際に時間が不均一であると評価された場合、deltaT が非常に小さい場合、不均一性は多くの場合偽のエラーであるため、ユーティリティはエラーではなく警告を発するようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/randomProcesses/noise/noiseModels/noiseModel/noiseModel.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS//incompressible/pimpleFoam/LES/vortexShed&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2999&lt;br /&gt;
&lt;br /&gt;
=== エンサイトの出力向上 ===&lt;br /&gt;
EnSightライターの時間値は、デフォルトの固定フォーマットと精度を使用する代わりに、ユーザーが指定できるようになりました。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    ensight&lt;br /&gt;
    {&lt;br /&gt;
        timeFormat      general; // Format for time directory names (general | fixed | scientific); default scientific&lt;br /&gt;
        timePrecision   12;      // Default = 5&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これらの新しいフォーマットオプションは、例えばノイズユーティリティの圧力サンプリングと組み合わせて、小さなタイムステップを使用する場合に特に便利です。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/ensightWrite/ensightWrite.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Merge request 634&lt;br /&gt;
&lt;br /&gt;
=== 新しいラグランジュ関数オブジェクト ウェーバー数 ===&lt;br /&gt;
表面張力と比較した粒子の慣性の相対的な重要性を監視するために、ラグランジュ関数オブジェクトWeberNumberが運動学小包に導入されています。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cloudFunctions&lt;br /&gt;
{&lt;br /&gt;
    KinematicWeberNumber1&lt;br /&gt;
    {&lt;br /&gt;
        // Mandatory entries&lt;br /&gt;
        type             WeberNumber;&lt;br /&gt;
        sigma            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicWeberNumber/KinematicWeberNumber.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 648&lt;br /&gt;
&lt;br /&gt;
=== 空のサーフェス（surfaceFieldValue）の取り扱いが改善されました。 ===&lt;br /&gt;
ワークフローによっては、サンプリングされたサーフェスが、シミュレーション中に現れたり消えたりするフェイスゾーンなどの量に依存する場合があります。そのため、空のサーフェスでサーフェスフィールドの値を評価することは、通常、セットアップに重大なエラーがあることを示しますが、このようなことが予想される場合もあります。追加キーワードempty-surfaceにより、空のサーフェスに遭遇したときの動作を指定することができます。&lt;br /&gt;
&lt;br /&gt;
最小限の例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
surfaceFieldValueFaceZone1&lt;br /&gt;
{&lt;br /&gt;
    type            surfaceFieldValue;&lt;br /&gt;
    libs            (fieldFunctionObjects);&lt;br /&gt;
    ...&lt;br /&gt;
    regionType      faceZone;&lt;br /&gt;
&lt;br /&gt;
    empty-surface   warn;  // default | warn | ignore | strict&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2966&lt;br /&gt;
&lt;br /&gt;
== Parallel ==&lt;br /&gt;
&lt;br /&gt;
=== 結合パッチフィールド値の一貫性 ===&lt;br /&gt;
結合された制約境界条件、例: プロセッサーとサイクリックは、その内部フィールド値と一致している必要があります。 たとえば、プロセッサ パッチでは、値フィールドに隣接するプロセッサ セルの値が含まれます。つまり、反対側のセルの値がキャッシュされます。 他の結合されたパッチ フィールドは、ローカルおよび隣接セル値の補間値を値として持つ場合があります。 経験則として、セル値を変更するコードはすべて、たとえば、 勾配計算では、値の更新を実行するために境界条件を修正する呼び出しを行う必要があります (プロセッサ境界フィールドでのハロー スワップに相当します)。 ただし、「ローカル」操作の場合、たとえば 乗算では、境界条件に値のみがあり、セル値に依存しない場合、これがスキップされることがあります。 ほとんどの「通常の」境界条件はこのカテゴリに分類されます。&lt;br /&gt;
&lt;br /&gt;
結合境界条件の場合、プロセッサのパッチ フィールドにも適用されますが、たとえば、パッチ フィールドには適用されません。 環状、環状AMI のバリアント。 これにより、中間計算の値が一貫性制約に従わなくなります。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、制約パッチの値がいつでも最新であるように、ローカル操作の後の評価を強制しています。この選択はまだ調査中であり、将来更新される可能性があることに注意してください。&lt;br /&gt;
&lt;br /&gt;
=== patchField の整合性チェックの結合 ===&lt;br /&gt;
ビジュアルコードのチェックで、meshWaveメソッドとmeshWaveAddressingメソッドによって返される壁面距離フィールドが平行一貫していないことが確認されました。このようなエラーを発見しやすくするために、オプションで整合性チェックが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
DebugSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary            1;&lt;br /&gt;
    volVectorField::Boundary            1;&lt;br /&gt;
    volSphericalTensorField::Boundary   1;&lt;br /&gt;
    volSymmTensorField::Boundary        1;&lt;br /&gt;
    volTensorField::Boundary            1;&lt;br /&gt;
&lt;br /&gt;
    areaScalarField::Boundary           1;&lt;br /&gt;
    areaVectorField::Boundary           1;&lt;br /&gt;
    areaSphericalTensorField::Boundary  1;&lt;br /&gt;
    areaSymmTensorField::Boundary       1;&lt;br /&gt;
    areaTensorField::Boundary           1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1 を指定するとチェックが有効になり、チェックに失敗すると FatalError が発生する。特に FOAM_ABORT と組み合わせることで、スタックトレースを生成することができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
FOAM_ABORT=true mpirun -np 2 simpleFoam -parallel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;デバッグ・スイッチはビットマップとして解釈される：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!bit&lt;br /&gt;
!value(2^bit)&lt;br /&gt;
!effect&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|ローカル操作ごとにチェックを加える&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|プリントの入力と終了をチェックする&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|4&lt;br /&gt;
|fatalErrorの代わりにwarning&lt;br /&gt;
|}&lt;br /&gt;
比較の許容誤差はデフォルトで0に設定されている。プロセッサのハロースワップでは、まったく同じ操作がまったく同じ順序で実行されるため、許容誤差の問題はありません。しかし、サイクリックやサイクリックAMIなどの「補間」結合境界条件では、ローカル演算（定数による乗算など）が補間後に実行されるため、若干異なる切り捨て誤差が発生します。この場合、許容誤差をオーバーライドすることができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary::tolerance           1e-10;&lt;br /&gt;
    // .. and similar for all the other field types ..&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
新しい整合性操作は、周期的または周期的AMI境界条件、または結合境界条件を使用する非自明な乱流モデルを使用するケースの動作をわずかに変更します。&lt;br /&gt;
&lt;br /&gt;
オプションとして、etc/controlDictのlocalConsistency設定をオーバーライドすることで、この振る舞いを以前の（一貫性のない！）形に戻すことができる：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    //- Enable enforced consistency of constraint bcs after 'local' operations.&lt;br /&gt;
    //  Default is on. Set to 0/false to revert to &amp;lt;v2306 behaviour&lt;br /&gt;
    localConsistency 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;簡単なテストはcyclicAMIパッチを使ったチュートリアル、例えばpipeCyclicチュートリアルです。上記のDebugSwitchでチェックを有効にすると問題なく動作しますが、localConsistencyフラグを無効にすると不整合が検出されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[0] --&amp;gt; FOAM FATAL ERROR: (openfoam-2302 patch=230110)&lt;br /&gt;
[0] Field dev(symm(grad(U))) is not evaluated? On patch side1 type cyclicAMI : average of field = ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 2783&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 628&lt;br /&gt;
&lt;br /&gt;
==== ノンブロッキング環状A(C)MI ====&lt;br /&gt;
cyclicAMI境界条件は、複数の隣接する面からの面積加重補間を実装します。これらの面はローカルであることも、リモートプロセッサに存在することもあり、並列通信を必要とします。&lt;br /&gt;
&lt;br /&gt;
以前のリリースでは、それぞれのcyclicAMIの評価または線形ソルバーの行列寄与（ローカルでない隣接面の場合）が、独自の通信セットをトリガーし、次のcyclicAMIまたはプロセッサパッチに進む前に、これらの終了を待っていました。このリリースでは、すべての送受信を開始するプロセッサパッチと同様の経路をたどり、ローカル値を更新するためにリモートデータを使用する「消費」フェーズがあります。典型的な境界条件の評価や線形ソルバーの更新は、次のような形になります：&lt;br /&gt;
&lt;br /&gt;
* すべての initEvaluate/initInterfaceMatrixUpdate を行う（結合境界のみ）。プロセッサ、cyclicA(C)MI の場合、これはノンブロッキングの送受信を開始する。&lt;br /&gt;
* すべての通信が終了するのを待つ（または、ポーリング（v2306 nPollProcInterfaces）を使用して以下と組み合わせる）。&lt;br /&gt;
* すべてのevaluate/updateInterfaceMatrixを行う。これは、受信したデータを使用して、行列解への寄与を計算します。&lt;br /&gt;
&lt;br /&gt;
cyclicA(C)MIからの通信をプロセッサの境界条件とまったく同じ方法で処理することで、ボトルネックが発生する可能性が低くなり、スケーリングが向上することが期待される。さらなる最適化として、ローカル送受信バッファは一度割り当てられ、再利用される。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 641&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* any case with &amp;lt;code&amp;gt;cyclicAMI&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cyclicACMI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GAMG : プロセッサ・アグロメレーションにおけるcyclicAMIのサポート ====&lt;br /&gt;
GAMGソルバーは、ローカルアグロメレーションに加えて、プロセッサ間で行列を結合することができます（プロセッサアグロメレーション）。これは、コア数が多い場合に有益です：&lt;br /&gt;
&lt;br /&gt;
* 最も粗いレベルを解くコアの数を減らす - 世界的な削減のほとんどは、最も粗いレベルで起こる。&lt;br /&gt;
* は、スムージングやプリコンディショニングなど、すべての演算の暗黙性を高める。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、cyclicAMIやcyclicACMIなど、すべての連成境界条件のプロセッサアグロメレーションを可能にするようにフレームワークが拡張されました。&lt;br /&gt;
&lt;br /&gt;
テストとして、以下を比較した。&lt;br /&gt;
&lt;br /&gt;
* 40x10x1のブロック1つ、および&lt;br /&gt;
* 2つの20x10x1ブロックがcyclicAMIを使って結合されている。&lt;br /&gt;
&lt;br /&gt;
どちらのケースも4つに分解され、GAMGソルバーとmasterCoarsestプロセッサーのアグロメーターを併用することで、すべての行列がmaster(s)に結合された。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
solvers&lt;br /&gt;
{&lt;br /&gt;
    p&lt;br /&gt;
    {&lt;br /&gt;
        solver                  GAMG;&lt;br /&gt;
        processorAgglomerator   masterCoarsest;&lt;br /&gt;
        ..&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* シングルブロック（つまり、cyclicAMIはなく、プロセッサーフェイスのみ）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells       nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max       avg     max&lt;br /&gt;
   -----  ------         ---     ---       ---     ---&lt;br /&gt;
       0       4         100     100       1.5       2&lt;br /&gt;
       1       4          50      50       1.5       2&lt;br /&gt;
       2       1         100     100         0       0&lt;br /&gt;
       3       1          48      48         0       0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;すべてのプロセッサ面が内部となるため、境界の数（nInterfaces）は0となる。&lt;br /&gt;
&lt;br /&gt;
* 2ブロックの場合（つまり、cyclicAMIとプロセッサフェイス）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells         nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max         avg     max&lt;br /&gt;
   -----  ------         ---     ---         ---     ---&lt;br /&gt;
       0       4         100     100           3       3&lt;br /&gt;
       1       4          50      50           3       3&lt;br /&gt;
       2       1         100     100           2       2&lt;br /&gt;
       3       1          48      48           2       2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ここでは、2つのcyclicAMIのみが保存されるため、境界の数は3つから2つに減る。&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cyclicA(C)MI&amp;lt;/code&amp;gt; :&lt;br /&gt;
** すべての面がローカルになると、動作は非分散にリセットされる。つまり、操作は追加のコピーなしで、提供されたフィールドに直接適用される。&lt;br /&gt;
** 回転変換はまだサポートされていません。これは基本的な制限ではありませんが、変換を考慮するためにステンシルを追加で書き換える必要があります。&lt;br /&gt;
* processorCyclic : (オーナーセルと隣接セルが異なるプロセッサ上にあるサイクリック) はまだサポートされていない。これは通常のプロセッサ境界として扱われるため、変換は失われる。processorCyclicはdecomposeParDictでパッチ制約を使うことで回避できることに注意。&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
constraints&lt;br /&gt;
{&lt;br /&gt;
    patches&lt;br /&gt;
    {&lt;br /&gt;
        //- Keep owner and neighbour on same processor for faces in patches&lt;br /&gt;
        //  (only makes sense for cyclic patches and cyclicAMI)&lt;br /&gt;
        type    preservePatches;&lt;br /&gt;
        patches (cyclic);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* masterCoarsestのみがテストされているが、コードは他のどのプロセッサー凝集法もサポートするはずである。&lt;br /&gt;
* これまでの限られたテストでは、cyclicAMIのプロセッサー集積の利点は示され ていない。これは、ボトルネック、例えば、大域的削減の数や暗黙性が問題となる場合にのみ有効である。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 645&lt;br /&gt;
&lt;br /&gt;
=== redistributeParとファイルシステムの改良 ===&lt;br /&gt;
このリリースでは、照合ファイル・フォーマットの一般的なサポートが改善され、redistributeParユーティリティの調整も行われました。これらの変更により、照合ファイル形式は以前よりも幅広いワークフローで使用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
これらの変更に加え、分散ファイルシステムによるダイナミックコードの取り扱いが改善された。このようなタイプのシステムでは、動的にコンパイルされたライブラリも対応するサブランクに配布されるようになった。&lt;br /&gt;
&lt;br /&gt;
==== 照合されたインクルードファイルの取り扱いが改善された ====&lt;br /&gt;
以前のバージョンでは、&amp;quot;include &amp;quot;ファイルを照合と組み合わせて使用すると、ファイルの内容がランタイムで変更可能なものとして扱われる場合、非常に壊れやすいことがあった。今回、ウォッチド・ファイルの取り扱いが更新され、プロセッサー・ランク間の適切な対応が保証されるようになった。&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
=== New verification and validation public repository ===&lt;br /&gt;
OpenFOAMソフトウェアの検証と妥当性確認に関するコミュニティへの貢献をホストする新しいパブリックリポジトリが開設されました： OpenFOAM Verification and Validation Repository。&lt;br /&gt;
&lt;br /&gt;
このリポジトリの主な目的は、OpenFOAMコミュニティがソフトウェアの検証と検証の側面を共有、協力、強化するための一元化されたプラットフォームを提供することです。コミュニティの集合的な知識と専門知識を結集することにより、OpenFOAMシミュレーションの全体的な品質を向上させ、数値モデリングのベストプラクティスを推進することを目指しています。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、Taylor-Green渦問題と円形Couette流れが組み込まれ、ケースのセットアップとドキュメンテーションのために提供されたテンプレートの実用的な応用が示されています。&lt;br /&gt;
&lt;br /&gt;
=== コンピレーション ===&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
OpenFOAMで使用されるC++標準は、GNUコンパイラでもc++14になりました。この変更により、推奨コンパイラの最小バージョンはgcc-7.5.0になりました。&lt;br /&gt;
&lt;br /&gt;
将来のコード移行を支援するため、「より厳しい」非推奨警告を有効にできるようになりました。これは WM_COMPILE_CONTROL 環境変数の +strict エントリでグローバルに、または wmake -strict で一度だけ有効にできます。これは主に開発者向けのオプションと考えることができます（多くの警告を生成する可能性があります）が、モジュールを書くときに便利で面白いかもしれません。&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
このバージョンには、MacOS上でのコンパイルと実行に関するいくつかの改良が含まれています。&lt;br /&gt;
&lt;br /&gt;
* AppleとARM64のFPE処理の改善（Guanyang Xue氏提供）&lt;br /&gt;
* rpathハンドリング&lt;br /&gt;
* xcrun サポート&lt;br /&gt;
&lt;br /&gt;
MacOS のコンパイルでは、rpath のサポートがデフォルトで有効になり、Apple SIP (System Integrity Protection) の影響に対する回避策がいくらか減って、これらのシステムでの OpenFOAM の実行が簡単になりました。WM_COMPILE_CONTROL環境変数に~rpathを追加することで、rpath処理を無効にできます。&lt;br /&gt;
&lt;br /&gt;
MacOSコンパイルでは、xcodeツール（xcrunなど）の使用もサポートするようになりました。これらはWM_COMPILE_CONTROL環境変数に+xcrunを追加することで有効になります。見つかると、これらのコンパイル・ルールが使用されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cc   := xcrun cc&lt;br /&gt;
CC   := xcrun c++ -std=c++14&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Clang ===&lt;br /&gt;
clangベースのコンパイルで、ldリンカを使用するように明示的に指定できるようになりました（注意：clangがldを使用するかlldを使用するかはインストールに依存します）。リンカの選択は環境変数 WM_COMPILE_CONTROL の対応するエントリで定義されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
- `+gold`    : use gold linker&lt;br /&gt;
- `+link-ld` : use   ld linker&lt;br /&gt;
- `+lld`     : use  lld linker&lt;br /&gt;
- `+mold`    : use mold linker&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenMP ===&lt;br /&gt;
openmp と no-openmp の扱いが強化された。&amp;quot;+openmp&amp;quot; (wmake -openmp) よりも &amp;quot;~openmp&amp;quot; (wmake -no-openmp) の方が優先されます。&lt;br /&gt;
&lt;br /&gt;
これにより、一般的に+openmpを指定する場合はrobusterとなり、特定のビルド・コンポーネント（スタティック・ライブラリやMPIブリッジ・コードなど）を指定する場合は~openmpとなる。&lt;br /&gt;
&lt;br /&gt;
=== Profiling ===&lt;br /&gt;
このバージョンには、Extraeプロファイリング用のフックが含まれています。デフォルトでは、フックは常にOpenFOAMと一緒にビルドされますが、LD_PRELOADによってExtraeが実際にロードされるまで休止しています。これにより、OpenFOAMをその目的専用に再コンパイルすることなく、Extraeのトレースが可能になります。&lt;br /&gt;
&lt;br /&gt;
Josep Pocurull（Barcelona Supercomputing Center）により提供され、exaFOAMプロジェクトの一部として使用されたコード。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/global/profiling/profilingTrigger.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 652&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=848</id>
		<title>OpenFOAM v2312リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v2312%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=848"/>
		<updated>2023-12-24T08:08:36Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「OpenCFDは、2023年12月リリースのOpenFOAM® v2312を発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v2306の機能を拡張しています。この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。  OpenFOAMはOpenCFDによってGPLライセンスの下で配布されてい…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenCFDは、2023年12月リリースのOpenFOAM® v2312を発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v2306の機能を拡張しています。この新機能は、OpenCFDの顧客からのスポンサーによる開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMはOpenCFDによってGPLライセンスの下で配布されています。様々なLinuxや他のPOSIXシステムでのコンパイルに適したソースコードパッケージに加え、このリリースにはコンパイル済みのバイナリパッケージも多数あります。&lt;br /&gt;
&lt;br /&gt;
Ubuntu Linux: Ubuntu 22.04(LTS)、20.04(LTS)、18.04(LTS)、23.04、22.10 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
openSUSE Linux: Leap 15.5 用パッケージインストール&lt;br /&gt;
&lt;br /&gt;
Redhat Linuxの亜種: epel 9用のパッケージインストール; Fedora 37&lt;br /&gt;
&lt;br /&gt;
Windowsユーザーには、コンパイル済みパッケージについて3つの選択肢があります（詳細）：&lt;br /&gt;
&lt;br /&gt;
Windows Subsystem for Linux（Ubuntu、openSUSEなどベース）を使用する。&lt;br /&gt;
&lt;br /&gt;
クロスコンパイルによるネイティブ実行ファイル&lt;br /&gt;
&lt;br /&gt;
docker インストール&lt;br /&gt;
&lt;br /&gt;
OpenFOAMのapptainerサポートは、事前にアセンブルされたイメージではなく、記述ファイルによって提供されます：&lt;br /&gt;
&lt;br /&gt;
パッケージング/コンテナ参照&lt;br /&gt;
&lt;br /&gt;
Mac OSXユーザーは、ソースからコンパイルするか、Dockerコンテナを使ってコンパイル済みのパッケージを使用するオプションがあります（詳細）。&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：自動リークパスクロージャーから面を書き込む ===&lt;br /&gt;
snappyHexMeshにはメッシュ内の任意の位置とメッシュ外の位置の間のパスとして定義されたサーフェスのリークを自動的に閉じるオプションがあります。このリリースではリークを閉じるために使用された面はpostProcessingディレクトリのファイルに書き込まれます。&lt;br /&gt;
&lt;br /&gt;
下図は、ギャップのある球体（灰色）、スナップされたメッシュライン（青）、リークを閉じる面（赤）からなるテストケースを示しています：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ファイル書き込みフォーマットはsnappyHexMeshDictの新しいエントリーで選択できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//// Format for writing lines. E.g. leak path. Default is vtk format.&lt;br /&gt;
//setFormat ensight;&lt;br /&gt;
&lt;br /&gt;
//// Format to use for surfaces. E.g. leak-closure faces. Default is vtk format.&lt;br /&gt;
//surfaceFormat vtk;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_gapClosure&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：新しい複数の内側ポイント ===&lt;br /&gt;
snappyHexMeshのセルゾーンはinsidePointを指定することで作成できます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
refinementSurfaces&lt;br /&gt;
{&lt;br /&gt;
    ..&lt;br /&gt;
    cellZoneInside insidePoint;    // outside/insidePoint&lt;br /&gt;
    insidePoint    (1 1 1);        // if (cellZoneInside == insidePoint)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1つのinsidePointではなく、複数のinsidePointが用意された：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cellZoneInside insidePoints;      // outside/insidePoint&lt;br /&gt;
insidePoints   ((1 1 1));         // if (cellZoneInside == insidePoint)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図では、ジオメトリは2つのボックス（ワイヤーフレーム）で構成され、上のボックスは2つの切り離されたメッシュ領域をカバーしている。赤で示されたセルゾーンは、3つの別々のメッシュ領域を使用して作成されています。checkMeshユーティリティは、切断されたリージョンを表示するために使うことができます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/insidePoints&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/refinementSurfaces/surfaceZonesInfo.H&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：並列メッシュの負荷分散 ===&lt;br /&gt;
snappyHexMeshは並列実行時に自動的にメッシュのバランスをとることができます。それは以下のどちらかになります&lt;br /&gt;
&lt;br /&gt;
* 変更が小さすぎる場合はバランスを取らない - maxLoadUnbalanceまたはmaxCellUnbalance設定を参照。&lt;br /&gt;
* maxLocalCells設定を参照してください。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、各ステップでメッシュのアンバランスがプリントされます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Layer mesh : cells:353749  faces:1108448  points:406303  unbalance:0.00110248&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;精製前のバランスは、セルの重みを与えることで実装されることに注意。各精製されるセルは8ずつカウントされる。しかし、これは単純な分解法、例えば階層的な分解法にのみ有効である。scotch と KaHip メソッドでは、カット数を含む重みを使ってアンバランスを最小化する。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* any parallel snappyHexMesh case&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 3034&lt;br /&gt;
&lt;br /&gt;
=== snappyHexMesh：レイヤーごとの追加 ===&lt;br /&gt;
OpenFOAM v2206リリースでは、snappyHexMeshが拡張され、nOuterIterエントリーを使用して複数パスでレイヤーを追加できるようになりました。ここでは、$FOAM_TUTORIALS/incompressible/pisoFoam/LES/motorBike/motorBikeチュートリアルを出発点として、どのように改良されたレイヤーの追加を実行できるかをデモしたいと思います：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
relativeSizes false; // true&lt;br /&gt;
&lt;br /&gt;
// Per final patch (so not geometry!) the layer information&lt;br /&gt;
layers&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;(lowerWall|motorBike).*&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        nSurfaceLayers 16;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Expansion factor for layer mesh&lt;br /&gt;
expansionRatio 1.2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;重要な設定は、外側の反復回数とメッシュ・モーション・ソルバーである：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Overall max number of layer addition iterations&lt;br /&gt;
nLayerIter      25;&lt;br /&gt;
&lt;br /&gt;
// Add layers in multiple passes - gives layers a chance to rotate&lt;br /&gt;
nOuterIter      4;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meshShrinker    displacementMotionSolver;&lt;br /&gt;
solver          displacementLaplacian;&lt;br /&gt;
displacementLaplacianCoeffs&lt;br /&gt;
{&lt;br /&gt;
    diffusivity quadratic inverseDistance (lowerWall upperWall &amp;quot;motorBike*&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;メッシュの品質基準を緩めることで、（全体的なメッシュ品質は維持したまま）この複雑な形状でもレイヤーカバレッジを劇的に向上させることができる。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/mesh/snappyHexMesh/addLayersToFaceZone&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C&lt;br /&gt;
&lt;br /&gt;
=== Nastranサーフェスリーダーの改良 ===&lt;br /&gt;
NASTRANパーサーが更新され、PSHELL名の新しいANSA規約に対応しました。これにより、snappyHexMeshなど、より多くの場所でNASTRANファイルを直接使用することができるようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/surfaceFormats/nas/NASsurfaceFormat.C&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 3009&lt;br /&gt;
&lt;br /&gt;
=== checkMeshユーティリティの改良 ===&lt;br /&gt;
checkMesh ユーティリティに writeChecks オプションが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -writeChecks &amp;lt;format&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これにより、メッシュ・チェックのフォーマットを含むファイルが生成される：&lt;br /&gt;
&lt;br /&gt;
* dictionary : OpenFOAM dictionary;&lt;br /&gt;
* json : JSON format.&lt;br /&gt;
&lt;br /&gt;
例えば、コマンドを使う：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
checkMesh -allGeometry -allTopology -writeChecks JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;motorBikeチュートリアルでは、caseディレクトリにcheckMesh.jsonファイルが生成される：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;maxNonOrth&amp;quot; : 64.9999,&lt;br /&gt;
    &amp;quot;aveNonOrth&amp;quot; : 9.92427,&lt;br /&gt;
    &amp;quot;maxSkew&amp;quot; : 9.25719,&lt;br /&gt;
    &amp;quot;nWarnSkew&amp;quot; : 12,&lt;br /&gt;
    &amp;quot;minDeterminant&amp;quot; : 0,&lt;br /&gt;
    &amp;quot;aveDeterminant&amp;quot; : 1.55371,&lt;br /&gt;
    &amp;quot;thresholdDeterminant&amp;quot; : 0.001,&lt;br /&gt;
    &amp;quot;nErrorDeterminant&amp;quot; : 1274,&lt;br /&gt;
    &amp;quot;minFaceWeight&amp;quot; : 0.0216708,&lt;br /&gt;
    &amp;quot;aveFaceWeight&amp;quot; : 0.465687,&lt;br /&gt;
    &amp;quot;thresholdFaceWeight&amp;quot; : 0.05,&lt;br /&gt;
    &amp;quot;nErrorFaceWeight&amp;quot; : 1143,&lt;br /&gt;
    &amp;quot;minFaceVolumeRatio&amp;quot; : 0.0101126,&lt;br /&gt;
    &amp;quot;aveFaceVolumeRatio&amp;quot; : 0.846049&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/mesh/manipulation/checkMesh/checkMesh.C&lt;br /&gt;
&lt;br /&gt;
=== subsetMeshユーティリティの改良 ===&lt;br /&gt;
subsetMesh ユーティリティが更新され、通常の -patches 選択を変更する -exclude-patches オプションを受け付けるようになりました。&lt;br /&gt;
&lt;br /&gt;
この変更により、最も近い露出パッチの指定が簡単になりました。&lt;br /&gt;
&lt;br /&gt;
== Numerics ==&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 随伴形状最適化の改善 ===&lt;br /&gt;
形状最適化のための感度微分を計算するためのE-SIとFI定式化間の整合性が改善されました。naca0012/laminar/moment/primalAdjointチュートリアルから取得した、変更前後のコード動作の例を以下に示します：&lt;br /&gt;
&lt;br /&gt;
一貫した点／面の感度マップ&lt;br /&gt;
&lt;br /&gt;
v2306とv2312で計算されたドラッグ感度マップを比較すると、a)新しいポイント-フェイス補間は、生の、つまり平滑化されていない感度でも、より滑らかな結果を生成する。&lt;br /&gt;
&lt;br /&gt;
さらなる改善点は以下の通り：&lt;br /&gt;
&lt;br /&gt;
* 不必要に新しいアドジョイントフィールドを割り当てることなく幾何学的制約を定義するための新しいアドジョイントソルバ（null）と目的関数（geometric）タイプ&lt;br /&gt;
&lt;br /&gt;
* 不等式制約のある最適化問題に取り組むための3つの新しい更新法（ISQP, nullSpace, MMA）&lt;br /&gt;
* 設計変数に境界を導入。ボリューメトリックBスプラインの場合、最適化を通してメッシュの品質をより良く保つことができます。&lt;br /&gt;
* 最適化ループの収束基準の導入。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/naca0012/laminar/multipleConstraints&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献 トポロジーに基づく新しいアジョイント最適化 ===&lt;br /&gt;
OpenFOAM v2312では、空隙率ベースまたはレベルセットアプローチによる新しいトポロジー最適化機能が追加されました。どちらも、設計されたジオメトリをSTLとしてエクスポートする機能を備えており、製造やボディフィットグリッドによる再評価に利用できます。&lt;br /&gt;
&lt;br /&gt;
空隙率ベースのアプローチは、計算領域の非生産的な部分を固めることでブロックする設計変数の場（人工空隙率α）に依存する。得られた解の平滑性を高めるために、正則化方程式を解いて中間場α̃を計算し、次にシャープニング/プロジェクションステップを経てほぼ二値の場βを計算します。後者は、固化した領域（すなわちβ≈1の領域）で流れ解をゼロにするソース項を流れ方程式に導入するために使用されます。上記のプロセスの手順を以下に示す。&lt;br /&gt;
&lt;br /&gt;
次の表は、同じケースの3つの異なるバリエーション、すなわち、Jpt＜Jpttarget制約（右）の下で、総圧力損失（Jpt）の最小化（左）、下部出口と右出口間の体積流量の均等配分制約（Jm）を伴うJptの最小化（中央）、および流れの均一性（Jun）の最大化（右）に対するトポロジー最適化の結果を示している。&lt;br /&gt;
&lt;br /&gt;
ケースは、adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/BPにあります。&lt;br /&gt;
&lt;br /&gt;
次の表は、同様の目的関数と制約関数を持つ3次元多様体のトポロジー最適化の結果を示しています。最初の行は、最適化サイクル中の計算領域の流体部分と固体部分の境界の進行を示し、最後の行は、最適化された3つの形状のSTLファイルを示しています。後者の生成プロセスは自動化されており、各最適化サイクルの終了時に実行されます。これらのSTLファイルは、適切な境界条件によるボディフィットシミュレーションや、その後の形状最適化、さらには製造に使用することができます。&lt;br /&gt;
&lt;br /&gt;
ケースはtopologyOptimisation/monoFluidAero/laminar/3DBoxにあります。&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
optimisationDict.optimisationの項目が少し変わりました。この変更は、例えば、$FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/motorBikeのoptimisationDictを以前のものと比較することで確認できます。&lt;br /&gt;
&lt;br /&gt;
Tutorials&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/topologyOptimisation&lt;br /&gt;
&lt;br /&gt;
Guide&lt;br /&gt;
&lt;br /&gt;
* The updated user guide for v2312 can be found here&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* Merge request MR!649&lt;br /&gt;
* Overhaul of the adjoint library to ease extension to flow physics other than incompressible flows - see Commit 9a89fcc0 for details;&lt;br /&gt;
* Corrections/improvements to shape optimisation - see Commit 9a89fcc0 for details.&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* The software was developed by PCOpt/NTUA and FOSS GP&lt;br /&gt;
* Integration in collaboration with OpenCFD&lt;br /&gt;
&lt;br /&gt;
== Solvers and physical models ==&lt;br /&gt;
&lt;br /&gt;
=== fvOptionsの改良：ポイントの移動 ===&lt;br /&gt;
有限体積オプション（fvOptions）フレームワークが改良されました：&lt;br /&gt;
&lt;br /&gt;
* 入力辞書の更新により、セル選択を実行時に更新できるようになりました。&lt;br /&gt;
* 空間内を移動する点をモデル化する新しい方法。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
fvOption1&lt;br /&gt;
{&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    updateSelection         true;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fvOption2&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    selectionMode   movingPoints;&lt;br /&gt;
&lt;br /&gt;
    movingPoints&lt;br /&gt;
    {&lt;br /&gt;
        point1        table&lt;br /&gt;
        (&lt;br /&gt;
            // time    position&lt;br /&gt;
            (  0 (0 0 0.75))&lt;br /&gt;
            (  1 (0 0 0.65))&lt;br /&gt;
            (  2 (0 0 0.55))&lt;br /&gt;
            (  3 (0 0 0.45))&lt;br /&gt;
            (  4 (0 0 0.35))&lt;br /&gt;
            (  5 (0 0 0.25))&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        point2        (-0.25 -0.25 0.5);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/cellSetOption/cellSetOption.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== 新しい fvOption: マップされたフィールド制約 ===&lt;br /&gt;
MapFieldConstraintは、外部メッシュからのソース・フィールドを使用して、&amp;lt;Type&amp;gt;型の指定フィールドに値の制約を課します。ここで、&amp;lt;Type&amp;gt;には{scalar, vector, sphericalTensor, symmTensor, tensor}を指定できます。オプションとして、ソースフィールドは時間経過とともに平行移動または回転させることができます。&lt;br /&gt;
&lt;br /&gt;
考えられる用途は、例えば、移動する電気源の影響をモデル化することである。最小限の使用例を以下に示す：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
MapFieldConstraint1&lt;br /&gt;
{&lt;br /&gt;
    // Mandatory entries&lt;br /&gt;
    type                MapFieldConstraint;&lt;br /&gt;
    field               &amp;lt;word&amp;gt;;&lt;br /&gt;
    srcMesh             &amp;lt;fileName&amp;gt;;&lt;br /&gt;
    mapMethod           &amp;lt;word&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
    // Optional entries&lt;br /&gt;
    consistent          &amp;lt;bool&amp;gt;;&lt;br /&gt;
    patchMapMethod      &amp;lt;word&amp;gt;;&lt;br /&gt;
    transform&lt;br /&gt;
    {&lt;br /&gt;
        // Optional entries&lt;br /&gt;
        position    &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        origin      &amp;lt;vector&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
        direction   &amp;lt;Function1&amp;lt;vector&amp;gt;&amp;gt;;&lt;br /&gt;
        normal      &amp;lt;vector&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Conditional entries&lt;br /&gt;
&lt;br /&gt;
        // when consistent=false&lt;br /&gt;
        patchMap        &amp;lt;HashTable&amp;lt;word&amp;gt;&amp;gt;;  // (&amp;lt;patchSrc&amp;gt; &amp;lt;patchTgt&amp;gt;);&lt;br /&gt;
        cuttingPatches  &amp;lt;wordList&amp;gt;;  // (&amp;lt;patchTgt1&amp;gt; ... &amp;lt;patchTgtN&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
    // Inherited entries&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/fvOptions/constraints/general/mapFieldConstraint/MapFieldConstraint.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 630&lt;br /&gt;
&lt;br /&gt;
=== コミュニティへの貢献：新しい乱流技術委員会サブモジュール ===&lt;br /&gt;
OpenFOAMガバナンス内のTurbulence Technical Committeeのネストされたサブモジュールを含む新しいコミュニティサブモジュールが開始されました。このサブモジュールは、公開されている Turbulence Technical Committee のリポジトリでホストされています。&lt;br /&gt;
&lt;br /&gt;
コミュニティ・サブモジュールは、乱流モデリングに関連する学術的・産業的な貢献のホストとして機能し、知識交換の場を作り、この分野とOpenFOAMの両方を発展させるコラボレーションを促進します。&lt;br /&gt;
&lt;br /&gt;
BitbucketやGitHubのようなGitベースのソースコード・リポジトリ・ホスティング・サービスでホストし、このサブモジュールを介してOpenFOAMソフトウェアにリンクすることができます。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、サブモジュールにlibWallModelledLESライブラリーが組み込まれ、壁面モデルによるラージ・エディ・シミュレーション（WMLES）の領域でOpenFOAMの機能が拡張されました。この乱流モデリング手法は、乱流境界層の内部領域の解像度を回避することで、費用対効果の高いLESを可能にします。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $WM_PROJECT_DIR/modules/turbulence-community&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Turbulence Technical Committee members for their contributions and help.&lt;br /&gt;
&lt;br /&gt;
=== 改善されたラグランジュ・ブラウン運動 ===&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。しかし、特に指定がない限り、（互換性のために）デフォルトの球形分布が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
このバージョンでは、ブラウン運動の3次分布のサポートが復活しました。&lt;br /&gt;
&lt;br /&gt;
しかし、特に指定がない限り、適度に小さな時間ステップでは不正確であるにもかかわらず、（互換性のために）デフォルトの球面処理が引き続き使用されます。&lt;br /&gt;
&lt;br /&gt;
三次分布は、球面処理が明示的に無効化されている場合に使用される。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subModels&lt;br /&gt;
{&lt;br /&gt;
    particleForces&lt;br /&gt;
    {&lt;br /&gt;
        sphereDrag;&lt;br /&gt;
        BrownianMotion&lt;br /&gt;
        {&lt;br /&gt;
            lambda     2e-10;&lt;br /&gt;
            turbulence false;&lt;br /&gt;
            spherical  false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;立方体分布と球形分布の違いは次の図に見られる。&lt;br /&gt;
&lt;br /&gt;
変更の報告、検証、テストはGuanyang Xueの好意によるものである。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2922&lt;br /&gt;
&lt;br /&gt;
Merge request 634&lt;br /&gt;
&lt;br /&gt;
== Post-processing ==&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusサンプルセット ===&lt;br /&gt;
新しい abaqusMesh セットは、Abaqus メッシュポイント形式を使用してファイルからサンプル位置を導出します。使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sets&lt;br /&gt;
{&lt;br /&gt;
    cone25 // user-specified set name&lt;br /&gt;
    {&lt;br /&gt;
        type        abaqusMesh;&lt;br /&gt;
        file        &amp;quot;abaqusMesh.inp&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Scale, e.g. mm to m&lt;br /&gt;
        scale       0.001;&lt;br /&gt;
&lt;br /&gt;
        // Search distance when the sample point is not located in a cell&lt;br /&gt;
        maxDist     0.25;&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/abaqus&lt;br /&gt;
&lt;br /&gt;
=== 新しいAbaqusセットライター ===&lt;br /&gt;
新しいAbaqusセットライターはOpenFOAMセットデータをAbaqusフォーマットに変換します。使用例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
T&lt;br /&gt;
{&lt;br /&gt;
    type sets;&lt;br /&gt;
    setFormat abaqus;&lt;br /&gt;
    fields (T);&lt;br /&gt;
    sets&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;オプションの書式オプションは、formatOptions辞書内のabaqusサブ辞書で提供されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    abaqus&lt;br /&gt;
    {&lt;br /&gt;
        format      ascii;&lt;br /&gt;
&lt;br /&gt;
        // Optional entries&lt;br /&gt;
&lt;br /&gt;
        // Custom header: $ entries are substituions&lt;br /&gt;
        header&lt;br /&gt;
        (&lt;br /&gt;
            &amp;quot;** OpenFOAM abaqus output&amp;quot;&lt;br /&gt;
            &amp;quot;** Project $FOAM_CASE&amp;quot;&lt;br /&gt;
            &amp;quot;** File $FILE_NAME&amp;quot;&lt;br /&gt;
            &amp;quot;** $FIELD_NAME Time t=$TIME&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        // Write geometry in addition to field data&lt;br /&gt;
        writeGeometry yes;&lt;br /&gt;
&lt;br /&gt;
        // Null value when sample value is not found&lt;br /&gt;
        // Default is scalar::min&lt;br /&gt;
        nullValue   0;&lt;br /&gt;
&lt;br /&gt;
        // Insert additional time sub-directory in the output path&lt;br /&gt;
        // - yes : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;time&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        // - no : postProcessing/&amp;lt;fo-name&amp;gt;/&amp;lt;file&amp;gt;&lt;br /&gt;
        useTimeDir  no;&lt;br /&gt;
&lt;br /&gt;
        // Available when 'useTimeDir' is 'no' to disambiguate file names&lt;br /&gt;
&lt;br /&gt;
        // Time base for output file names:&lt;br /&gt;
        // - 'time' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;time&amp;gt;&lt;br /&gt;
        // - 'iteration' : &amp;lt;base&amp;gt;.inp_&amp;lt;field&amp;gt;.&amp;lt;iteration&amp;gt;&lt;br /&gt;
        timeBase    iteration;&lt;br /&gt;
&lt;br /&gt;
        // Optional start counters when using timeBase iteration&lt;br /&gt;
        writeIndex&lt;br /&gt;
        (&lt;br /&gt;
            T 1&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorials&lt;br /&gt;
&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/meshTools/coordSet/writers/abaqus/abaqusCoordSetWriter.C&lt;br /&gt;
&lt;br /&gt;
=== パッチ・シード・セットの改善 ===&lt;br /&gt;
patchSeed sampled setがパッチ全体で一様にサンプルシードを計算するようになりました。以前の実装では、顔のインデックスをパッチ全体で一様にサンプリングしていましたが、その副作用として、より小さな顔に偏りがありました。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
streamline5&lt;br /&gt;
{&lt;br /&gt;
    type                streamLine;&lt;br /&gt;
    libs                (fieldFunctionObjects);&lt;br /&gt;
    U                   U;&lt;br /&gt;
    fields              (U p);&lt;br /&gt;
    setFormat           vtk;&lt;br /&gt;
    direction           forward;&lt;br /&gt;
    lifeTime            20000;&lt;br /&gt;
    cloud               particleTracks;&lt;br /&gt;
    seedSampleSet&lt;br /&gt;
    {&lt;br /&gt;
        type            patchSeed;&lt;br /&gt;
        axis            xyz;&lt;br /&gt;
        patches         (&amp;quot;inlet1&amp;quot;);&lt;br /&gt;
        maxPoints       40;&lt;br /&gt;
    }&lt;br /&gt;
    interpolationScheme cellPoint;&lt;br /&gt;
    trackLength         0.001;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/sampling/sampledSet/patchSeed&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 647&lt;br /&gt;
&lt;br /&gt;
=== 新しいケース情報機能オブジェクト ===&lt;br /&gt;
新しい caseInfo 関数オブジェクトは、実行時または後処理の一部として、ソルバーとケースの情報を生成します。収集されるデータには以下が含まれます：&lt;br /&gt;
&lt;br /&gt;
* メタデータ：ケース名、パス、タイムディレクトリ数など。&lt;br /&gt;
* 辞書エントリ : 任意の入力辞書からすべて/選択したものを抽出&lt;br /&gt;
** fvSolutionからUリニアソルバーを取得するには、'solvers/U/solver'などのスコープを使用する。&lt;br /&gt;
** はワイルドカードをサポートしている。例えば、fvSolution U ソルバー・キーワードが&amp;quot;(U|k|epsilon) &amp;quot;であった場合。&lt;br /&gt;
** include'または'exclude'リストを使用して、含める/除外するエントリ名の選択を制限する。&lt;br /&gt;
* メッシュ統計：点、面、セルの数、境界、ゾーン名など。&lt;br /&gt;
* 関数オブジェクトの結果：関数オブジェクトの結果のキャッシュ値など&lt;br /&gt;
&lt;br /&gt;
使用例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
caseInfo1&lt;br /&gt;
{&lt;br /&gt;
    type        caseInfo;&lt;br /&gt;
    libs        (utilityFunctionObjects);&lt;br /&gt;
&lt;br /&gt;
    writeFormat json; // josn | dictionary&lt;br /&gt;
&lt;br /&gt;
    // List of dictionaries - retrieve using 'path' or registered 'name'&lt;br /&gt;
    dictionaries&lt;br /&gt;
    {&lt;br /&gt;
        fvSolution&lt;br /&gt;
        {&lt;br /&gt;
            name        &amp;quot;fvSolution&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // include all entries by default&lt;br /&gt;
        }&lt;br /&gt;
        controlDict&lt;br /&gt;
        {&lt;br /&gt;
            path        &amp;quot;system/controlDict&amp;quot;;&lt;br /&gt;
            include&lt;br /&gt;
            (&lt;br /&gt;
                &amp;quot;application&amp;quot;&lt;br /&gt;
                &amp;quot;deltaT&amp;quot;&lt;br /&gt;
                &amp;quot;startTime&amp;quot;&lt;br /&gt;
                &amp;quot;endTime&amp;quot;&lt;br /&gt;
            );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Extract function object results&lt;br /&gt;
    functionObjects (pressureDifference sample1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;出力例&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;meta&amp;quot; : {&lt;br /&gt;
        &amp;quot;case&amp;quot; : &amp;quot;heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;path&amp;quot; : &amp;quot;chtMultiRegionSimpleFoam/heatExchanger&amp;quot;,&lt;br /&gt;
        &amp;quot;regions&amp;quot; : [&amp;quot;air&amp;quot;, &amp;quot;porous&amp;quot;],&lt;br /&gt;
        &amp;quot;nTimes&amp;quot; : 7,&lt;br /&gt;
        &amp;quot;nProc&amp;quot; : 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;regions&amp;quot; : {&lt;br /&gt;
        &amp;quot;air&amp;quot; : {&lt;br /&gt;
            &amp;quot;mesh&amp;quot; : {&lt;br /&gt;
                &amp;quot;nGeometricD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nSolutionD&amp;quot; : 3,&lt;br /&gt;
                &amp;quot;nPoints&amp;quot; : 252991,&lt;br /&gt;
                &amp;quot;nFaces&amp;quot; : 739260,&lt;br /&gt;
                &amp;quot;nCells&amp;quot; : 243000,&lt;br /&gt;
                &amp;quot;nPatches&amp;quot; : 4,&lt;br /&gt;
                &amp;quot;pointZones&amp;quot; : [],&lt;br /&gt;
                &amp;quot;faceZones&amp;quot; : [&amp;quot;rotorBlades&amp;quot;, &amp;quot;baffleFaces&amp;quot;],&lt;br /&gt;
                &amp;quot;cellZones&amp;quot; : [&amp;quot;cylinder&amp;quot;, &amp;quot;innerCylinder&amp;quot;, &amp;quot;rotor&amp;quot;],&lt;br /&gt;
                &amp;quot;boundsMin&amp;quot; : [0, 0, 0],&lt;br /&gt;
                &amp;quot;boundsMax&amp;quot; : [5.000000e-01, 5.000000e-01, 5.000000e-01],&lt;br /&gt;
                &amp;quot;clouds&amp;quot; : []&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;boundary&amp;quot; : {&lt;br /&gt;
                &amp;quot;types&amp;quot; : {&lt;br /&gt;
                    &amp;quot;walls&amp;quot; : &amp;quot;wall&amp;quot;,&lt;br /&gt;
                    &amp;quot;inlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;outlet&amp;quot; : &amp;quot;patch&amp;quot;,&lt;br /&gt;
                    &amp;quot;blades&amp;quot; : &amp;quot;wall&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                &amp;quot;fields&amp;quot; : {&lt;br /&gt;
                    &amp;quot;alphat&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;compressible::alphatWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;nut&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;nutkWallFunction&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    &amp;quot;p&amp;quot; : {&lt;br /&gt;
                        &amp;quot;walls&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;inlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;outlet&amp;quot; : &amp;quot;calculated&amp;quot;,&lt;br /&gt;
                        &amp;quot;blades&amp;quot; : &amp;quot;calculated&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/caseInfo&lt;br /&gt;
&lt;br /&gt;
== DMDによる新しい低次モデリング磁場再構成 ==&lt;br /&gt;
動的モード分解（DMD）機能は、OpenFOAM v2006で導入され、その後OpenFOAM v2106で拡張されました。このリリースにより、OpenFOAMは、DMDの主な利点の1つである、任意の中間時点や将来の時点におけるCFD計算を必要とせずに、与えられたモードとそれに関連するダイナミクスに基づいて場を生成する機能を習得しました。&lt;br /&gt;
&lt;br /&gt;
この機能により、ユーザーはシミュレーション全体をいくつかのモードとモードダイナミクスに凝縮し、CFD解析を追加することなく、任意の時間における場の生成や将来の状態の予測を行うことができます。&lt;br /&gt;
&lt;br /&gt;
もう一つの潜在的な利点は、ユーザーがシミュレーションを短縮し、大規模なシミュレーションを行うことなく流れ場の将来の状態を予測できることである。これは、より短時間のシミュレーションで得られたモードとモードダイナミクスを使用することで実現できます。&lt;br /&gt;
&lt;br /&gt;
結果の質は、基礎となる縮小モデルの能力と入力データの質に依存することに留意すべきである。再構成結果を改善するためには、流れからモードが正しく抽出されていることを確認する必要がある。&lt;br /&gt;
&lt;br /&gt;
system/ROMfieldsDictを使った最小の例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Mandatory entries&lt;br /&gt;
ROMmodel        &amp;lt;word&amp;gt;;&lt;br /&gt;
field           &amp;lt;word&amp;gt;;&lt;br /&gt;
object          &amp;lt;word&amp;gt;;&lt;br /&gt;
deltaT          &amp;lt;scalar&amp;gt;;&lt;br /&gt;
time            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
modes           &amp;lt;labelList&amp;gt;;&lt;br /&gt;
amplitudes      &amp;lt;complexList&amp;gt;;&lt;br /&gt;
eigenvalues     &amp;lt;complexList&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Optional entries&lt;br /&gt;
startTime       &amp;lt;scalar&amp;gt;;&lt;br /&gt;
dimensions      &amp;lt;dimensionSet&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
// Inherited entries&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;下の図は、2次元円柱チュートリアルから得られた速度場と、シミュレーションを実行せずにDMDモードとダイナミクスを使用して再構成したものです：&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/createROMfields.C&lt;br /&gt;
* $FOAM_UTILITIES/postProcessing/miscellaneous/createROMfields/ROMmodels/DMD/DMD.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
&lt;br /&gt;
* Kiewat, M. (2019). Streaming modal decomposition approaches for vehicle aerodynamics. PhD thesis. Munich: Technical University of Munich. URL:mediatum.ub.tum.de/doc/1482652/1482652.pdf&lt;br /&gt;
&lt;br /&gt;
Attribution&lt;br /&gt;
&lt;br /&gt;
* OpenCFD would like to acknowledge and thank Marco Kiewat for his contributions, elaborate suggestions and help, and critical recommendations.&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 639&lt;br /&gt;
&lt;br /&gt;
=== ノイズ・ユーティリティの向上 ===&lt;br /&gt;
ノイズユーティリティは、時間情報からのデフォルトの自動計算だけでなく、ユーザー定義のサンプリング周波数（キーワード：sampleFreq）もサポートするようになりました。読みやすさを向上させるため、周波数の上限と下限をminFreqとmaxFreqで指定できるようになりました（以前のキーワードも引き続きサポートされています）。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// Lower frequency limit, default 25 Hz, former name 'fl'&lt;br /&gt;
minFreq 25;&lt;br /&gt;
&lt;br /&gt;
// Upper frequency limit, default 10 kHz, former name 'fu'&lt;br /&gt;
maxFreq 10000;&lt;br /&gt;
&lt;br /&gt;
// OPTIONAL - Sample frequency&lt;br /&gt;
sampleFreq 100;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;サンプリングされた時間から周波数を計算する際に時間が不均一であると評価された場合、deltaT が非常に小さい場合、不均一性は多くの場合偽のエラーであるため、ユーティリティはエラーではなく警告を発するようになりました。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/randomProcesses/noise/noiseModels/noiseModel/noiseModel.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS//incompressible/pimpleFoam/LES/vortexShed&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2999&lt;br /&gt;
&lt;br /&gt;
=== エンサイトの出力向上 ===&lt;br /&gt;
EnSightライターの時間値は、デフォルトの固定フォーマットと精度を使用する代わりに、ユーザーが指定できるようになりました。例えば&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
formatOptions&lt;br /&gt;
{&lt;br /&gt;
    ensight&lt;br /&gt;
    {&lt;br /&gt;
        timeFormat      general; // Format for time directory names (general | fixed | scientific); default scientific&lt;br /&gt;
        timePrecision   12;      // Default = 5&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これらの新しいフォーマットオプションは、例えばノイズユーティリティの圧力サンプリングと組み合わせて、小さなタイムステップを使用する場合に特に便利です。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/surfMesh/writers/ensight/ensightSurfaceWriter.H&lt;br /&gt;
* $FOAM_SRC/functionObjects/utilities/ensightWrite/ensightWrite.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Merge request 634&lt;br /&gt;
&lt;br /&gt;
=== 新しいラグランジュ関数オブジェクト ウェーバー数 ===&lt;br /&gt;
表面張力と比較した粒子の慣性の相対的な重要性を監視するために、ラグランジュ関数オブジェクトWeberNumberが運動学小包に導入されています。&lt;br /&gt;
&lt;br /&gt;
最小限の使用例は以下の通り：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cloudFunctions&lt;br /&gt;
{&lt;br /&gt;
    KinematicWeberNumber1&lt;br /&gt;
    {&lt;br /&gt;
        // Mandatory entries&lt;br /&gt;
        type             WeberNumber;&lt;br /&gt;
        sigma            &amp;lt;scalar&amp;gt;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicWeberNumber/KinematicWeberNumber.H&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 648&lt;br /&gt;
&lt;br /&gt;
=== 空のサーフェス（surfaceFieldValue）の取り扱いが改善されました。 ===&lt;br /&gt;
ワークフローによっては、サンプリングされたサーフェスが、シミュレーション中に現れたり消えたりするフェイスゾーンなどの量に依存する場合があります。そのため、空のサーフェスでサーフェスフィールドの値を評価することは、通常、セットアップに重大なエラーがあることを示しますが、このようなことが予想される場合もあります。追加キーワードempty-surfaceにより、空のサーフェスに遭遇したときの動作を指定することができます。&lt;br /&gt;
&lt;br /&gt;
最小限の例：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
surfaceFieldValueFaceZone1&lt;br /&gt;
{&lt;br /&gt;
    type            surfaceFieldValue;&lt;br /&gt;
    libs            (fieldFunctionObjects);&lt;br /&gt;
    ...&lt;br /&gt;
    regionType      faceZone;&lt;br /&gt;
&lt;br /&gt;
    empty-surface   warn;  // default | warn | ignore | strict&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H&lt;br /&gt;
&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
* Issue 2966&lt;br /&gt;
&lt;br /&gt;
== Parallel ==&lt;br /&gt;
&lt;br /&gt;
=== 結合パッチフィールド値の一貫性 ===&lt;br /&gt;
結合された制約境界条件、例: プロセッサーとサイクリックは、その内部フィールド値と一致している必要があります。 たとえば、プロセッサ パッチでは、値フィールドに隣接するプロセッサ セルの値が含まれます。つまり、反対側のセルの値がキャッシュされます。 他の結合されたパッチ フィールドは、ローカルおよび隣接セル値の補間値を値として持つ場合があります。 経験則として、セル値を変更するコードはすべて、たとえば、 勾配計算では、値の更新を実行するために境界条件を修正する呼び出しを行う必要があります (プロセッサ境界フィールドでのハロー スワップに相当します)。 ただし、「ローカル」操作の場合、たとえば 乗算では、境界条件に値のみがあり、セル値に依存しない場合、これがスキップされることがあります。 ほとんどの「通常の」境界条件はこのカテゴリに分類されます。&lt;br /&gt;
&lt;br /&gt;
結合境界条件の場合、プロセッサのパッチ フィールドにも適用されますが、たとえば、パッチ フィールドには適用されません。 環状、環状AMI のバリアント。 これにより、中間計算の値が一貫性制約に従わなくなります。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、制約パッチの値がいつでも最新であるように、ローカル操作の後の評価を強制しています。この選択はまだ調査中であり、将来更新される可能性があることに注意してください。&lt;br /&gt;
&lt;br /&gt;
=== patchField の整合性チェックの結合 ===&lt;br /&gt;
ビジュアルコードのチェックで、meshWaveメソッドとmeshWaveAddressingメソッドによって返される壁面距離フィールドが平行一貫していないことが確認されました。このようなエラーを発見しやすくするために、オプションで整合性チェックが追加されました：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
DebugSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary            1;&lt;br /&gt;
    volVectorField::Boundary            1;&lt;br /&gt;
    volSphericalTensorField::Boundary   1;&lt;br /&gt;
    volSymmTensorField::Boundary        1;&lt;br /&gt;
    volTensorField::Boundary            1;&lt;br /&gt;
&lt;br /&gt;
    areaScalarField::Boundary           1;&lt;br /&gt;
    areaVectorField::Boundary           1;&lt;br /&gt;
    areaSphericalTensorField::Boundary  1;&lt;br /&gt;
    areaSymmTensorField::Boundary       1;&lt;br /&gt;
    areaTensorField::Boundary           1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;1 を指定するとチェックが有効になり、チェックに失敗すると FatalError が発生する。特に FOAM_ABORT と組み合わせることで、スタックトレースを生成することができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
FOAM_ABORT=true mpirun -np 2 simpleFoam -parallel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;デバッグ・スイッチはビットマップとして解釈される：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!bit&lt;br /&gt;
!value(2^bit)&lt;br /&gt;
!effect&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|ローカル操作ごとにチェックを加える&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|プリントの入力と終了をチェックする&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|4&lt;br /&gt;
|fatalErrorの代わりにwarning&lt;br /&gt;
|}&lt;br /&gt;
比較の許容誤差はデフォルトで0に設定されている。プロセッサのハロースワップでは、まったく同じ操作がまったく同じ順序で実行されるため、許容誤差の問題はありません。しかし、サイクリックやサイクリックAMIなどの「補間」結合境界条件では、ローカル演算（定数による乗算など）が補間後に実行されるため、若干異なる切り捨て誤差が発生します。この場合、許容誤差をオーバーライドすることができます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    volScalarField::Boundary::tolerance           1e-10;&lt;br /&gt;
    // .. and similar for all the other field types ..&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 下位互換性 ====&lt;br /&gt;
新しい整合性操作は、周期的または周期的AMI境界条件、または結合境界条件を使用する非自明な乱流モデルを使用するケースの動作をわずかに変更します。&lt;br /&gt;
&lt;br /&gt;
オプションとして、etc/controlDictのlocalConsistency設定をオーバーライドすることで、この振る舞いを以前の（一貫性のない！）形に戻すことができる：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
OptimisationSwitches&lt;br /&gt;
{&lt;br /&gt;
    //- Enable enforced consistency of constraint bcs after 'local' operations.&lt;br /&gt;
    //  Default is on. Set to 0/false to revert to &amp;lt;v2306 behaviour&lt;br /&gt;
    localConsistency 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;簡単なテストはcyclicAMIパッチを使ったチュートリアル、例えばpipeCyclicチュートリアルです。上記のDebugSwitchでチェックを有効にすると問題なく動作しますが、localConsistencyフラグを無効にすると不整合が検出されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[0] --&amp;gt; FOAM FATAL ERROR: (openfoam-2302 patch=230110)&lt;br /&gt;
[0] Field dev(symm(grad(U))) is not evaluated? On patch side1 type cyclicAMI : average of field = ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Related issues&lt;br /&gt;
&lt;br /&gt;
* Issue 2783&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 628&lt;br /&gt;
&lt;br /&gt;
==== ノンブロッキング環状A(C)MI ====&lt;br /&gt;
cyclicAMI境界条件は、複数の隣接する面からの面積加重補間を実装します。これらの面はローカルであることも、リモートプロセッサに存在することもあり、並列通信を必要とします。&lt;br /&gt;
&lt;br /&gt;
以前のリリースでは、それぞれのcyclicAMIの評価または線形ソルバーの行列寄与（ローカルでない隣接面の場合）が、独自の通信セットをトリガーし、次のcyclicAMIまたはプロセッサパッチに進む前に、これらの終了を待っていました。このリリースでは、すべての送受信を開始するプロセッサパッチと同様の経路をたどり、ローカル値を更新するためにリモートデータを使用する「消費」フェーズがあります。典型的な境界条件の評価や線形ソルバーの更新は、次のような形になります：&lt;br /&gt;
&lt;br /&gt;
* すべての initEvaluate/initInterfaceMatrixUpdate を行う（結合境界のみ）。プロセッサ、cyclicA(C)MI の場合、これはノンブロッキングの送受信を開始する。&lt;br /&gt;
* すべての通信が終了するのを待つ（または、ポーリング（v2306 nPollProcInterfaces）を使用して以下と組み合わせる）。&lt;br /&gt;
* すべてのevaluate/updateInterfaceMatrixを行う。これは、受信したデータを使用して、行列解への寄与を計算します。&lt;br /&gt;
&lt;br /&gt;
cyclicA(C)MIからの通信をプロセッサの境界条件とまったく同じ方法で処理することで、ボトルネックが発生する可能性が低くなり、スケーリングが向上することが期待される。さらなる最適化として、ローカル送受信バッファは一度割り当てられ、再利用される。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 641&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
* any case with &amp;lt;code&amp;gt;cyclicAMI&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cyclicACMI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GAMG : プロセッサ・アグロメレーションにおけるcyclicAMIのサポート ====&lt;br /&gt;
GAMGソルバーは、ローカルアグロメレーションに加えて、プロセッサ間で行列を結合することができます（プロセッサアグロメレーション）。これは、コア数が多い場合に有益です：&lt;br /&gt;
&lt;br /&gt;
* 最も粗いレベルを解くコアの数を減らす - 世界的な削減のほとんどは、最も粗いレベルで起こる。&lt;br /&gt;
* は、スムージングやプリコンディショニングなど、すべての演算の暗黙性を高める。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、cyclicAMIやcyclicACMIなど、すべての連成境界条件のプロセッサアグロメレーションを可能にするようにフレームワークが拡張されました。&lt;br /&gt;
&lt;br /&gt;
テストとして、以下を比較した。&lt;br /&gt;
&lt;br /&gt;
* 40x10x1のブロック1つ、および&lt;br /&gt;
* 2つの20x10x1ブロックがcyclicAMIを使って結合されている。&lt;br /&gt;
&lt;br /&gt;
どちらのケースも4つに分解され、GAMGソルバーとmasterCoarsestプロセッサーのアグロメーターを併用することで、すべての行列がmaster(s)に結合された。&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
solvers&lt;br /&gt;
{&lt;br /&gt;
    p&lt;br /&gt;
    {&lt;br /&gt;
        solver                  GAMG;&lt;br /&gt;
        processorAgglomerator   masterCoarsest;&lt;br /&gt;
        ..&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* シングルブロック（つまり、cyclicAMIはなく、プロセッサーフェイスのみ）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells       nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max       avg     max&lt;br /&gt;
   -----  ------         ---     ---       ---     ---&lt;br /&gt;
       0       4         100     100       1.5       2&lt;br /&gt;
       1       4          50      50       1.5       2&lt;br /&gt;
       2       1         100     100         0       0&lt;br /&gt;
       3       1          48      48         0       0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;すべてのプロセッサ面が内部となるため、境界の数（nInterfaces）は0となる。&lt;br /&gt;
&lt;br /&gt;
* 2ブロックの場合（つまり、cyclicAMIとプロセッサフェイス）：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
                              nCells         nInterfaces&lt;br /&gt;
   Level  nProcs         avg     max         avg     max&lt;br /&gt;
   -----  ------         ---     ---         ---     ---&lt;br /&gt;
       0       4         100     100           3       3&lt;br /&gt;
       1       4          50      50           3       3&lt;br /&gt;
       2       1         100     100           2       2&lt;br /&gt;
       3       1          48      48           2       2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ここでは、2つのcyclicAMIのみが保存されるため、境界の数は3つから2つに減る。&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cyclicA(C)MI&amp;lt;/code&amp;gt; :&lt;br /&gt;
** すべての面がローカルになると、動作は非分散にリセットされる。つまり、操作は追加のコピーなしで、提供されたフィールドに直接適用される。&lt;br /&gt;
** 回転変換はまだサポートされていません。これは基本的な制限ではありませんが、変換を考慮するためにステンシルを追加で書き換える必要があります。&lt;br /&gt;
* processorCyclic : (オーナーセルと隣接セルが異なるプロセッサ上にあるサイクリック) はまだサポートされていない。これは通常のプロセッサ境界として扱われるため、変換は失われる。processorCyclicはdecomposeParDictでパッチ制約を使うことで回避できることに注意。&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
constraints&lt;br /&gt;
{&lt;br /&gt;
    patches&lt;br /&gt;
    {&lt;br /&gt;
        //- Keep owner and neighbour on same processor for faces in patches&lt;br /&gt;
        //  (only makes sense for cyclic patches and cyclicAMI)&lt;br /&gt;
        type    preservePatches;&lt;br /&gt;
        patches (cyclic);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* masterCoarsestのみがテストされているが、コードは他のどのプロセッサー凝集法もサポートするはずである。&lt;br /&gt;
* これまでの限られたテストでは、cyclicAMIのプロセッサー集積の利点は示され ていない。これは、ボトルネック、例えば、大域的削減の数や暗黙性が問題となる場合にのみ有効である。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 645&lt;br /&gt;
&lt;br /&gt;
=== redistributeParとファイルシステムの改良 ===&lt;br /&gt;
このリリースでは、照合ファイル・フォーマットの一般的なサポートが改善され、redistributeParユーティリティの調整も行われました。これらの変更により、照合ファイル形式は以前よりも幅広いワークフローで使用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
これらの変更に加え、分散ファイルシステムによるダイナミックコードの取り扱いが改善された。このようなタイプのシステムでは、動的にコンパイルされたライブラリも対応するサブランクに配布されるようになった。&lt;br /&gt;
&lt;br /&gt;
==== 照合されたインクルードファイルの取り扱いが改善された ====&lt;br /&gt;
以前のバージョンでは、&amp;quot;include &amp;quot;ファイルを照合と組み合わせて使用すると、ファイルの内容がランタイムで変更可能なものとして扱われる場合、非常に壊れやすいことがあった。今回、ウォッチド・ファイルの取り扱いが更新され、プロセッサー・ランク間の適切な対応が保証されるようになった。&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
=== New verification and validation public repository ===&lt;br /&gt;
OpenFOAMソフトウェアの検証と妥当性確認に関するコミュニティへの貢献をホストする新しいパブリックリポジトリが開設されました： OpenFOAM Verification and Validation Repository。&lt;br /&gt;
&lt;br /&gt;
このリポジトリの主な目的は、OpenFOAMコミュニティがソフトウェアの検証と検証の側面を共有、協力、強化するための一元化されたプラットフォームを提供することです。コミュニティの集合的な知識と専門知識を結集することにより、OpenFOAMシミュレーションの全体的な品質を向上させ、数値モデリングのベストプラクティスを推進することを目指しています。&lt;br /&gt;
&lt;br /&gt;
このリリースでは、Taylor-Green渦問題と円形Couette流れが組み込まれ、ケースのセットアップとドキュメンテーションのために提供されたテンプレートの実用的な応用が示されています。&lt;br /&gt;
&lt;br /&gt;
=== コンピレーション ===&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
OpenFOAMで使用されるC++標準は、GNUコンパイラでもc++14になりました。この変更により、推奨コンパイラの最小バージョンはgcc-7.5.0になりました。&lt;br /&gt;
&lt;br /&gt;
将来のコード移行を支援するため、「より厳しい」非推奨警告を有効にできるようになりました。これは WM_COMPILE_CONTROL 環境変数の +strict エントリでグローバルに、または wmake -strict で一度だけ有効にできます。これは主に開発者向けのオプションと考えることができます（多くの警告を生成する可能性があります）が、モジュールを書くときに便利で面白いかもしれません。&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
このバージョンには、MacOS上でのコンパイルと実行に関するいくつかの改良が含まれています。&lt;br /&gt;
&lt;br /&gt;
* AppleとARM64のFPE処理の改善（Guanyang Xue氏提供）&lt;br /&gt;
* rpathハンドリング&lt;br /&gt;
* xcrun サポート&lt;br /&gt;
&lt;br /&gt;
MacOS のコンパイルでは、rpath のサポートがデフォルトで有効になり、Apple SIP (System Integrity Protection) の影響に対する回避策がいくらか減って、これらのシステムでの OpenFOAM の実行が簡単になりました。WM_COMPILE_CONTROL環境変数に~rpathを追加することで、rpath処理を無効にできます。&lt;br /&gt;
&lt;br /&gt;
MacOSコンパイルでは、xcodeツール（xcrunなど）の使用もサポートするようになりました。これらはWM_COMPILE_CONTROL環境変数に+xcrunを追加することで有効になります。見つかると、これらのコンパイル・ルールが使用されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cc   := xcrun cc&lt;br /&gt;
CC   := xcrun c++ -std=c++14&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Clang ===&lt;br /&gt;
clangベースのコンパイルで、ldリンカを使用するように明示的に指定できるようになりました（注意：clangがldを使用するかlldを使用するかはインストールに依存します）。リンカの選択は環境変数 WM_COMPILE_CONTROL の対応するエントリで定義されます：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
- `+gold`    : use gold linker&lt;br /&gt;
- `+link-ld` : use   ld linker&lt;br /&gt;
- `+lld`     : use  lld linker&lt;br /&gt;
- `+mold`    : use mold linker&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenMP ===&lt;br /&gt;
openmp と no-openmp の扱いが強化された。&amp;quot;+openmp&amp;quot; (wmake -openmp) よりも &amp;quot;~openmp&amp;quot; (wmake -no-openmp) の方が優先されます。&lt;br /&gt;
&lt;br /&gt;
これにより、一般的に+openmpを指定する場合はrobusterとなり、特定のビルド・コンポーネント（スタティック・ライブラリやMPIブリッジ・コードなど）を指定する場合は~openmpとなる。&lt;br /&gt;
&lt;br /&gt;
=== Profiling ===&lt;br /&gt;
このバージョンには、Extraeプロファイリング用のフックが含まれています。デフォルトでは、フックは常にOpenFOAMと一緒にビルドされますが、LD_PRELOADによってExtraeが実際にロードされるまで休止しています。これにより、OpenFOAMをその目的専用に再コンパイルすることなく、Extraeのトレースが可能になります。&lt;br /&gt;
&lt;br /&gt;
Josep Pocurull（Barcelona Supercomputing Center）により提供され、exaFOAMプロジェクトの一部として使用されたコード。&lt;br /&gt;
&lt;br /&gt;
Source code&lt;br /&gt;
&lt;br /&gt;
* $FOAM_SRC/OpenFOAM/global/profiling/profilingTrigger.C&lt;br /&gt;
&lt;br /&gt;
Merge request&lt;br /&gt;
&lt;br /&gt;
* Merge request 652&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=847</id>
		<title>OpenFOAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=847"/>
		<updated>2023-12-24T07:26:43Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* リリースノート */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではOpenFOAMについてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
&lt;br /&gt;
'''OpenCFD'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2312リリースノート|OpenFOAM v2312 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2306リリースノート|OpenFOAM v2306 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2212 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2206 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2112 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2106 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/OF2012-3625e0d8029b40bda20fafe481dcbd95 OpenFOAM v2012 リリースノート]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2006 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1912 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1906 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1812 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1806 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The OpenFOAM Foundation'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 11 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 10 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 9|OpenFOAM 9 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 8 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v7 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v6.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 3.0.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 2.4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
==スターティングガイド==&lt;br /&gt;
[[OpenFOAMについて]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのインストール]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e63d4cf76ea2fea659b2 チュートリアルケースの実行]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/24b8491bf9776c3a27db OpenFOAMで入力できる項目の調べ方]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e4b13100e15508981a85 OpenFOAMの$FOAM変数]&lt;br /&gt;
&lt;br /&gt;
==困った時は？==&lt;br /&gt;
[https://qiita.com/mmer547/items/7c7c257dcaf2efbc730b OpenFOAM Google Groupに投稿する際に抑えるポイント]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/6b041536e2ac5dd17721 OpenFOAMで計算するネタがない時の探し方]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのエラーメッセージの対応]]&lt;br /&gt;
&lt;br /&gt;
==プリプロセス==&lt;br /&gt;
&lt;br /&gt;
===形状作成===&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%EF%BC%9A%E5%BD%A2%E7%8A%B6%E4%BD%9C%E6%88%90 形状作成ツールまとめ]&lt;br /&gt;
&lt;br /&gt;
===メッシュ===&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%E3%81%AE%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 OpenFOAMのメッシャーについて]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:blockMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:snappyHexMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:cfMesh]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/9fca38b8e8eadc869bb8 SalomeでOpenFOAMのメッシュを用意する方法]&lt;br /&gt;
&lt;br /&gt;
===境界条件===&lt;br /&gt;
[[境界条件]]&lt;br /&gt;
&lt;br /&gt;
==ソルバ==&lt;br /&gt;
[[simpleFoamについて]]&lt;br /&gt;
&lt;br /&gt;
[[ExecutionTimeとClockTimeについて]]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/SIMPLEC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%A8%88%E7%AE%97%E5%AE%9F%E8%A1%8C%EF%BC%88OpenFOAM3.0.1%EF%BC%89 SIMPLECを使用した計算実行（OpenFOAM3.0.1）]&lt;br /&gt;
&lt;br /&gt;
===並列計算の実行方法===&lt;br /&gt;
&lt;br /&gt;
[[decomposeParDictの中身]]&lt;br /&gt;
&lt;br /&gt;
===エラーメッセージ===&lt;br /&gt;
[[v1806のエラーメッセージ]]&lt;br /&gt;
&lt;br /&gt;
==ポストプロセス==&lt;br /&gt;
[[ログファイルから残差ログを抽出]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e463235ddb93f08db68a OpenFOAMのpostProcessについて]&lt;br /&gt;
&lt;br /&gt;
==チュートリアルケース==&lt;br /&gt;
[[チュートリアルケース|チュートリアルケース一覧]]&lt;br /&gt;
&lt;br /&gt;
==カスタマイズ==&lt;br /&gt;
[https://qiita.com/mmer547/items/2997bf8c71fe1e2423c9 OpenFOAM ソースコードの探し方]&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/foam-extend_4.0%E3%82%92Bash_on_Ubuntu_on_Windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB foam-extend 4.0をBash on Ubuntu on Windowsにインストール]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/ESI_Windows%E7%89%88OpenFOAM%E3%81%AE%E5%B0%8E%E5%85%A5 ESI Windows版OpenFOAMの導入]&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/OpenCAE/Supercomputer-OpenFOAM-Training/-/wikis/home スーパーコンピュータOpenFOAM講習会]&lt;br /&gt;
&lt;br /&gt;
== 関連サービス ==&lt;br /&gt;
=== プリプロセス ===&lt;br /&gt;
[https://www.xsim.info/products/products.html XSim.Work]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDEXCS-OpenFOAM%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E9%87%8E%E6%9D%91-%E6%82%A6%E6%B2%BB/dp/4621306138/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-5 オープンCAEのためのDEXCS for OpenFOAMハンドブック]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E7%AC%AC2%E7%89%88-%E4%B8%80%E8%88%AC%E7%A4%BE%E5%9B%A3%E6%B3%95%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691025/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-1 OpenFOAMによる熱移動と流れの数値解析(第2版) ]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E5%B7%9D%E7%95%91-%E7%9C%9F%E4%B8%80/dp/4844379526/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-6　OpenFOAMの歩き方]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%83%A9%E3%83%90%E3%82%A4%E3%83%88/dp/4627691610/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-2 OpenFOAMライブラリリファレンス]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Tomislav-Mari%C2%B4c/dp/4627670915/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-3 OpenFOAMプログラミング]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691017/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-4 OpenFOAMによる熱移動と流れの数値解析]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E7%B3%BB%E8%AD%9C&amp;diff=846</id>
		<title>オープンCAEの系譜</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E7%B3%BB%E8%AD%9C&amp;diff=846"/>
		<updated>2023-12-09T03:20:54Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;オープンCAEの歴史をまとめていきたいと思います。適当に追記願います。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+オープンCAEの系譜&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;|年月&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;|起こった出来事・イベント&lt;br /&gt;
|-&lt;br /&gt;
|2023/12&lt;br /&gt;
|オープンCAE学会がオープンCAEシンポジウム2023（横浜）開催&lt;br /&gt;
|-&lt;br /&gt;
|2023/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/09&lt;br /&gt;
|オープンCAE学会がOpenFOAM GPUトレーニング2023（オンライン）を開催&lt;br /&gt;
オープンCAE学会がオープンCAEサマースクール2023(9/1~3、逗子)を開催&lt;br /&gt;
|-&lt;br /&gt;
|2023/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/07&lt;br /&gt;
|オープンCAE学会がオープンCAE講習会(オンライン)を開催&lt;br /&gt;
|-&lt;br /&gt;
|2023/06&lt;br /&gt;
|オープンCAE学会がオープンCAE講習会(オンライン)を開催&lt;br /&gt;
|-&lt;br /&gt;
|2023/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/09&lt;br /&gt;
|オープンCAE学会がオープンCAEシンポジウム2022（岡山理科大学）を開催&lt;br /&gt;
田辺賞該当者なし&lt;br /&gt;
|-&lt;br /&gt;
|2022/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/12&lt;br /&gt;
|オープンCAE学会がオープンCAEシンポジウム2021（オンライン）を開催&lt;br /&gt;
田辺賞該当者なし&lt;br /&gt;
|-&lt;br /&gt;
|2021/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/12&lt;br /&gt;
|オープンCAE学会がオープンCAE・FrontISTR合同シンポジウム2020（オンライン）を開催&lt;br /&gt;
田辺賞該当者なし&lt;br /&gt;
|-&lt;br /&gt;
|2020/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/12&lt;br /&gt;
|オープンCAE学会がオープンCAEシンポジウム2019（大阪）を開催&amp;lt;br/&amp;gt;野村さん田辺賞受賞&lt;br /&gt;
|-&lt;br /&gt;
|2019/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/9&lt;br /&gt;
|オープンCAE学会がオープンCAEサマースクール2019を開催&lt;br /&gt;
|-&lt;br /&gt;
|2019/8&lt;br /&gt;
|2019/8/1　はじめての「SonyNNC」 (I・O BOOKS)&lt;br /&gt;
|-&lt;br /&gt;
|2019/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/6&lt;br /&gt;
|オープンCAE学会が2019年6月21日オープンCAEトレーニング（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2019/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/3&lt;br /&gt;
|オープンCAE学会が2019年3月29日オープンCAE講習会（富山）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2019/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/12&lt;br /&gt;
|オープンCAE学会がオープンCAEシンポジウム2018（川崎）を開催&amp;lt;br/&amp;gt;&lt;br /&gt;
2018/12/1　基礎からのFreeCAD (I・O BOOKS) 増補改訂版 発売&lt;br /&gt;
|-&lt;br /&gt;
|2018/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/9&lt;br /&gt;
|2018/9/1　「PrePoMax」ではじめる実践構造解析 (I・O BOOKS) &lt;br /&gt;
|-&lt;br /&gt;
|2018/8&lt;br /&gt;
|オープンCAE学会がオープンCAEサマースクール2018を開催&lt;br /&gt;
|-&lt;br /&gt;
|2018/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/6&lt;br /&gt;
|オープンCAE学会が2018年6月22日オープンCAEトレーニング（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2018/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/12&lt;br /&gt;
|オープンCAE学会がオープンCAEシンポジウム2017（名古屋）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2017/11&lt;br /&gt;
|（2017/11/25～26）オープンCAEもくもく合宿開催&lt;br /&gt;
|-&lt;br /&gt;
|2017/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/9&lt;br /&gt;
|オープンCAE学会が2017年9月8日(金)～10日(日)オープンCAEサマースクール2017を開催&lt;br /&gt;
|-&lt;br /&gt;
|2017/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/6&lt;br /&gt;
|オープンCAE学会が2017年6月23日(金): 2017年6月23日オープンCAE講習会（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2017/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/4&lt;br /&gt;
|2017/4/3　オープンCAEで学ぶ構造解析入門: ―DEXCS-WinXistrの活用―　発売&lt;br /&gt;
|-&lt;br /&gt;
|2017/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/11&lt;br /&gt;
|2016年11月24日（木）〜26日(土）：オープンCAEシンポジウム2016（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2016/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/8&lt;br /&gt;
|2016年8月26日(金)～28日(日)オープンCAEサマースクール2016&lt;br /&gt;
|-&lt;br /&gt;
|2016/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/6&lt;br /&gt;
|2016年6月24日(金): 2016年6月24日オープンCAE講習会（東京）&amp;lt;br/&amp;gt;2016/6/17　OpenFOAMによる熱移動と流れの数値解析　発売&lt;br /&gt;
|-&lt;br /&gt;
|2016/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/3&lt;br /&gt;
|2016年3月11日(金): 2016年3月11日オープンCAE講習会（長野）&lt;br /&gt;
|-&lt;br /&gt;
|2016/2&lt;br /&gt;
|2016/2　オープンCAE「Salome‐Meca」構造解析―「弾塑性」「接触」解析編 (I・O BOOKS)　発売&lt;br /&gt;
|-&lt;br /&gt;
|2016/1&lt;br /&gt;
|2016/1　基礎からのFreeCAD (I・O BOOKS) 　発売&lt;br /&gt;
|-&lt;br /&gt;
|2015/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/11&lt;br /&gt;
|2015年11月27日（金）～28日（土） : オープンCAEシンポジウム2015（富山）&lt;br /&gt;
|-&lt;br /&gt;
|2015/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/8&lt;br /&gt;
|2015年8月28日(金)～30日(日)オープンCAEサマースクール2015&lt;br /&gt;
|-&lt;br /&gt;
|2015/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/5&lt;br /&gt;
|2015年5月30日(土): 平成27年度定時社員総会・オープンCAE講習会 (東京)&lt;br /&gt;
|-&lt;br /&gt;
|2015/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/3&lt;br /&gt;
|2015年3月21日(土): 2015年3月21日オープンCAE講習会（岡山）&lt;br /&gt;
|-&lt;br /&gt;
|2015/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/11&lt;br /&gt;
|2014年11月13日（木）～14日（金） : オープンCAEシンポジウム2014（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2014/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/9&lt;br /&gt;
|2014/9/1　オープンCAE「Salome‐Meca」構造解析―「固有値」「熱伝導」解析編 (I・O BOOKS) 発売&lt;br /&gt;
|-&lt;br /&gt;
|2014/8&lt;br /&gt;
|2014年8月29日(金)～31日(日)オープンCAEサマースクール2014&lt;br /&gt;
|-&lt;br /&gt;
|2014/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/6&lt;br /&gt;
|2014年6月21日(土): 平成26年度定時社員総会・オープンCAE講習会 (東京) &lt;br /&gt;
|-&lt;br /&gt;
|2014/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/2&lt;br /&gt;
|2014/2/1　オープンCAE「Salome‐Meca」ではじめる構造解析 (I・O BOOKS) 発売&lt;br /&gt;
|-&lt;br /&gt;
|2014/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/12&lt;br /&gt;
|2013年12月5日（木）～6日（金） : オープンCAEシンポジウム2013（大阪）&lt;br /&gt;
|-&lt;br /&gt;
|2013/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/9&lt;br /&gt;
|2013年9月28日(土): 2013年9月28日OpenFOAM臨時講習会 (東京)&amp;lt;br/&amp;gt;2013年9月6日(金)～8日(日)オープンCAEサマースクール2013&lt;br /&gt;
|-&lt;br /&gt;
|2013/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/6&lt;br /&gt;
|2013年6月20日（木）～21日（金） : オープンCAEワークショップ2013（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2013/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/1&lt;br /&gt;
|オープンCAE勉強会＠関西、幹事が2代目に交代&amp;lt;br/&amp;gt;OpenFOAM勉強会 for beginner @関西がオープンCAE勉強会@関西に名称変更&lt;br /&gt;
|-&lt;br /&gt;
|2012/12&lt;br /&gt;
|2012年12月14 日（金）～ 15日（土） : オープンCAEシンポジウム2012（岐阜）&lt;br /&gt;
|-&lt;br /&gt;
|2012/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/7&lt;br /&gt;
|2012年7月21日(土) 第1回オープンCAE勉強会＠広島開催&lt;br /&gt;
|-&lt;br /&gt;
|2012/6&lt;br /&gt;
|2012年6月8日（金）～9日（土） : オープンCAEワークショップ2012（東京)&lt;br /&gt;
|-&lt;br /&gt;
|2012/5&lt;br /&gt;
|2012/05/19　オープンCAE勉強会＠富山（第1回）開催&lt;br /&gt;
|-&lt;br /&gt;
|2012/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/12&lt;br /&gt;
|2011年12月1日（木）～2日（金）: オープンCAEシンポジウム2011 （東京）&lt;br /&gt;
|-&lt;br /&gt;
|2011/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/6&lt;br /&gt;
|オープンCAE学会が2011年6月26日（日）: オープンCAEワークショップ2011（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2011/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/2&lt;br /&gt;
|2011/2/1　はじめてのオープンCAE (I・O BOOKS)発売 &lt;br /&gt;
|-&lt;br /&gt;
|2011/1&lt;br /&gt;
|平成２３年１月２９日第１回オープンＣＡＥ勉強会【岐阜】開催&lt;br /&gt;
|-&lt;br /&gt;
|2010/12&lt;br /&gt;
|(2010/12/18)第１回OpenFOAM勉強会 for beginner @関西開催&amp;lt;br/&amp;gt;オープンCAE学会が2010年12月5日（日）: オープンCAEシンポジウム2010（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2010/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/8&lt;br /&gt;
|2010年8月8日（日）: 平成22年度オープンCAE夏季講習会（岐阜）&amp;lt;br/&amp;gt;2010年8月6日（金）: 平成22年度オープンCAE夏季臨時講習会（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2010/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/6&lt;br /&gt;
|2010/06/27 OpenFOAM勉強会 for beginner [第1回]開催&lt;br /&gt;
|-&lt;br /&gt;
|2010/5&lt;br /&gt;
|オープンCAE学会が2010年5月14日（金）: 平成22年度オープンCAEワークショップ・定時社員総会（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2010/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/11&lt;br /&gt;
|オープンCAE学会が2009年11月7日（土）: 第二回オープンソースCAEワークショップ（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2009/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/5&lt;br /&gt;
|オープンCAE学会が2009年5月13日（水）: 第一回OpenFOAM講習会を開催&lt;br /&gt;
|-&lt;br /&gt;
|2009/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/11&lt;br /&gt;
|オープンCAE学会が2008年11月13日（木）: 第一回オープンソースCAEワークショップ（東京）を開催&lt;br /&gt;
|-&lt;br /&gt;
|2008/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/1&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E7%B3%BB%E8%AD%9C&amp;diff=845</id>
		<title>オープンCAEの系譜</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E7%B3%BB%E8%AD%9C&amp;diff=845"/>
		<updated>2023-12-09T03:11:07Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;オープンCAEの歴史をまとめていきたいと思います。適当に追記願います。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+オープンCAEの系譜&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;|年月&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;|起こった出来事・イベント&lt;br /&gt;
|-&lt;br /&gt;
|2023/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2023/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2022/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2021/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2020/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/12&lt;br /&gt;
|2019年12月19日（木）〜21日（土）：オープンCAEシンポジウム2019（大阪）&amp;lt;br/&amp;gt;野村さん田辺賞受賞&lt;br /&gt;
|-&lt;br /&gt;
|2019/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/9&lt;br /&gt;
|2019年9月6日(金)～9月8日(日)オープンCAEサマースクール2019&lt;br /&gt;
|-&lt;br /&gt;
|2019/8&lt;br /&gt;
|2019/8/1　はじめての「SonyNNC」 (I・O BOOKS)&lt;br /&gt;
|-&lt;br /&gt;
|2019/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/6&lt;br /&gt;
|2019年6月21日(金): 2019年6月21日オープンCAEトレーニング（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2019/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/3&lt;br /&gt;
|2019年3月29日(金)-30日(土): 2019年3月29日オープンCAE講習会（富山）&lt;br /&gt;
|-&lt;br /&gt;
|2019/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2019/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/12&lt;br /&gt;
|2018年12月6日（木）〜8日（土）：オープンCAEシンポジウム2018（川崎）&amp;lt;br/&amp;gt;&lt;br /&gt;
2018/12/1　基礎からのFreeCAD (I・O BOOKS) 増補改訂版 発売&lt;br /&gt;
|-&lt;br /&gt;
|2018/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/9&lt;br /&gt;
|2018/9/1　「PrePoMax」ではじめる実践構造解析 (I・O BOOKS) &lt;br /&gt;
|-&lt;br /&gt;
|2018/8&lt;br /&gt;
|2018年8月31日(金)～9月2日(日)オープンCAEサマースクール2018&lt;br /&gt;
|-&lt;br /&gt;
|2018/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/6&lt;br /&gt;
|2018年6月22日(金): 2018年6月22日オープンCAEトレーニング（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2018/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2018/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/12&lt;br /&gt;
|2017年12月7日（木）〜9日（土）: オープンCAEシンポジウム2017（名古屋）&lt;br /&gt;
|-&lt;br /&gt;
|2017/11&lt;br /&gt;
|（2017/11/25～26）オープンCAEもくもく合宿開催&lt;br /&gt;
|-&lt;br /&gt;
|2017/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/9&lt;br /&gt;
|2017年9月8日(金)～10日(日)オープンCAEサマースクール2017&lt;br /&gt;
|-&lt;br /&gt;
|2017/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/6&lt;br /&gt;
|2017年6月23日(金): 2017年6月23日オープンCAE講習会（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2017/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/4&lt;br /&gt;
|2017/4/3　オープンCAEで学ぶ構造解析入門: ―DEXCS-WinXistrの活用―　発売&lt;br /&gt;
|-&lt;br /&gt;
|2017/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2017/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/11&lt;br /&gt;
|2016年11月24日（木）〜26日(土）：オープンCAEシンポジウム2016（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2016/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/8&lt;br /&gt;
|2016年8月26日(金)～28日(日)オープンCAEサマースクール2016&lt;br /&gt;
|-&lt;br /&gt;
|2016/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/6&lt;br /&gt;
|2016年6月24日(金): 2016年6月24日オープンCAE講習会（東京）&amp;lt;br/&amp;gt;2016/6/17　OpenFOAMによる熱移動と流れの数値解析　発売&lt;br /&gt;
|-&lt;br /&gt;
|2016/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2016/3&lt;br /&gt;
|2016年3月11日(金): 2016年3月11日オープンCAE講習会（長野）&lt;br /&gt;
|-&lt;br /&gt;
|2016/2&lt;br /&gt;
|2016/2　オープンCAE「Salome‐Meca」構造解析―「弾塑性」「接触」解析編 (I・O BOOKS)　発売&lt;br /&gt;
|-&lt;br /&gt;
|2016/1&lt;br /&gt;
|2016/1　基礎からのFreeCAD (I・O BOOKS) 　発売&lt;br /&gt;
|-&lt;br /&gt;
|2015/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/11&lt;br /&gt;
|2015年11月27日（金）～28日（土） : オープンCAEシンポジウム2015（富山）&lt;br /&gt;
|-&lt;br /&gt;
|2015/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/8&lt;br /&gt;
|2015年8月28日(金)～30日(日)オープンCAEサマースクール2015&lt;br /&gt;
|-&lt;br /&gt;
|2015/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/5&lt;br /&gt;
|2015年5月30日(土): 平成27年度定時社員総会・オープンCAE講習会 (東京)&lt;br /&gt;
|-&lt;br /&gt;
|2015/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/3&lt;br /&gt;
|2015年3月21日(土): 2015年3月21日オープンCAE講習会（岡山）&lt;br /&gt;
|-&lt;br /&gt;
|2015/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2015/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/11&lt;br /&gt;
|2014年11月13日（木）～14日（金） : オープンCAEシンポジウム2014（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2014/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/9&lt;br /&gt;
|2014/9/1　オープンCAE「Salome‐Meca」構造解析―「固有値」「熱伝導」解析編 (I・O BOOKS) 発売&lt;br /&gt;
|-&lt;br /&gt;
|2014/8&lt;br /&gt;
|2014年8月29日(金)～31日(日)オープンCAEサマースクール2014&lt;br /&gt;
|-&lt;br /&gt;
|2014/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/6&lt;br /&gt;
|2014年6月21日(土): 平成26年度定時社員総会・オープンCAE講習会 (東京) &lt;br /&gt;
|-&lt;br /&gt;
|2014/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2014/2&lt;br /&gt;
|2014/2/1　オープンCAE「Salome‐Meca」ではじめる構造解析 (I・O BOOKS) 発売&lt;br /&gt;
|-&lt;br /&gt;
|2014/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/12&lt;br /&gt;
|2013年12月5日（木）～6日（金） : オープンCAEシンポジウム2013（大阪）&lt;br /&gt;
|-&lt;br /&gt;
|2013/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/9&lt;br /&gt;
|2013年9月28日(土): 2013年9月28日OpenFOAM臨時講習会 (東京)&amp;lt;br/&amp;gt;2013年9月6日(金)～8日(日)オープンCAEサマースクール2013&lt;br /&gt;
|-&lt;br /&gt;
|2013/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/6&lt;br /&gt;
|2013年6月20日（木）～21日（金） : オープンCAEワークショップ2013（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2013/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2013/1&lt;br /&gt;
|オープンCAE勉強会＠関西、幹事が2代目に交代&amp;lt;br/&amp;gt;OpenFOAM勉強会 for beginner @関西がオープンCAE勉強会@関西に名称変更&lt;br /&gt;
|-&lt;br /&gt;
|2012/12&lt;br /&gt;
|2012年12月14 日（金）～ 15日（土） : オープンCAEシンポジウム2012（岐阜）&lt;br /&gt;
|-&lt;br /&gt;
|2012/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/7&lt;br /&gt;
|2012年7月21日(土) 第1回オープンCAE勉強会＠広島開催&lt;br /&gt;
|-&lt;br /&gt;
|2012/6&lt;br /&gt;
|2012年6月8日（金）～9日（土） : オープンCAEワークショップ2012（東京)&lt;br /&gt;
|-&lt;br /&gt;
|2012/5&lt;br /&gt;
|2012/05/19　オープンCAE勉強会＠富山（第1回）開催&lt;br /&gt;
|-&lt;br /&gt;
|2012/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2012/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/12&lt;br /&gt;
|2011年12月1日（木）～2日（金）: オープンCAEシンポジウム2011 （東京）&lt;br /&gt;
|-&lt;br /&gt;
|2011/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/6&lt;br /&gt;
|2011年6月26日（日）: オープンCAEワークショップ2011（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2011/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2011/2&lt;br /&gt;
|2011/2/1　はじめてのオープンCAE (I・O BOOKS)発売 &lt;br /&gt;
|-&lt;br /&gt;
|2011/1&lt;br /&gt;
|平成２３年１月２９日第１回オープンＣＡＥ勉強会【岐阜】開催&lt;br /&gt;
|-&lt;br /&gt;
|2010/12&lt;br /&gt;
|(2010/12/18)第１回OpenFOAM勉強会 for beginner @関西開催&amp;lt;br/&amp;gt;2010年12月5日（日）: オープンCAEシンポジウム2010（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2010/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/8&lt;br /&gt;
|2010年8月8日（日）: 平成22年度オープンCAE夏季講習会（岐阜）&amp;lt;br/&amp;gt;2010年8月6日（金）: 平成22年度オープンCAE夏季臨時講習会（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2010/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/6&lt;br /&gt;
|2010/06/27 OpenFOAM勉強会 for beginner [第1回]開催&lt;br /&gt;
|-&lt;br /&gt;
|2010/5&lt;br /&gt;
|2010年5月14日（金）: 平成22年度オープンCAEワークショップ・定時社員総会（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2010/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2010/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/11&lt;br /&gt;
|2009年11月7日（土）: 第二回オープンソースCAEワークショップ（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2009/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/5&lt;br /&gt;
|2009年5月13日（水）: 第一回OpenFOAM講習会&lt;br /&gt;
|-&lt;br /&gt;
|2009/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2009/1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/11&lt;br /&gt;
|2008年11月13日（木）: 第一回オープンソースCAEワークショップ（東京）&lt;br /&gt;
|-&lt;br /&gt;
|2008/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2008/1&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=Visual_Studio_Code_Extension%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&amp;diff=844</id>
		<title>Visual Studio Code Extensionについて</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=Visual_Studio_Code_Extension%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&amp;diff=844"/>
		<updated>2023-11-30T12:47:49Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「OpenRadioss-helperという名前で公開されているExtensionがある。  機能としてはインプットカードのハイライト表示と入力補助になる。   https://marketplace.visualstudio.com/items?itemName=mmer547.openradioss-helper」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenRadioss-helperという名前で公開されているExtensionがある。&lt;br /&gt;
&lt;br /&gt;
機能としてはインプットカードのハイライト表示と入力補助になる。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://marketplace.visualstudio.com/items?itemName=mmer547.openradioss-helper&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenRadioss&amp;diff=843</id>
		<title>OpenRadioss</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenRadioss&amp;diff=843"/>
		<updated>2023-11-30T12:44:56Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* スターティングガイド */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=wikitable style=&amp;quot;font-family:serif;background-color:#f5f6ff ; margin:1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Altair Radiossは、動的負荷がかかる非線形性の高い問題に対する製品性能の評価と最適化を支援する、業界で実績のある解析ソリューションです。30年以上にわたり、Altair Radiossはデジタル設計プロセスの合理化と最適化、費用のかかる物理テストの迅速かつ効率的なシミュレーションへの置き換え、設計最適化の反復のスピードアップを実現し、ユーザーと組織が製品品質の向上、コスト削減、開発サイクルの短縮を達成できるよう支援しています。(公式サイト&amp;lt;ref&amp;gt;https://www.openradioss.org/&amp;lt;/ref&amp;gt;より)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== スターティングガイド ==&lt;br /&gt;
&lt;br /&gt;
[[OpenRadiossのインストール]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRadiossの計算実行]]&lt;br /&gt;
&lt;br /&gt;
[[計算結果のVTK変換]]&lt;br /&gt;
&lt;br /&gt;
[[LS-Dynaフォーマットについて]]&lt;br /&gt;
&lt;br /&gt;
[[Radiossインプットカードについて]]&lt;br /&gt;
&lt;br /&gt;
[[Visual Studio Code Extensionについて]]&lt;br /&gt;
&lt;br /&gt;
== TIPS ==&lt;br /&gt;
[https://hammamania.tech/c7fbed6839c14e66ba004eae97bfe58c ParaViewでPartごとに結果を表示する方法]&lt;br /&gt;
&lt;br /&gt;
== 公式Example ==&lt;br /&gt;
&lt;br /&gt;
=== in OpenRadioss Block Format ===&lt;br /&gt;
&lt;br /&gt;
[[Bird Strike on Windshield]]&lt;br /&gt;
&lt;br /&gt;
[[INIVOL and Fluid Structure Interaction (Drop Container)]]&lt;br /&gt;
&lt;br /&gt;
[[Fan Blade Rotation Initialization and Impact]]&lt;br /&gt;
&lt;br /&gt;
[[Blow molding with Advanced Mass Scaling (AMS).]]&lt;br /&gt;
&lt;br /&gt;
[[Ice Cube]]&lt;br /&gt;
&lt;br /&gt;
[[Spring-back]]&lt;br /&gt;
&lt;br /&gt;
[[Yaris impact on pole at 40km/h]]&lt;br /&gt;
&lt;br /&gt;
[[Bumper Beam]]&lt;br /&gt;
&lt;br /&gt;
[[Tensile Test (Radioss Block Format)]]&lt;br /&gt;
&lt;br /&gt;
[[Tensile Test Example Tutorial Using Gmsh]]&lt;br /&gt;
&lt;br /&gt;
[[Football (Soccer) Shots]]&lt;br /&gt;
&lt;br /&gt;
[[Cell Phone Drop Test]]&lt;br /&gt;
&lt;br /&gt;
[[Rubber ‘O-Ring’ Seal Installation]]&lt;br /&gt;
&lt;br /&gt;
=== in LS-DYNA key format ===&lt;br /&gt;
&lt;br /&gt;
[[Example LS-DYNA Format Models]]&lt;br /&gt;
&lt;br /&gt;
[[Camry Impact Model in LS-DYNA format]]&lt;br /&gt;
&lt;br /&gt;
[[Tensile Test Model in LS-DYNA format ]]&lt;br /&gt;
&lt;br /&gt;
== ドキュメント ==&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022.1/hwsolvers/rad/index.htm Radioss online help]&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022/hwsolvers/ja_jp/rad/index.htm Radioss 2022 日本語ヘルプ（オンライン）]&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022/simulation/pdfs/radopen/AltairRadioss_2022_ReferenceGuide.pdf Altair Radioss 2022 Reference Guide]&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022/hwsolvers/ja_jp/pdf/AltairRadioss_2022_Reference.pdf Radioss 2022 日本語 リファレンスガイド]&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022/simulation/pdfs/radopen/AltairRadioss_2022_UserGuide.pdf Altair Radioss 2022 User Guide]&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022/hwsolvers/ja_jp/pdf/AltairRadioss_2022_UserGuide.pdf Radioss 2022 日本語 ユーザーガイド]&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022/simulation/pdfs/radopen/AltairRadioss_2022_TheoryManual.pdf Altair Radioss 2022 Theory Manual]&lt;br /&gt;
&lt;br /&gt;
[https://2022.help.altair.com/2022/hwsolvers/ja_jp/pdf/AltairRadioss_2022_Example.pdf Radioss 2022 日本語例題集]&lt;br /&gt;
&lt;br /&gt;
== その他参考になるドキュメント ==&lt;br /&gt;
&lt;br /&gt;
[https://www.dynasupport.com/manuals LS-DYNA manuals]&lt;br /&gt;
&lt;br /&gt;
[https://www.dynaexamples.com LS-DYNA Examples]&lt;br /&gt;
&lt;br /&gt;
[https://www.lstc.com/lspp/ LS-PrePost Online Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://groups.google.com/group/ls-prepost LS-PrePost User Group]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenRadioss%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=842</id>
		<title>OpenRadiossのインストール</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenRadioss%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=842"/>
		<updated>2023-11-30T10:36:14Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WindowsでLinux版を使用する場合はWSL&amp;lt;ref&amp;gt;https://learn.microsoft.com/ja-jp/windows/wsl/install&amp;lt;/ref&amp;gt;を使用する。&lt;br /&gt;
== Linuxでバイナリ版のインストール人 ==&lt;br /&gt;
&lt;br /&gt;
Ubuntuでのみ確認済み。&lt;br /&gt;
&lt;br /&gt;
Githubのページから～linux64.zipをダウンロードして、解凍する。&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OpenRadioss/OpenRadioss/releases OpenRadioss Github]&lt;br /&gt;
&lt;br /&gt;
/optなどに解凍する。&lt;br /&gt;
&lt;br /&gt;
== Windowsでバイナリ版のインストールをしたい人 ==&lt;br /&gt;
&lt;br /&gt;
Githubのページから～Win64.zipをダウンロードして、任意の場所に解凍する。&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OpenRadioss/OpenRadioss/releases OpenRadioss Github]&lt;br /&gt;
&lt;br /&gt;
並列計算を実行する場合は、Intel MPI Libraryを次のリンクから入手してインストールする。&lt;br /&gt;
&lt;br /&gt;
[https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#mpi Intel MPI Library]&lt;br /&gt;
&lt;br /&gt;
== ソースコードコンパイルしたい人 ==&lt;br /&gt;
下記公式ドキュメントを見ながら実行するとコンパイルできる。&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OpenRadioss/OpenRadioss/blob/main/HOWTO.md How to Build OpenRadioss]&lt;br /&gt;
&lt;br /&gt;
[https://getwelsim.medium.com/explore-openradioss-the-worlds-first-enterprise-grade-open-source-explicit-dynamics-solver-i-b4c7931a48ed Explore the enterprise-grade open-source solver OpenRadioss I : build in Linux]&lt;br /&gt;
&lt;br /&gt;
== Apple Silicon Macにインストールしたい人（非公式） ==&lt;br /&gt;
Apptainer imageでの導入について書かれた記事あり。&lt;br /&gt;
&lt;br /&gt;
https://www.epeters.io/containerized-openradioss-macos&lt;br /&gt;
&lt;br /&gt;
==注記==&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=841</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=841"/>
		<updated>2023-11-29T06:10:22Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* その他 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;オープンCAEWikiにようこそ！&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンソースCAEソフトウェアについての情報まとめています。&lt;br /&gt;
クローズドなwikiではありません。&lt;br /&gt;
ご編集されたい方はアカウントをご登録ください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なお、内容はオープンCAEに関連するものでお願いします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== オープンCAEの前提知識 ===&lt;br /&gt;
&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[解析用語]]&lt;br /&gt;
&lt;br /&gt;
=== CAD ===&lt;br /&gt;
[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
=== メッシャー ===&lt;br /&gt;
[[Netgen]]&lt;br /&gt;
&lt;br /&gt;
[[Gmsh]]&lt;br /&gt;
&lt;br /&gt;
=== 流体 ===&lt;br /&gt;
[[OpenFOAM]]&lt;br /&gt;
&lt;br /&gt;
[[SU2]]&lt;br /&gt;
&lt;br /&gt;
=== 構造 ===&lt;br /&gt;
[[FrontISTR]]&lt;br /&gt;
&lt;br /&gt;
[[Salome-Meca]]&lt;br /&gt;
&lt;br /&gt;
[[CalculiX]]&lt;br /&gt;
&lt;br /&gt;
[[PrePoMax]]&lt;br /&gt;
&lt;br /&gt;
[[StressRefine]]&lt;br /&gt;
&lt;br /&gt;
[[FEBio]]&lt;br /&gt;
&lt;br /&gt;
[[PlantFEM]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRadioss]]&lt;br /&gt;
&lt;br /&gt;
=== MBD(モデルベースデザイン) ===&lt;br /&gt;
[[OpenModelica]]&lt;br /&gt;
&lt;br /&gt;
=== 機構解析 ===&lt;br /&gt;
&lt;br /&gt;
[[MBDyn]]&lt;br /&gt;
&lt;br /&gt;
[[EXUDYN]]&lt;br /&gt;
&lt;br /&gt;
=== 有限要素法ライブラリ・ツールセット ===&lt;br /&gt;
&lt;br /&gt;
[[GetFEM]]&lt;br /&gt;
&lt;br /&gt;
[[DelFEM2]]&lt;br /&gt;
&lt;br /&gt;
[[sparselizard]]&lt;br /&gt;
&lt;br /&gt;
[[ivyFEM]]&lt;br /&gt;
&lt;br /&gt;
=== マルチフィジックス ===&lt;br /&gt;
[[Elmer]]&lt;br /&gt;
&lt;br /&gt;
=== 粒子法 ===&lt;br /&gt;
[[DualSPHygics]]&lt;br /&gt;
&lt;br /&gt;
[[OpenMPS]]&lt;br /&gt;
&lt;br /&gt;
=== 格子ボルツマン法 ===&lt;br /&gt;
[[Palabos]]&lt;br /&gt;
&lt;br /&gt;
[[waLBerla]]&lt;br /&gt;
&lt;br /&gt;
=== 偏微分方程式ソルバ ===&lt;br /&gt;
&lt;br /&gt;
[[FEniCSx]]&lt;br /&gt;
&lt;br /&gt;
=== 可視化 ===&lt;br /&gt;
[[Paraview]]&lt;br /&gt;
&lt;br /&gt;
[[Mayavi]]&lt;br /&gt;
&lt;br /&gt;
=== 最適化 ===&lt;br /&gt;
[[OpenMDAO]]&lt;br /&gt;
&lt;br /&gt;
[[OpenDA]]&lt;br /&gt;
&lt;br /&gt;
[[Dakota]]&lt;br /&gt;
&lt;br /&gt;
=== クラウド ===&lt;br /&gt;
&lt;br /&gt;
[[SimScale]]&lt;br /&gt;
&lt;br /&gt;
=== ベンチマーク ===&lt;br /&gt;
[https://www.cenav.org/ 計算工学ナビ]&lt;br /&gt;
&lt;br /&gt;
[https://feaber.readthedocs.io/ja/latest/ FEABeR]&lt;br /&gt;
&lt;br /&gt;
=== プログラミング ===&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
[[C++]]&lt;br /&gt;
&lt;br /&gt;
=== その他 ===&lt;br /&gt;
&lt;br /&gt;
[[物性データベース]]&lt;br /&gt;
&lt;br /&gt;
[[Blender]]&lt;br /&gt;
&lt;br /&gt;
[[Maxima]]&lt;br /&gt;
&lt;br /&gt;
[[REDUCE]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2022/opencae オープンCAE Advent Calendar 2022]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/6423 オープンCAE Advent Calendar 2021]&lt;br /&gt;
&lt;br /&gt;
[https://adventar.org/calendars/5192 オープンCAE Advent Calendar 2020]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2019/opencae-ac2019 オープンCAE Advent Calendar 2019]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2018/opencae-ac2018 オープンCAE Advent Calendar 2018]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/advent-calendar/2017/openfoam OpenFOAM Advent Calendar 2017]&lt;br /&gt;
&lt;br /&gt;
=== オープンCAE ===&lt;br /&gt;
[[オープンCAEの系譜]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCuffpM6BjZWZ4AEDFiQexEg オープンCAE動画チャンネル]&lt;br /&gt;
&lt;br /&gt;
[[各地の勉強会]]&lt;br /&gt;
&lt;br /&gt;
[[勝手にブックレビュー]]&lt;br /&gt;
&lt;br /&gt;
[[オープンCAE名言集]]&lt;br /&gt;
&lt;br /&gt;
=== Wikiについて ===&lt;br /&gt;
&lt;br /&gt;
本wikiはオープンCAE学会が管理しています。&lt;br /&gt;
オープンCAE学会については[http://www.opencae.or.jp 公式サイト]を参照してください。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_11_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=840</id>
		<title>OpenFOAM 11 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_11_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=840"/>
		<updated>2023-09-09T13:01:44Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「OpenFOAM Foundationは、OpenFOAMオープンソースCFDツールボックスのバージョン11のリリースを発表します。バージョン11では、1993年のicoFoam以来OpenFOAMに不可欠な従来のアプリケーション・ソルバとは対照的に、クラスとして記述されたモジュラー・ソルバを導入しました。  モジュール型ソルバーは、メンテナンスと拡張がよりシンプルになり、多領域シミ…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenFOAM Foundationは、OpenFOAMオープンソースCFDツールボックスのバージョン11のリリースを発表します。バージョン11では、1993年のicoFoam以来OpenFOAMに不可欠な従来のアプリケーション・ソルバとは対照的に、クラスとして記述されたモジュラー・ソルバを導入しました。  モジュール型ソルバーは、メンテナンスと拡張がよりシンプルになり、多領域シミュレーション、例えば、共役伝熱（CHT）、多相流など、あらゆるタイプの流れに柔軟に対応します。すべてが後方互換性を持っています： 2) simpleFoamなどの古いアプリケーション・ソルバを起動すると、非圧縮流体モジュールを単一領域で実行するスクリプトが実行されます。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 11には次のようなハイライトがあります。&lt;br /&gt;
&lt;br /&gt;
* モジュール式ソルバー：クラスベースのソルバーにより、多地域シミュレーションなどの柔軟性を向上。&lt;br /&gt;
* Multiphase: multiphaseEulerモジュールの一貫性と保存性が大幅に改善されました。&lt;br /&gt;
* 輸送：熱伝導率の異方性を追加。&lt;br /&gt;
* 熱物理学：入力ファイルのキーワードにおけるプロパティ名の指定を標準化した。&lt;br /&gt;
* 熱伝導：領域間の熱伝導のための簡略化された臨界境界条件。&lt;br /&gt;
* 粒子追跡：粒子のサイズ分布に対する一般化された統計分布。&lt;br /&gt;
* 液体フィルム：質量を節約し、他のモデルに統合する完全な置換。&lt;br /&gt;
* メッシュ：ダイナミック・メッシュ機能の再設計とNCCの統合。&lt;br /&gt;
* ファンクションオブジェクト：フィールド平均化と可視化ファンクションオブジェクトの改良。&lt;br /&gt;
* モデルと制約：多数の新しいモデルと制約。&lt;br /&gt;
* 境界条件：マッピング条件を統合し、MRF条件を導入。&lt;br /&gt;
* ケース設定：新しいfoamToCアプリケーションは、OpenFOAMのモデルとオプションをリストアップします。&lt;br /&gt;
* プログラミング：新しい有限体積関数とアルゴリズムシーケンスの改良。&lt;br /&gt;
* 964件のコードコミット、133件の問題解決。&lt;br /&gt;
* ISO/IEC 14882:2011 (C++14): GCC v5.5+、Clang v16+でテスト済み（v10+でも動作するはず）。&lt;br /&gt;
&lt;br /&gt;
ParaView 5.10.1には、LLVM/Galliumアクセラレーション付きのMesaが含まれており、（サポートされている）グラフィックカードがないシステムにも対応しています：&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux: Ubuntu 20.04、22.04、23.04用のパッケージインストール；&lt;br /&gt;
* その他のLinux：Dockerコンテナによるインストール、またはソースコードからのコンパイル；&lt;br /&gt;
* Windows 10: Windows Subsystem for LinuxとUbuntuパックを使用したインストール；&lt;br /&gt;
* macOS: Dockerコンテナによるインストール。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 11 Source Packは、適切なLinuxプラットフォームでコンパイルできます。&lt;br /&gt;
&lt;br /&gt;
== モジュール式ソルバー ==&lt;br /&gt;
&lt;br /&gt;
* 一般的なアプリケーション: foamRunは新しいモジュラーソルバをロードする一般的なCFDアプリケーションです[ commit 968e60 ]。foamMultiRunアプリケーションは異なるメッシュ領域で異なるモジュラーソルバを実行することができ、共役熱伝導などの複雑な連成問題に対応する汎用ツールを提供します[ commit 968e60 ]。foamPostProcessユーティリティは新しいモジュラーソルバをサポートするpostProcessユーティリティの新しい一般的な置き換えです[ commit 4001d2 ]。&lt;br /&gt;
* 非圧縮性および圧縮性ソルバー： 流体、isoThermalFluid、multicomponentFluid、solidモジュールソルバは、rhoSimpleFoam、rhoPimpleFoam、buoyantFoamからreactingFoamなど多くの従来のソルバーを複製します[ commit 968e60 ]。  非圧縮流体モジュールソルバは、pimpleFoam、pisoFoam、simpleFoamを複製します[ commit ca8918 ]。&lt;br /&gt;
* 体積流体(VoF)を含む多相： compressibleVoFモジュラーソルバはcompressibleInterFoamを複製し[ commit f77119 ]、fvModelsを通してキャビテーションをシミュレートすることができます。非圧縮性二相流のための非圧縮性VoFモジュールソルバーは、interFoamを置き換えるもので、多領域シミュレーションに使用することができます[ commit 851c93 ]。VoFを使用した非圧縮性非混和流体用の非圧縮性MultiphaseVoFモジュラーソルバーはmultiphaseInterFoamを置き換え、マルチリージョンシミュレーションで使用することができます[ commit ffdb21 ]。compressibleMultiphaseVoF モジュラーソルバーは compressibleMultiphaseInterFoam を置き換えるもので、多領域シミュレーションで使用することができます [ commit 64e1e4 ]。&lt;br /&gt;
* 他の混相ソルバー multiphaseEulerモジュールソルバーは、オプションのソース、パーティクル、フィルムモデリングなどを追加するためにfvModelsを使用し、multiphaseEulerFoamを置き換えます[ commit cec035 ]。  incompressibleDenseParticleFluidモジュラーソルバはdenseParticleFoamを置き換えます[ commit e40198 ]充填された領域の境界でパターンをずらすことなく、連続相の一貫した安定した速度を提供するために、面安定化で位相抗力を計算します[ commit 2b74f9 ]。新しい非圧縮DriftFluxモジュールソルバがdriftFluxFoamを置き換えます[ commit b949c2 ]。&lt;br /&gt;
* 燃焼ソルバー XiFoamに代わって、圧縮性予混合/部分予混合燃焼のためのXiFluidモジュール式ソルバーが追加され、マルチリージョンシミュレーションで使用できるようになりました[ commit b7ea5f ]。&lt;br /&gt;
* 衝撃の捕捉 rhoCentralFoamソルバーが再編成されました[ commit 3055b1 ]。オプションでメッシュトポロジーの変更、負荷分散、メッシュモーションを含む衝撃捕捉を伴う圧縮性流体用のshockFluidモジュールソルバーに置き換えられました[ commit fe5a99 ]。shockFluidモジュールはrhoUとrhoEを保存しながらrho、U、eを解きます[ commit 9fadb7 ]。&lt;br /&gt;
* その他のソルバー movingMeshモジュラー・ソルバは、moveMeshの代わりにdynamicMeshDictファイルで指定されたmover、topoChanger、distributorを実行します。functionsモジュラー・ソルバーは、postProcessアプリケーションと-postProcessオプション、特にscalarTransportFoamソルバーを複製して、指定されたソルバーの関数オブジェクトを実行します[ commit 8de6cd ]。&lt;br /&gt;
* 粒子ソルバー： particleFoamとrhoParticleFoamアプリケーションソルバーは、それぞれincompressibleFluidとisothermalFluidモジュラーソルバーの上で、fvModelでfunctionsモジュラーソルバーを実行することで複製されるようになりました[ commit fbda1d ]。&lt;br /&gt;
* 固体ソルバー 固体応力解析のためのsolidDisplacementモジュール・ソルバは、solidDisplacementFoamとsolidEquilibriumDisplacementFoamを置き換えるもので、FSI[ commit 55be80 ]などの多領域シミュレーションで使用できます。&lt;br /&gt;
* フィルムソルバ 新しいisothermalFilmソルバーモジュールは等温液体膜を保守的にシミュレーションし、標準モデリングとのインターフェイスを提供します[ commit dcbd54 ]。isothermalFilmから派生した新しいフィルムソルバモジュールは、エネルギーと熱伝導を計算し、共役熱伝導を計算するために既存の境界条件を使用することができます[ commit 796cfb ]。&lt;br /&gt;
* 数値計算： isothermalFluidモジュラーソルバで浮力圧力の緩和不足が改善されました[ commit c22a5a ]。特殊なSRF(単一参照フレーム)ソルバーを使用したシミュレーションが、MRF(複数参照フレーム)機能を持つ標準ソルバーを使用して完全に再現できるようになりました[ commit 160ee6 ]。compressibleVoFモジュラーソルバに混合物温度の補正式が追加され、エネルギーを節約できるようになりました[ commit 74b302 ]。&lt;br /&gt;
&lt;br /&gt;
== 多相 ==&lt;br /&gt;
&lt;br /&gt;
* モデリング coupledMultiphaseTemperature境界条件は、共役伝熱のためのオイラー・オイラー混相シミュレーションの相温度を結合します[ commit a7d40a ]。圧縮性混相流のために、特定のtwoPhaseChangeModelコードがより一般的なVoFCavitation fvModelに置き換えられ、将来的に他の相変化モデルや界面操作モデルに拡張できるようになりました[ commit 9dc91e ]。multiphaseEulerソルバーに、例えば充填床での沸騰のための固定相のwallBoiling熱伝達モデルが追加されました[ commit 32edc4 ]。圧縮性VoFおよびmultiphaseEulerソルバー用の新しい斉藤キャビテーションモデルが、平面界面での蒸発/凝縮の理論に基づいた物質移動速度を使用するようになりました。[コミット 2f9f8b ]。&lt;br /&gt;
* 多相反応（VTTフィンランドと）： 新しいwallBoilingProperties関数オブジェクトが壁面沸騰に関連するデータを書き出します[ commit 0da491 ]。multiphaseEulerFoam の粒状材料のジョンソン-ジャクソン部分スリップ境界条件を修正しました。壁沸騰モデルからJayatilleke熱壁関数の重複を削除しました。壁面沸騰で温度外挿がより物理的になり、y+が低い領域でより安定になりました[ commit f6342a ]。壁面沸騰が改良され、境界温度をすべての相で均一に保つために流体相間で指定された熱流束を配分するuniformFixedMultiphaseHeatFlux境界条件が追加されました[ commit 377080 ]。混相流での沸騰がより安定し、エネルギーが節約され、正確になりました[ commit 132111 ]。&lt;br /&gt;
* multiphaseEuler ソルバー multiphaseEulerソルバーのセルベースの運動量アルゴリズムが大幅に更新され、一貫性と保存性が改善されました。  陰解法による位相分率補正式に単一の拡散係数を追加し、位相分率の和が1になるようにしました[ commit e8078c ]。  ドラッグテーブルと仮想質量テーブルがオンデマンドで作成されるようになり、ストレージと計算コストが削減されました [ commit ede5ec ]。  抗力と伝熱係数の計算を改善しました[ commit f67445 ]。&lt;br /&gt;
* チュートリアル 新しいfloatingObjectWavesケースは，waveForcing fvModelによって生成された平均流のない波による浮遊物体の運動を示します．多相シミュレーションのためのfvSchemesの仕様の簡素化 [ commit 1c2f61 ]。&lt;br /&gt;
&lt;br /&gt;
== 輸送モデリング ==&lt;br /&gt;
&lt;br /&gt;
* MomentumTransportModels： lambdaThixotropic 粘性モデルには、オプションでBingham塑性降伏応力[ commit 3b1e46 ]が含まれています。&lt;br /&gt;
* ThermophysicalTransportModels： 新しい solidThermophysicalTransportModel は固体の熱物理輸送モデルを提供し、異方的な熱伝導率をサポートします[ commit cdaaa6 ]。異方性熱伝導率を持つ境界での熱流束計算を修正しました[ commit 01d2c6 ]。異方性熱伝導率κにオプションのboundaryAlignedスイッチを追加し、κの主方向を固体境界に合わせるようにしました [ commit d26e0f ]。&lt;br /&gt;
* 乱流： Jayatilleke wall functionの計算を改善しました。&lt;br /&gt;
&lt;br /&gt;
== 熱物理モデリング ==&lt;br /&gt;
&lt;br /&gt;
* 熱力学： fvSolution, 境界条件などの入力ファイルキーワードにおける熱物性名の指定を簡略化し、標準化しました [ commit 87a0b8 ]。新しいconstSolidThermoが一様および非一様な熱物性値指定をサポートしました[ commit 714e13 ]。constSolidThermoを使用した特性は、非一様なフィールドとして表現するか、ゾーンに基づいて表現することによって、領域全体で変化させることができます[ commit a25f99 ]。&lt;br /&gt;
* 輸送： 熱物理学的輸送を再設計し、領域間および外部境界の境界条件をよりシンプルに、拡張可能に、メンテナンスしやすくしました[ commit 5af541 ]。constAnisoSolidThermo熱物性クラスを使用して異方性熱伝導率を指定できるようになりました[ commit 5c296c ]。&lt;br /&gt;
* 設定： 熱物性辞書の名前に正規表現が使えるようになりました [ commit 523333 ]。&lt;br /&gt;
* 化学： 化学積分において、化学種ソースが質量を保存するようになりました[ commit 3d59ed ]。adjustTimeStepToChemistry関数とadjustTimeStepToCombustion関数は反応プロセスに合わせて時間ステップを調整します[ commit 7c684b ]。moleFraction関数は質量分率をモル分率に変換し、massFractionはその逆に変換します[ commit 1b80fd ]。&lt;br /&gt;
&lt;br /&gt;
== 熱伝達 ==&lt;br /&gt;
&lt;br /&gt;
* 数値計算 compressibleInterPhaseThermophysicalTransportModelは、compressibleVoFモジュラーソルバを使用した混相流による共役熱伝達を可能にします。&lt;br /&gt;
* 境界条件： 臨界境界条件をよりシンプルで合理的な名前にすることで、熱伝導のシミュレーションがより簡単になります[ commit 5c01fe ]。&lt;br /&gt;
* 例 新しいcircuitBoardCoolingチュートリアルケースは、3Dサーマルバッフル[ commit 3f33f3 ]による共役熱伝達への効果的なアプローチを示しています。&lt;br /&gt;
&lt;br /&gt;
== パーティクルとトラッキング ==&lt;br /&gt;
&lt;br /&gt;
* トラッキング： ラグランジュパーティクルの境界相互作用が制約境界で修正されました[ commit 6ccaf6 ]。メッシュ間のマッピングを使用してトポロジーが変更された場合にパーティクルがマッピングされるようになりました[ commit 03b061 ]。&lt;br /&gt;
* 射出： 粒子(ラグランジュ)機能において、サブサイクルを削除し、インジェクションの動作を改善しました[ commit 06e29c ]。  統計分布が一般化され、パーティクルのサイズ分布に使用されるようになりました[ commit cae419 ]。  新しいuniformParcelSizeコントロールがパーティクルの固定数、体積、表面積にパーセルサイズを基づかせるようになりました[ commit 0d2fd7 ]。&lt;br /&gt;
* 設定： 任意のシミュレーションに粒子をプラグインするのに役立つ、雲モデル用のサンプルfvModelsファイルを追加しました[ commit 399ea8 ]。&lt;br /&gt;
* モデリング： MPPICの近似補正トラックを予測器-補正器スキームに置き換え、メモリ使用量を削減し、トラッキング時間と関連するパーセル特性へのアドホックな補正を回避しました[ commit ca0003 ]。&lt;br /&gt;
* データ収集： 粒子のフラックス（数、体積、質量）はCloudFunctionObjects [ commit f69b9f ] で計算できます。&lt;br /&gt;
&lt;br /&gt;
== 液体フィルム ==&lt;br /&gt;
&lt;br /&gt;
* 概要 isothermalFilmとフィルムソルバモジュールは、現在削除されているsurfaceFilmModelsライブラリを置き換えるものです。新しいアプローチはより柔軟で、ガス流、ラグランジュ雲、VoF、CHTなどの他の領域との結合が可能です。&lt;br /&gt;
* フィルム-流体界面： filmVoFTransferとVoFFilmTransfer fvModelsはフィルムとVoF領域の間で動作し、フィルムが十分に厚い場合はフィルムをVoF相に移動させ、VoFフィルムが薄すぎる場合はその逆を行う[ commit 72b876 ]。&lt;br /&gt;
* フィルムと粒子の相互作用： パーティクルは、流体 cloudProperties ファイルで cloudFilmTransfer surfaceFilmModel を指定し、filmCloudTransfer fvModel をフィルムに適用することで、表面のフィルムに移動することができます[ commit a2ad71 ]。filmCloudTransferのfvModelに、反転した表面や曲率分離からの滴下によってフィルムから粒子（パーセル）に流体を転送するオプションの排出モデルが追加されました[ commit 2cf8f6 ]。&lt;br /&gt;
* 境界条件： mappedFilmPressure境界条件は流体領域からフィルム領域に圧力をマッピングします[ commit 12decc ]。  新しいfilmSurfaceVelocity境界条件は、隣接する流体領域によって課されるせん断からフィルム表面の速度を評価します[ commit 423fa5 ]。&lt;br /&gt;
* 例 rivuletBoxのサンプルケースは、アルミニウムパネル、小滴を形成する流体の膜、自然対流で流れる周囲の空気の間の熱伝達を実証しています[ commit cee34f ]。&lt;br /&gt;
&lt;br /&gt;
== Meshes ==&lt;br /&gt;
&lt;br /&gt;
* 一般： allGeometryオプションを使用すると、checkMeshは非整形カップル(NCC)のカバレッジを書き出します[ commit 095f4b ]。&lt;br /&gt;
* 生成： extrudeRegionToMesh ユーティリティで intrude オプションを使用してフィルムメッシュを生成できるようになりました [ commit f85026 ]。&lt;br /&gt;
* 非形式結合： 非形式結合(NCC)は任意メッシュインターフェース(AMI)を置き換えるもので、回転する形状やメッシュの非整合領域などに対して、拘束された保守的な数値計算を提供します[ commit f4ac5f ]。メッシュ間のトポロジーの変更に対応するNon-conformal couplingを追加しました[ commit 3ec358 ]。createNonConformalCouples ユーティリティに -fields オプションを追加し、フィールドファイルに非整形カップルに関連するパッチエントリを追加するようにしました [ commit 2db562 ]。Non-Conformalカップルを &amp;quot;stitched &amp;quot;することで、Paraviewなどで補間されたフィールドデータを視覚化する際に不連続性を回避できるようになりました。メッシュからメッシュへのマッピングを含むケースで動作するようにNCCを修正しました[ commit 919972 ]。非共形結合が2次の時間スキームをサポート [ commit a4ca75 ]。多重回転フレーム(MRF)が非共形結合(NCC)と互換性を持つようになりました [ commit a430d0 ]。&lt;br /&gt;
* その他 新しい rigidBodyPoints functionObject は剛体上の点の動きを追跡します [ commit 386588 ]。メッシュの動きとトポロジーの変更に伴う古いフィールドの更新と削除を一般化 [ commit 30eb5e ]。&lt;br /&gt;
* マッピング： メッシュ間のマッピング機能が大幅にリファクタリングされました [ commit 582438 ]。メッシュの再配分がパーティクルを処理できるようになりました [ commit 8f7ae7 ]。共形および非共形インターフェースの両方に対するパッチ間マッピングのロバスト性が改善されました [ commit 020361 ]。メッシュ間マッピングと mapFieldsPar ユーティリティを合理化しました [ commit f95eb5 ]。&lt;br /&gt;
* 分解と再配布： reconstructParユーティリティは分解されたメッシュをフィールドと同様に再構築するようになったので、reconstructParMeshユーティリティは必要なくなり削除されました[ commit c3ab70 ]。&lt;br /&gt;
&lt;br /&gt;
== 機能オブジェクト ==&lt;br /&gt;
&lt;br /&gt;
* 一般： マルチリージョンシミュレーションでメッシュ領域に適用される関数オブジェクトが標準パスにファイルを書き込むようになりました[ commit 5b11f5 ]。新しいstopAtTimeStep関数オブジェクトが、時間ステップが指定したレベル以下になった場合にシミュレーションを停止するようになりました[ commit 4974cc ]。&lt;br /&gt;
* サンプリング： triSurfaceAverage関数オブジェクトは、指定された三角形サーフェス上のフィールドの平均を計算します[ commit c5d70f ]。 cutPolyは、新しい多面体切断ルーチンと、既存のツールよりもロバストで高速な等値面アルゴリズムを提供します[ commit 723f52 ]。&lt;br /&gt;
* メッシュ： 新しい checkMesh functionObject は動的メッシュの場合のメッシュの品質をレポートします [ commit 36e834 ]。&lt;br /&gt;
* フィールド： fieldAverage 関数オブジェクトは構築時に存在しないフィールドを平均化できるようになり、メッシュのトポロジーが変化するケースでも再スタート時に動作するようになりました [ commit 3e8b97 ]。新しいvolAverageとvolIntegrateパッケージ関数オブジェクトはフィールドの体積加重平均と体積積分を便利に処理できます[ commit 5c7131 ]。&lt;br /&gt;
&lt;br /&gt;
== モデルと制約 ==&lt;br /&gt;
&lt;br /&gt;
* 一般： fvModel 関数オブジェクトを使用して、controlDict ファイルから fvModel を設定できるようになりました [ commit 9f6eac ]。また、#includeModel および #includeConstraint ディレクティブは、controlDict ファイルの functions サブディクショナリから fvModel および fvConstraints をインクルードできるようになりました [ commit 3a269e ]。関数オブジェクト、fvModel、fvConstraint の名前と、関連する出力ディレクトリを name キーワードで指定できるようになりました [ commit dc85d5 ]。regionTypeとselectionModeに代わって、selectキーワードがセル、面、点のコレクションを指定するのに使われるようになりました[ commit 295223 ]。zeroDimensionalFixedPressure fvModelとfvConstraintがゼロ次元の場合の圧力拘束を維持するようになりました[ commit 9cdd2a ]。&lt;br /&gt;
* fvModels： surfaceFilms fvModelは、surfaceFilm（単数）モデルを置き換えることで、潜在的に異なる仕様の複数のフィルムをサポートします[ commit b1de50 ]。新しいwaveForcing fvModelは、ドメインインレットで適用することなく、任意の方向に動くように設定できる表面波を生成します[ commit 562925 ]。densityConstraintSourceとpressureConstraintSource fvModelは0次元シミュレーションに膨張/収縮、または質量ソース/シンクを含めることができます[ commit 644a59 ]また、0次元シミュレーションを簡素化するために設定なしで単位立方体形状を生成するzeroDimensionalMeshユーティリティが追加されました[ commit 099505 ]。massSource fvModelは負の質量流量が指定された場合に質量を除去します[ commit d7e330 ]。heatTransfer fvModel が多相シミュレーションの個々の相に適用できるようになりました [ commit 3736bc ]。&lt;br /&gt;
* fvConstraints： 新しい束縛fvConstraintは、スカラー・フィールドが指定された最小値以下になった場合にそのフィールドを束縛します[ commit 1a17ce ]。&lt;br /&gt;
&lt;br /&gt;
== 一般的な境界条件 ==&lt;br /&gt;
&lt;br /&gt;
* Pressure: waveSurfacePressure境界条件がisothermalFluidとfluid modularソルバーでポテンシャル自由表面流を解くように更新され、potentialFreeSurfaceFoamソルバーは廃止されました[ commit 897658 ]。&lt;br /&gt;
* 速度  MRFslip 境界条件はMRF(多基準フレーム)またはSRF(単一基準フレーム)の場合に移動フレームと一緒に回転するスリップウォールに使用できます[ commit ef9566 ]。回転速度(rad/s)を表すomegaエントリは、ユーザーが1分あたりの回転数でデータを入力したい場合、rpmに置き換えることができます[ commit 2da5ed ]。&lt;br /&gt;
* 一般： mappedPatch 境界条件は別のフィールドや別のパッチからのデータを適用します。新しい samePatch スイッチは同じパッチからのフィールドデータに対して単純化します [ commit 320e70 ]。autoMapとrmapに代わり、単一のmap関数が境界条件クラスでパッチ間のマッピングを行うようになりました [ commit 38e8e7 ]。&lt;br /&gt;
&lt;br /&gt;
== ケース構成 ==&lt;br /&gt;
&lt;br /&gt;
* データ可視化： foamSequenceVTKFiles スクリプトは、異なる画像シーケンスで同じ名前のファイルを処理するようになりました [ commit 7f17fc ]。&lt;br /&gt;
* ケースの初期化： 関数ソルバーは、別のソルバーによって初期化されたフィールドに基づいて関数オブジェクトを実行します。フィールドデータが読み込まれる時間は、controlDictファイルのsubSolverTimeエントリによって任意に設定できるようになりました[ commit 714291 ]。結果はcontrolDictで指定されたwriteIntervalの倍数で、開始時間またはオプションのbeginTime項目で設定された時間から書き出されます[ commit 0fa46e ]。新しいsnappyHexMeshConfigユーティリティがsnappyHexMeshでメッシュを作成するために入力ファイルを事前設定します[ commit c25529 ]。&lt;br /&gt;
* コード入力： 特に#codeStreamディレクティブを使用した入力ファイルのキーワード値エントリを生成するのに便利です[ commit d1cb13 ]。codeStreamと#calcで構築された辞書エントリは型付き変数を便利に使用できるようになり、ベクトル、テンソル、リスト、フィールドなどでの計算が可能になりました [ commit b2d4f2 ]。新しい#calcIncludeディレクティブは、数学関数をインクルードするなど、#calc用のヘッダファイルをロードすることができます[ commit 0de23d ]。入力ファイル用の #calc ディレクティブで、代替の #{ ... #} 区切り文字を使用できるようになりました [ commit 8611db ]。calcによる複数行のエントリは、#codeStreamをエミュレートしつつ、よりシンプルな構文で、入力ファイルにより有用なコード化されたエントリを可能にします [ commit 441b60 ]。&lt;br /&gt;
* モデルとオプションの検索: 新しいfoamToCアプリケーションは &amp;quot;目次 &amp;quot;を印刷し、報告し、ユーザーがモデルを見つけ、異なるモデルのオプションをリストアップすることを可能にします[ commit f978ff ]; それは正規表現検索に基づいた機能をリストアップすることができます[ commit db7ea4 ]。&lt;br /&gt;
&lt;br /&gt;
== プログラミング ==&lt;br /&gt;
&lt;br /&gt;
* その他の数値計算 新しいfvm::LaplacianCorrection関数により、熱輸送の実装がより効率的でシンプルになりました。熱物理学的輸送特性は輸送方程式を含まないため、時間ステップの最初に計算されるようになりました[ commit ce42eb ]。輸送方程式を解かない計算の場合、運動量輸送特性は時間ステップの最初に計算されるようになりました[ commit d9ba28 ]。fvc::flux()関数をテンプレート化し、ベクトル流束をサポート [ commit 42c35a ]。新しいfvm::divc関数は、指定されたフラックスの発散を含む明示的なソースを持つ行列と、fluxRequired設定に従ってキャッシュされたフラックスを返します[ commit 1182d3 ]。ddtCorrを多重回転フレーム(MRF)で拡張し、数値振動の原因となる圧力、速度、フラックス間のデカップリングを回避しました[ commit e98dcc ]。連続性を確保するためにフラックスを補正するCorrectPhi関数にいくつかの改良が加えられました; これらはVoFや他の多相ソルバーにとって特に重要です[ commit e66484 ]。&lt;br /&gt;
* フィールド： GeometricField&amp;lt;Type、fvPatchField、volMesh&amp;gt;とGeometricField&amp;lt;Type、fvsPatchField、surfaceMesh&amp;gt;はよりシンプルなVolField&amp;lt;Type&amp;gt;とSurfaceField&amp;lt;Type&amp;gt;型定義に置き換えられました[ commits 73c562 ]。&lt;br /&gt;
* functionObject、fvModel、fvConstraint を使用する場合、可能であれば関連するライブラリが自動的にロードされるようになりました [ commit 0b8c17 ]。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_10_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=839</id>
		<title>OpenFOAM 10 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_10_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=839"/>
		<updated>2023-09-09T12:55:52Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「  OpenFOAM Foundationは、オープンソースCFDツールボックスOpenFOAMのバージョン10のリリースを発表します。バージョン10は、OpenFOAM開発版のスナップショットで、持続可能な開発により、常にリリース可能です。  使いやすさ、ロバスト性、拡張性が厳しく要求される中、新機能と既存コードの大幅な改良を提供します。  OpenFOAM 10には、次のような重要な…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
OpenFOAM Foundationは、オープンソースCFDツールボックスOpenFOAMのバージョン10のリリースを発表します。バージョン10は、OpenFOAM開発版のスナップショットで、持続可能な開発により、常にリリース可能です。  使いやすさ、ロバスト性、拡張性が厳しく要求される中、新機能と既存コードの大幅な改良を提供します。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 10には、次のような重要な開発が含まれています。&lt;br /&gt;
&lt;br /&gt;
* 多相：モデルの追加、多相ソルバーのパフォーマンスとロバスト性の向上。&lt;br /&gt;
* トランスポート：プロパティを単一の physicalProperties ファイルに統合。&lt;br /&gt;
* 熱物理：導電率の取り扱いを改善し、ドキュメントを追加。&lt;br /&gt;
* 熱伝導：共役熱伝導における熱結合の改善。&lt;br /&gt;
* パーティクルトラッキング：雲のfvModelを使ったソルバーにプラグインできるようになりました。&lt;br /&gt;
* 反応：化学では、熱膨張を考慮して質量分率を求める。&lt;br /&gt;
* 並列化：負荷分散、分解、再分配のための新しいフレームワーク。&lt;br /&gt;
* メッシュ：snappyHexMesh、blockMesh、その他のツールの全般的な改善&lt;br /&gt;
* ダイナミックメッシュ：AMIに代わる回転ジオメトリ用の非整合結合（NCC）。&lt;br /&gt;
* 動的リメッシング：エンジンを含むメッシュモーションのためのメッシュ間マッピング。&lt;br /&gt;
* ファンクションオブジェクト：サンプリングのためのより効率的な出力、および新しいフィールド計算。&lt;br /&gt;
* モデルと制約：メッシュケースの移動とファンクションオブジェクトでの動作が可能になりました。&lt;br /&gt;
* 境界条件：圧力、速度、温度の新しい一般条件。&lt;br /&gt;
* ケース・コンフィギュレーション：カスタマイズされた時間の尺度を提供するためにuserTimeを作成。&lt;br /&gt;
* 計算：壁までの距離計算、時間処理、I/Oの改善。&lt;br /&gt;
* 約635件のコードコミット、161件の問題解決。&lt;br /&gt;
* ISO/IEC 14882:2011 (C++14): GCC v5.4+、Clang v10+でテスト済み（v6+でも動作するはず）。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 10は、以下のプラットフォーム用にパッケージ化されています。（サポートされている）グラフィックス・カードがないシステムでは、ParaView 5.6（LLVM/Galliumアクセラレーション付きMesaを含む）[2023年1月更新：ParaView 5.10.1（LLVM/Galliumアクセラレーション付きMesaを含む）]。&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux: packaged installation for Ubuntu 18.04 20.04 and 22.04 [ ''22.10 added Jan 2023'' ];&lt;br /&gt;
* その他のLinux：Dockerコンテナによるインストール、またはソースコードからのコンパイル；&lt;br /&gt;
* Windows 10: Windows Subsystem for LinuxとUbuntuパックを使用したインストール；&lt;br /&gt;
* macOS: Dockerコンテナによるインストール。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 10 Source Packは、適切なLinuxプラットフォームでコンパイルできます。&lt;br /&gt;
&lt;br /&gt;
== 多相 ==&lt;br /&gt;
&lt;br /&gt;
* モデリング： 表面波を（波長の代わりに）周期を入力して指定できるようになりました[ commit 559fe8 ]。また、境界での流れの反転が可能になったので、波はどの方向でも、平均流がゼロでも指定できるようになりました[ commit 1c4868 ]。液体の蒸発モデリングに凝縮スイッチを追加 [ commit cc3b25 ]。multiphaseEulerFoamのサブモデルのブレンドが3相以上のシミュレーションのために拡張されました[ commit 428c54 ]。driftFluxFoamのコロイド分散に対する新しいQuemada粘度モデル [ commit f4b497 ]。driftFluxFoamのMRFによる遠心加速度を修正しました。driftFluxFoamに凝集懸濁液のMichaels and Bolgerモデルを追加。driftFluxFoamで、流れの曲率が連続相からの分散相の分離に物理的に影響するようになりました[ commit 620cbe ]。&lt;br /&gt;
* Reacting Multiphase (VTT FinlandおよびHZDR Dresden-Rossendorfとの共同研究)： Liao et alの合体および分解モデルを追加しました[ commit fe9829 ]。新しいモーメント関数オブジェクトがポピュレーションバランス法で計算された粒度分布の平均特性を計算します[ commit 36c565 ]。multiphaseEulerFoamに固体粒子の合体および破壊モデルを追加しました[ commit b4bcb2 ]。母集団バランス法における膨張の計算を改善しました[ commit 376b51 ]。&lt;br /&gt;
* パフォーマンス/数値計算： compressibleInterFoamの温度方程式はデフォルトでは全内部エネルギーに基づいて定式化されますが、totalInternalEnergyをfalseに設定することで内部エネルギーに基づいて定式化することができます[ commit 12dc41 ]。 compressibleMultiphaseInterFoamがfvModelsとfvConstraintsをサポートするようになりました[ commit 13b782 ]。相率 alpha → 0 の場合の多相ケースの安定化が改善されました[ commit 3df883 ]。新しいphaseStabilisedおよびphaseStabilisedSnGrad補間スキームが、位相分率が1e-3より小さい場合に有界形式に戻すことにより、貧弱なメッシュ上での多相EulerFoamの実行を安定化させるようになりました[ commit 7b3631 ]。&lt;br /&gt;
* チュートリアル 固体粒子の合体および破壊を示す90°曲がり管内の流れのチュートリアル例（Kasper Gram Bilde、HZDR Dresden-Rossendorf との共同研究） [ commit 0999cd ]。&lt;br /&gt;
&lt;br /&gt;
== 輸送モデリング ==&lt;br /&gt;
&lt;br /&gt;
* 一般： 非圧縮性、圧縮性、単一相、多相、単一領域、多領域の流れに対して、特に単一の physicalProperties ファイルによる流体特性の指定を統合しました[ commit 65ef2c ]。&lt;br /&gt;
* MomentumTransportModels： 燃焼のチュートリアルで、輸送特性を計算するためのWilke混合則を示すようになりました[ commit 393023 ]。新しい Andrade モデルが液体の動的粘性と熱伝導率の自然対数を計算するようになりました[ commit 26f0e4 ]。&lt;br /&gt;
* ThermophysicalTransportModels： listThermophysicalTransportModelsオプションを指定してソルバーを実行すると、熱物理輸送モデルをリストアップできるようになりました。&lt;br /&gt;
* 乱流： 新しいVoFTurbulenceDamping fvModelはVoF界面で乱流減衰を適用します[ commit 4f9694 ]。mixtureKEpsilonモデルのεmフィールドにεmWallFunctionを追加しました[ commit 3bac21 ]。レイノルズ応力(R)乱流モデルにおいて、Rと速度Uの結合が改善され、ダクト内の二次流れを示す新しいチュートリアルが追加されました[ commit a34604 ]。&lt;br /&gt;
&lt;br /&gt;
== 熱物理モデリング ==&lt;br /&gt;
&lt;br /&gt;
* 熱力学： 状態方程式 [ commit c86c64 ]、熱力学 [ commit b3e02d ]、輸送モデル [ commit 8dbbe1 ]のヘッダードキュメントを拡張。状態方程式に体積熱膨張係数の関数を追加 [ commit 2d7a57 ]。熱力学は熱拡散率 alpha ではなく熱伝導率 kappa を熱輸送の基本パラメータとして保存するようになりました [ commit cc96ab ]。&lt;br /&gt;
* 輸送： const輸送モデルで、プランドル数の代わりに導電率を指定できるようになりました[ commit cd1f69 ]。&lt;br /&gt;
&lt;br /&gt;
== 熱伝達 ==&lt;br /&gt;
&lt;br /&gt;
* 数値計算 共役熱伝達において、新しいnEcorrループが流体と固体領域間の熱結合が支配的なケースを改善します[ commit f52d86 ]。buoyantSimpleFoamとbuoyantPimpleFoamは、圧縮性流体の定常または過渡の浮力乱流ソルバーbuoyantFoamに統合されました[ commit d40ecd ]。&lt;br /&gt;
&lt;br /&gt;
== パーティクルとトラッキング ==&lt;br /&gt;
&lt;br /&gt;
* ソルバー 雲fvModelは、非圧縮性ソルバーと圧縮性ソルバーの両方で、様々なレベルの結合でシミュレーションに粒子を追加することができます[ commit 5f1146 ]、 例を参照してください[ commit 24a359 ]。&lt;br /&gt;
* トラッキング： トラッキングのロバスト性を改善し、ハングアップ、ゼロ除算、浮動小数点エラーを防止しました [ commit 5272e4 ]。&lt;br /&gt;
&lt;br /&gt;
== 反応する流れ ==&lt;br /&gt;
&lt;br /&gt;
* 化学： 化学モデルは熱膨張に伴う反応速度の変化を考慮するため、濃度ではなく質量分率を解くようになりました[ commit 4f0dfc ]。In-Situ Adaptive Tabulation (ISAT) 化学モデルがリファクタリングされ改善されました[ commit 8145de ]。&lt;br /&gt;
* 燃焼： fixedTemperature 制約を使用した着火の例を追加しました [ commit 19b3b2 ]。&lt;br /&gt;
* 集計： in-situ adaptive tabulation (ISAT) に関するいくつかの問題を修正しました[ commit 011397 ]。&lt;br /&gt;
&lt;br /&gt;
== 平行移動 ==&lt;br /&gt;
&lt;br /&gt;
* ロードバランシング： 一般的なCPUロードバランサーのプロトタイプがローカルセルの計算負荷に基づいてメッシュを並列に再分配します。新しいfvMeshDistributorsライブラリはシミュレーション中のメッシュの並列再配布、特にロードバランシングを提供します[ commit bf5f05 ]。&lt;br /&gt;
* 分解と再配分： fvMesh 内に新しいフレームワークを作成し、ロードバランシングなどの実行時のメッシュ再分配を扱えるようにしました [ commit 687996 ]。負荷分散のためのメッシュ再分配をサポートするためにMeshObjectsに新しいdistribute関数を追加しました[ commit a0ac78 ]。並列ケース用のメッシュの分解と再分配のための個別のコントロールを導入 [ commit f97f63 ]。Zoltanライブラリを使用した新しい並列メッシュ再配分 [ commit 340856 ]。2次時間スキームで実行される移動メッシュケースが再配分によって実行できるようになりました[ commit 97eee8 ]。&lt;br /&gt;
* 最適化： MULESのリミッター計算の並列効率が改善されました[ commit 8cc05a ]。 decomposeParが最小IOのために最適化され、時変メッシュのシーケンスを分解できるように修正されました[ commit 399545 ]。&lt;br /&gt;
&lt;br /&gt;
== メッシュ ==&lt;br /&gt;
&lt;br /&gt;
* 一般： メッシュ生成時に fvMesh と fvSolution ファイルが不要になりました [ commit ddbf2d ]。メッシュデータは、メッシュの動きとトポロジーの変更が発生した場合にのみ、時間ディレクトリに書き込まれるようになりました [ commit b439fc ]。&lt;br /&gt;
* snappyHexMesh： バッフルを持つ複数のlocationInMeshの処理を修正しました[ commit 115144 ]。addLayersがオフの時、addLayersControlsサブ辞書をsnappyHexMeshDictファイルから完全に削除できるようになりました[ commit d87a93 ]。&lt;br /&gt;
* blockMesh： 境界パッチ内で指定されていないブロック面は、defaultPatchエントリで名前とタイプを指定できるデフォルトパッチに集められます[ commit 99cfbd ]。&lt;br /&gt;
* 操作： topoSetユーティリティは非推奨となったsetSetユーティリティを完全に置き換え [ commit 8d887e ]、入力ファイルの構文を簡略化 [ commit 6a657c ]。Zoltan ライブラリを使用した並列ケースでメッシュのリナンバリングを有効にしました [ commit d90f42 ]。createPatch ユーティリティ [ commit 930207 ] と createBaffles ユーティリティが単純化されました [ commit f93300 ]。topoSet で、指定した回転を使用する rotatedBoxToCell ソースによりシンプルな入力オプションを追加しました [ commit c18039 ]。&lt;br /&gt;
* 変換： Fluent3DMeshToFoamメッシュコンバーターがFluentバージョンR2021用に更新されました[ commit 318f78 ]。&lt;br /&gt;
* サーフェスジオメトリ： transformPointsとsurfaceTransformPointsの新しい構文を説明する-helpオプションが追加されました。&lt;br /&gt;
&lt;br /&gt;
== ダイナミック・メッシュ ==&lt;br /&gt;
&lt;br /&gt;
* ノンコンフォーマルカップリング Non-Conformal Coupling (NCC)は、特に、回転するジオメトリをシミュレートする場合など、1つ以上の領域が移動する場合に、信頼性が低く、不正確なAMIとACMI機能に代わって、独立したメッシュで領域の領域を接続します[ commit 569fa3 ]。AMI、ACMI、リピートAMIのすべてのチュートリアル例がNon-Conformal Couplingを使用するように変更されました。ACMI と Repeat AMI は信頼性が低いので OpenFOAM から削除され、Non-Conformal Coupling に置き換えられました。AMI は v10 リリースまで残りますが、その後削除されます。[コミット b4b8b2 ]。&lt;br /&gt;
* その他 moveDynamicMeshユーティリティはmoveMeshに改名され、同名のユーティリティは廃止されました[ commit 31da3a ]。シミュレーションがトポロジカルメッシュの変更リストを受けられるようになりました[ commit 45428b ]。剛体力学に回転ジョイントを追加しました。例えば、移動する船にプロペラを組み合わせるために使用します [ commit 0289f3 ]。&lt;br /&gt;
&lt;br /&gt;
Non-Conformal Coupling の詳細については、&amp;quot;OpenFOAM Non-Conformal Coupling&amp;quot; および &amp;quot;Using NCC in OpenFOAM&amp;quot; を参照してください。&lt;br /&gt;
&lt;br /&gt;
== ダイナミック・リ・メッシング ==&lt;br /&gt;
&lt;br /&gt;
* マッピング： mapFields ユーティリティのコードを簡素化しました [ commit 08b7a9 ]。最新のmesh-to-mesh mappingでは、トポロジーやジオメトリの変更、メッシュの精密化および精密化解除などを管理するために、事前に生成されたメッシュのセットを使用できます [ commit 47b0cd ]。  メッシュ間マッピングが並列実行時のメッシュ間の分解の変更をサポートするようになりました [ commit f0e693 ]。&lt;br /&gt;
* エンジン： エンジンシミュレーション用の新しいエンジンとlayeredEngine fvMeshMoverを追加しました [ commit 941ea1 ]XiFoamで使用されるようになり、XiEngineFoamは冗長になりました [ commit 8f14b6 ]。エンジンfvMeshMoverのエンジンバルブとピストン機能をリファクタリングしました [ commit 49faf0 ]。rhoPimpleFoamとエンジンfvMeshMoverは反応なしでエンジンをシミュレーションすることができ、coldEngineFoamソルバーを冗長化します [ commit 640cd6 ]。同様にreactingFoamは化学反応ありのエンジン計算をシミュレーションすることができ、engineFoamソルバーを冗長化します [ commit facc36 ]。&lt;br /&gt;
&lt;br /&gt;
== ファンクション・オブジェクト ==&lt;br /&gt;
&lt;br /&gt;
* サンプリング： サンプルのサーフェスはすべてのフィールドデータを1つのファイルに書き出すようになり、ビジュアライゼーションの後処理を簡素化し、サーフェスジオメトリデータの重複を避けることでディスク容量を削減しました [ commit 261ce0 ]。CSVフォーマットの書き込みを改善しました。サンプリングデータにおいて、トラッキングが現在の時間レベルで確実に実行されるようになりました[ commit 41b73e ]。ストリームラインが周期境界を越えて伝播するようになりました [ commit 701fc2 ]。サンプリングとストリームラインを改良し、無駄なファイル書き込みを減らし、サンプリング・セグメントと並列化の信頼性を高め、インターフェイスを改善しました[ commit 25a6d0 ]。新しいlayerAverage関数オブジェクトがpostChannelポスト処理ユーティリティを置き換えます[ commit 053eed ]。layerAverage関数オブジェクトを書き換えて、例えばカーブしたパイプのような複雑な形状の変化にも対応できるようにしました [ commit d5820b ]。&lt;br /&gt;
* 視覚化： サーフェス関数オブジェクトにwriteEmptyオプションを追加し、特にアニメーションを生成する際のisoSurfacesに空のファイルを書き出すようにしました[ commit 2d1428 ]。&lt;br /&gt;
* フィールド： confort関数オブジェクトはドラフトレートを計算するために拡張されています[ commit 19950f ]。scalarTransport関数オブジェクトは、特に拡散がなく、圧縮または(M)PLICスキームを使用してシャープな界面が維持されている場合に、境界性を確保するためにMULESを使用するオプションを含んでいます[ commit aa6c04 ]。wallShearStress関数オブジェクトが多相系での指定相の壁せん断応力を処理できるようになりました[ commit e6acc7 ]。  wallHeatFlux 関数オブジェクトが多相系で指定した相の壁熱流束を計算できるようになりました [ commit 7d4dca ]。&lt;br /&gt;
&lt;br /&gt;
パッケージ化された機能オブジェクトの最新リストについては、ユーザーガイドを参照： 6.2 後処理 CLI を参照してください。&lt;br /&gt;
&lt;br /&gt;
== モデルと制約 ==&lt;br /&gt;
&lt;br /&gt;
* 一般： fvModelsとfvConstraintsにメッシュモーション用のアップデートを追加しました[ commit 19bdfa ]。 fvModelsとfvConstraintsは方程式を解く関数オブジェクト、例えばscalarTransport、スカラー場のモデルと制約を提供する関数オブジェクトと連動できるようになりました[ commit 987d59 ]。&lt;br /&gt;
* fvModels： actuationDisk fvModelが多相ソルバーで動作するようになり [ commit 96de80 ]、ディスクの向きをサポートするようになりました [ commit 991489 ]。時間ステップをfvModelで制限できるようになりました[ commit e478bb ]。新しいinterfaceTurbulenceDamping fvModelが相界面付近の乱流の減衰を提供するようになりました[ commit 898924 ]また、phaseTurbulenceStabilisation fvModelが相率→0の場合に相の乱流特性を安定させるようになりました[ commit 9925df ]。&lt;br /&gt;
* fvConstraints： limitTemperature fvConstraintが、compressibleInterFoamのような、エネルギー方程式の解変数として温度を使用するソルバーに対応しました[ commit fb53b9 ]。limitPressure fvConstraintに制限圧力場を指定するオプションを追加しました[ commit 3b3127 ]。limitVelocity fvConstraintをより一般的なlimitMagに置き換えました。&lt;br /&gt;
&lt;br /&gt;
== 一般的な境界条件 ==&lt;br /&gt;
&lt;br /&gt;
* Pressure: 新しい transonicEntrainmentPressure 境界条件は、ユーザーが指定できるマッハ数 [ commit 63ef6f ] から始まる超音速流出とゼロ勾配に向かってブレンドすることにより、出口境界 [ commit d10f22 ] で超音速ジェットをサポートします。totalPressure境界条件は、フリーストリームで指定できる外部接線速度[ commit a36082 ]で確実に機能します[ commit ba5612 ]。&lt;br /&gt;
* 速度： 新しいmovingWallSlipVelocity境界条件は、動く壁のスリップ条件を提供します[ commit 80c1a6 ]。  flowRateInletVelocity 境界条件で、層流境界層と乱流境界層に対応するオプションの流速プロファイルと、平均流速に基づく流速指定を選択できるようになりました[ commit 8bb48d ]。&lt;br /&gt;
* 温度 externalWallHeatFluxTemperature 境界条件は、複数の熱源、すなわちパワー、フラックス、伝達係数を同時に設定できるようになりました[ commit 373c49 ]。&lt;br /&gt;
* 一般： テンソルの回転周期変換を修正しました。&lt;br /&gt;
&lt;br /&gt;
== Case Configuration ==&lt;br /&gt;
&lt;br /&gt;
* データ可視化： foamCreateVideoに新しいオプションが追加され、動画の開始時や終了時に一時停止ができるようになった [ commit c70a7b ]。&lt;br /&gt;
* ケースの初期化： userTimeの概念を一般化し、controlDictで設定することで、実行時間をカスタマイズされた時間の尺度に変換することができます。例えば、データI/Oのためのクランク角などです。engineTimeは、標準ソルバーにエンジンシミュレーションを統合するためのさらなるステップとして、設定可能なengine userTimeに置き換えられました。&lt;br /&gt;
&lt;br /&gt;
== Programming and Computation ==&lt;br /&gt;
&lt;br /&gt;
* データ入力： オブジェクトファイルの存在をチェックし、オブジェクトを構築することなくヘッダをチェックできるIOobjectの新しいtypeIOobject [ commit b91233 ]。I/Oにおけるファイルパスの取り扱いを合理化した[ commit cc9233 ]。&lt;br /&gt;
* その他の数値計算: cpuTimeがPOSIX clock()関数を使用するようになり、分解能が向上しました[ commit 01f075 ]。圧縮性ソルバーで圧力方程式の計算開始時の密度予測を標準化しました [ commit 468954 ]。meshWave機能の重複コードを削除し[ commit 20ef80 ]、最も近い壁までの距離計算で使用される変換インターフェイスによる計算を単純化しました[ commit 4e0577 ]。壁までの距離の計算がプロセッサーや周期的な境界でより一貫したものになり、計算の精度をより細かく制御できるようになりました [ commit 9d702d ]。&lt;br /&gt;
* コンパイル： GCC コンパイラ v11 [ commit d83c87 ] と OneAPI Intel コンパイラ [ commit 37108e ] のサポートを追加しました。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=838</id>
		<title>OpenFOAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM&amp;diff=838"/>
		<updated>2023-09-09T12:48:58Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;このページではOpenFOAMについてまとめていきます。&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
&lt;br /&gt;
'''OpenCFD'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2306リリースノート|OpenFOAM v2306 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2212 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2206 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2112 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2106 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/OF2012-3625e0d8029b40bda20fafe481dcbd95 OpenFOAM v2012 リリースノート]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v2006 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1912 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1906 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1812 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v1806 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The OpenFOAM Foundation'''&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 11 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 10 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 9|OpenFOAM 9 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 8 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v7 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM v6.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 3.0.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAM 2.4.0 リリースノート]]&lt;br /&gt;
&lt;br /&gt;
==スターティングガイド==&lt;br /&gt;
[[OpenFOAMについて]]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのインストール]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e63d4cf76ea2fea659b2 チュートリアルケースの実行]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/24b8491bf9776c3a27db OpenFOAMで入力できる項目の調べ方]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e4b13100e15508981a85 OpenFOAMの$FOAM変数]&lt;br /&gt;
&lt;br /&gt;
==困った時は？==&lt;br /&gt;
[https://qiita.com/mmer547/items/7c7c257dcaf2efbc730b OpenFOAM Google Groupに投稿する際に抑えるポイント]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/6b041536e2ac5dd17721 OpenFOAMで計算するネタがない時の探し方]&lt;br /&gt;
&lt;br /&gt;
[[OpenFOAMのエラーメッセージの対応]]&lt;br /&gt;
&lt;br /&gt;
==プリプロセス==&lt;br /&gt;
&lt;br /&gt;
===形状作成===&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%EF%BC%9A%E5%BD%A2%E7%8A%B6%E4%BD%9C%E6%88%90 形状作成ツールまとめ]&lt;br /&gt;
&lt;br /&gt;
===メッシュ===&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/OpenFOAM%E3%81%AE%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 OpenFOAMのメッシャーについて]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:blockMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:snappyHexMesh]]&lt;br /&gt;
&lt;br /&gt;
[[メッシュ作成:cfMesh]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/9fca38b8e8eadc869bb8 SalomeでOpenFOAMのメッシュを用意する方法]&lt;br /&gt;
&lt;br /&gt;
===境界条件===&lt;br /&gt;
[[境界条件]]&lt;br /&gt;
&lt;br /&gt;
==ソルバ==&lt;br /&gt;
[[simpleFoamについて]]&lt;br /&gt;
&lt;br /&gt;
[[ExecutionTimeとClockTimeについて]]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/SIMPLEC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%A8%88%E7%AE%97%E5%AE%9F%E8%A1%8C%EF%BC%88OpenFOAM3.0.1%EF%BC%89 SIMPLECを使用した計算実行（OpenFOAM3.0.1）]&lt;br /&gt;
&lt;br /&gt;
===並列計算の実行方法===&lt;br /&gt;
&lt;br /&gt;
[[decomposeParDictの中身]]&lt;br /&gt;
&lt;br /&gt;
===エラーメッセージ===&lt;br /&gt;
[[v1806のエラーメッセージ]]&lt;br /&gt;
&lt;br /&gt;
==ポストプロセス==&lt;br /&gt;
[[ログファイルから残差ログを抽出]]&lt;br /&gt;
&lt;br /&gt;
[https://qiita.com/mmer547/items/e463235ddb93f08db68a OpenFOAMのpostProcessについて]&lt;br /&gt;
&lt;br /&gt;
==チュートリアルケース==&lt;br /&gt;
[[チュートリアルケース|チュートリアルケース一覧]]&lt;br /&gt;
&lt;br /&gt;
==カスタマイズ==&lt;br /&gt;
[https://qiita.com/mmer547/items/2997bf8c71fe1e2423c9 OpenFOAM ソースコードの探し方]&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/foam-extend_4.0%E3%82%92Bash_on_Ubuntu_on_Windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB foam-extend 4.0をBash on Ubuntu on Windowsにインストール]&lt;br /&gt;
&lt;br /&gt;
[https://scrapbox.io/opencae-kansai-memo/ESI_Windows%E7%89%88OpenFOAM%E3%81%AE%E5%B0%8E%E5%85%A5 ESI Windows版OpenFOAMの導入]&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/OpenCAE/Supercomputer-OpenFOAM-Training/-/wikis/home スーパーコンピュータOpenFOAM講習会]&lt;br /&gt;
&lt;br /&gt;
== 関連サービス ==&lt;br /&gt;
=== プリプロセス ===&lt;br /&gt;
[https://www.xsim.info/products/products.html XSim.Work]&lt;br /&gt;
&lt;br /&gt;
== 関連書籍 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDEXCS-OpenFOAM%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E9%87%8E%E6%9D%91-%E6%82%A6%E6%B2%BB/dp/4621306138/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-5 オープンCAEのためのDEXCS for OpenFOAMハンドブック]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E7%AC%AC2%E7%89%88-%E4%B8%80%E8%88%AC%E7%A4%BE%E5%9B%A3%E6%B3%95%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691025/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-1 OpenFOAMによる熱移動と流れの数値解析(第2版) ]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E5%B7%9D%E7%95%91-%E7%9C%9F%E4%B8%80/dp/4844379526/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-6　OpenFOAMの歩き方]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%86%E3%83%A9%E3%83%90%E3%82%A4%E3%83%88/dp/4627691610/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-2 OpenFOAMライブラリリファレンス]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Tomislav-Mari%C2%B4c/dp/4627670915/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-3 OpenFOAMプログラミング]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/OpenFOAM%E3%81%AB%E3%82%88%E3%82%8B%E7%86%B1%E7%A7%BB%E5%8B%95%E3%81%A8%E6%B5%81%E3%82%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%9E%90-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%AD%A6%E4%BC%9A/dp/4627691017/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;amp;dchild=1&amp;amp;keywords=OpenFOAM&amp;amp;qid=1622731659&amp;amp;s=books&amp;amp;sr=1-4 OpenFOAMによる熱移動と流れの数値解析]&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_8_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=837</id>
		<title>OpenFOAM 8 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_8_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=837"/>
		<updated>2023-09-09T12:47:40Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「OpenFOAM Foundationは、オープンソースCFDツールボックスOpenFOAMのバージョン8のリリースを発表します。バージョン8は、OpenFOAM開発版のスナップショットであり、持続可能な開発により、常にリリース可能です。  バージョン8は、ユーザビリティ、ロバスト性、拡張性が厳しく要求される中、新機能と既存コードの大幅な改良を提供します。  OpenFOAM 8には…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenFOAM Foundationは、オープンソースCFDツールボックスOpenFOAMのバージョン8のリリースを発表します。バージョン8は、OpenFOAM開発版のスナップショットであり、持続可能な開発により、常にリリース可能です。  バージョン8は、ユーザビリティ、ロバスト性、拡張性が厳しく要求される中、新機能と既存コードの大幅な改良を提供します。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 8には、次のような重要な開発が含まれています。&lt;br /&gt;
&lt;br /&gt;
* マルチフェーズ：インターフェイス捕捉のための選択可能な補間、PLIC方式。&lt;br /&gt;
* 多相反応：統合多相EulerFoamソルバーとモデル開発。&lt;br /&gt;
* 輸送: 新しい MomentumTransportModels と ThermophysicalTransportModels ライブラリ。&lt;br /&gt;
* 熱物理学：熱力学と状態方程式モデル、データ入力、リファクタリング。&lt;br /&gt;
* サーフェスフィルム：大幅な性能向上と表面処理の改善。&lt;br /&gt;
* 熱伝導：数値計算とケース設定の改善、新しい熱的快適性のモデル化。&lt;br /&gt;
* パーティクルトラッキング：非結合ソルバーの名称変更、トラッキング効率の向上、インジェクション。&lt;br /&gt;
* その他のモデル：過渡/定常状態ソルバー、境界条件、反応。&lt;br /&gt;
* メッシュ：snappyHexMeshとblockMeshの改良、面中心の計算、サイクリックパッチ。&lt;br /&gt;
* 機能オブジェクト：可視化／フィールド、滞留時間、コンフィギュレーションの改善。&lt;br /&gt;
* ケース・コンフィギュレーション：新しいコンフィギュレーション／初期化ツール、コード化された Function1.&lt;br /&gt;
* 計算：データI/Oの改善、フィールドキャッシング、Armプロセッサーのサポート。&lt;br /&gt;
* 約710件のコードコミット、200件以上の問題解決&lt;br /&gt;
* ISO/IEC 14882:2011 (C++11): GCC v5.4+、Clang v3.8+、Intel ICC v18.0+でテスト済み。&lt;br /&gt;
&lt;br /&gt;
ParaView 5.6.0（LLVM/Galliumアクセラレーション付きMesaを含む）は、（サポートされている）グラフィックカードがないシステム用にパッケージ化されています：&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux: Ubuntu 16.04、18.04、20.04用のパッケージインストール；&lt;br /&gt;
* その他のLinux：Dockerコンテナによるインストール、またはソースコードからのコンパイル；&lt;br /&gt;
* Windows 10: Windows Subsystem for LinuxとUbuntuパックを使用したインストール；&lt;br /&gt;
* macOS: Dockerコンテナによるインストール。&lt;br /&gt;
&lt;br /&gt;
OpenFOAM 8 Source Packは、適切なLinuxプラットフォームでコンパイルできます。&lt;br /&gt;
&lt;br /&gt;
== 一般多相 ==&lt;br /&gt;
&lt;br /&gt;
* モデリング 新しい界面捕捉フレームワークにより、fvSchemesで二相流の補間法を指定できるようになりました[ commit fa79ba ]。多相界面ハンドリングのための新しい補間スキームファミリーは、区分線形界面計算(PLIC) [ commit 1611e0 ]に基づいています。[詳細情報: &amp;quot;OpenFOAM における界面捕捉&amp;quot; ]。&lt;br /&gt;
* 性能/数値計算： mixtureKEpsilonモデルにおける気泡生成乱流の位相分率リミッターにより、気泡が存在しない場合のスプリアス乱流生成を回避 [ commit f84708 ]。多相VoFの制御パラメータを一元化しました[ commit 8af31c ]。&lt;br /&gt;
* 後処理: phaseMap関数オブジェクトは複数のフェーズに対して単一のフェーズマップフィールドを書き込みます[ commit 35a04f ]。&lt;br /&gt;
&lt;br /&gt;
== 反応する多相 ==&lt;br /&gt;
&lt;br /&gt;
==== VTTフィンランドおよびHZDRドレスデン・ローゼンドルフとともに ====&lt;br /&gt;
&lt;br /&gt;
* 統合されたmultiphaseEulerFoam: reactingMultiphaseEulerFoam、twoPhaseEulerFoam、reactingTwoPhaseEulerFoamを複製し置き換える。反応がオフの場合、&amp;quot;古い &amp;quot;multiphaseEulerFoamが再現されます[ commit b83245 ]。位相方程式が解かれない参照相を指定することができ、&amp;quot;古い&amp;quot;(reacting)TwoPhaseEulerFoamが再現されます[ commit d1170c ]。&lt;br /&gt;
* 位相運動量： 暗黙的な相圧力の取り扱いを改善し、粒子床における充填のシミュレーションをよりロバストかつ安定的に行えるようになりました[ commit 3fbd9a ]また、充填床における性能を改善しました[ commit ba6b55 ]。運動論モデルを任意の一対の相に一般化しました[ commit 01f4fa ]。&lt;br /&gt;
* その他の相モデリング： 熱力学、反応、種分率の補正の順序を改善 [ commit 89023d ]。相の速度とフラックスが全体の混合物に対応するように修正 [ commit 27ce5a ]、およびMRF計算 [ commit 658b0c ]。反応相の多成分拡散モデリングをサポートするコード構造を追加 [ commit 854dae ]。&lt;br /&gt;
* 相変化： 熱相変化と境界条件 [ commit 94a5e0 ]。物質移動プロセスの修正[ commit df6835 ]、相ペアの保存とその界面組成モデルの指定の改善[ commit 474962 ]。&lt;br /&gt;
* 人口バランス： 分散相にフラクタル形状を追加 [ commit cfbb38 ]。物質移動速度とソース項の同期化 [ commit cebc40 ]。PrinceBlanch合体モデルに層流せん断を追加 [ commit 6ad711 ]。&lt;br /&gt;
* インターフェース 分散相の粒子について、単位体積あたりの表面積を保存することができます[ commit 8df44a ]。飽和モデルを相のペアに対して指定することができるようになり、異なる界面や壁の異なる相で複数の伝熱過程をシミュレートすることができるようになりました[ commit aedb44 ]。Alberto Passalaqua氏による流動層シミュレーション用の新しいガン熱伝達モデル [ commit 8e2402 ]。alphatWallBoilingWallFunction境界条件を完全に定義しました[ commit 4d0661 ]。&lt;br /&gt;
* 反応： 新しいsurfaceArrheniusReactionRateモデルは、単位体積あたりの表面積の関数である反応速度を提供します[ commit 8c9e46 ]。&lt;br /&gt;
* 乱流: kOmegaSSTSato モデルが完全に動作するようになりました [ commit 8ce466 ]. yPlus が特定のフェーズに対して計算できるようになりました [ commit 02dcff ]. 乱流分散モデルの力を面フラックスから計算 [ commit 124c70 ]。乱流分散モデルを修正 [ commit 64da7a ]。&lt;br /&gt;
* 数値計算：粒子圧の数値処理が改善され、流動床などのシミュレーションが大幅に高速化されました[ commit da429d ]。&lt;br /&gt;
* 境界条件： 相ごとに適用される外部および連成伝熱境界条件 [ commit b494e5 ].&lt;br /&gt;
* チュートリアル: bubblePipe [ commit 2be90f ]. 改良されたチュートリアルでコード修復をテスト [ commit 474962 ]。  新しい damBreak4Phase チュートリアルでインターフェースのキャプチャをデモ [ commit 89439a ]。&lt;br /&gt;
&lt;br /&gt;
== 輸送モデリング ==&lt;br /&gt;
&lt;br /&gt;
* MomentumTransportModels：新しいライブラリは、非圧縮性/圧縮性ニュートン、非ニュートン、粘弾性層流、レイノルズ平均、乱流のラージエディシミュレーションのための運動量方程式のせん断応力を一般化します。&lt;br /&gt;
* ThermophysicalTransportModels:複雑なエネルギーと化学種の輸送モデル、特に多成分拡散を可能にするために作られた新しいライブラリ [ commit 25b348 ]。divjとj関数は物質輸送のための新しいインターフェイスを提供します [ commit b4cf40 ]。&lt;br /&gt;
* 乱流： SpalartAllmaras DESモデルにおいて、一時的な場の保存を減らし、LES領域の書き込みを可能にしました[ commit 4a810c ]。kkLOmega乱流モデルの安定性を改善しました[ commit 3c64dc ]。乱流による質量拡散率を熱拡散率とは別に乱流のプランドル数とシュミット数で指定できるようになりました[ commit 86f2c6 ]。&lt;br /&gt;
* 粘弾性： PTT (Phan-Thien-Tanner) 粘性モデル [ commit 99982d ] およびマルチモード粘弾性モデル [ commit a7eb35 ]。&lt;br /&gt;
* 種： 種が表面に堆積するための新しい吸着境界条件 [ commit bcc867 ]。&lt;br /&gt;
&lt;br /&gt;
== 熱物理モデリング ==&lt;br /&gt;
&lt;br /&gt;
* 熱力学： 熱物理モデリングに分別エンタルピー関数を追加 [ commit 086034 ]。標準状態の混合物のGibbs自由エネルギーを計算するGstd関数を追加 [ commit 73c6f9 ]。液体用の新しい熱物性クラスが追加され、各物性の関数と係数が入力ファイルを通して設定されるようになりました [ commit 375e1f ]。 heSolidThermo 熱物性モデルが更新され、修正された状態係数混合方程式を使用するようになりました [ commit c909bd ]。&lt;br /&gt;
* 状態方程式: rPolynomial (逆多項式) が液体と固体のデータによくフィットし、混合種の係数の計算をサポート [ commit 481797 ]。状態方程式の係数混合を大幅に修正しました[ commit c8d434 ]。比熱容量が圧力一定か体積一定かによって状態方程式からエントロピーのための別々の関数を作成 [ commit fa9ccc ]。&lt;br /&gt;
* データ入力： 熱物性を指定するための一様でないテーブル、高速アドレス指定で最適化 [ commit 73a594 ]。状態方程式、熱力学、輸送モデル用の温度の関数表 [ commit 4c2fae ]。&lt;br /&gt;
* リファクタリング： 熱物理モデルをインスタンス化するためのマクロを書き換え、2,500行のコードを削減 [ commit fe8908 ]。反応物/生成物燃焼混合物から純粋種に基づく混合物を分離 [ commit 80f15b ]。種の特性、例えば絶対エンタルピーをセルレベルではなくフィールドレベルで評価するフレームワークを追加 [ commit e695df ]。&lt;br /&gt;
&lt;br /&gt;
== 表面フィルム ==&lt;br /&gt;
&lt;br /&gt;
* パフォーマンス： 100%保守的に書き換え、30倍高速化 [ commit 0ad918 ]。内部コーナーがある場合の静水圧問題を修正 [ commit 131a9f ]。高い表面張力での収束性[ commit 68a384 ]と安定性[ commit 7d03ae ]を大幅に改善。  強い密度勾配をサポートし、表面コーナーでの以前のエラーを克服 [ commit f6688b ]。&lt;br /&gt;
* 表面： 表面速度が放物線プロファイルを仮定するように修正 [ commit 2b82c3 ]。表面速度と壁速度の取り扱いを合理化、単純化しました[ commit 663970 ]。&lt;br /&gt;
* モデル： チキソトロピックモデルを修正 [ commit 9025e2 ]、ビンガム塑性降伏応力のオプションを追加 [ commit 3d7031 ]。&lt;br /&gt;
&lt;br /&gt;
== 熱伝達 ==&lt;br /&gt;
&lt;br /&gt;
* ケースのセットアップ： chtMultiRegionFoam [ commit a9ddd7 ]に流体や固体の領域を持たないケースのサポートを追加しました。&lt;br /&gt;
* 数値計算： 共役伝熱ソルバーで固体のエンタルピーをエネルギーに変更しました[ commit c109be ]。伝熱および浮力ソルバーにオプションの圧力参照pRefを追加しました。&lt;br /&gt;
* 浮力駆動フロー: Tobias Holzmann氏との共同作業により、DIN ISO EN 7730:2005に基づく熱的快適性のための快適性関数オブジェクトを追加しました [ commit 280c05 ]。buoyantPimpleFoamにメッシュの移動/変更機能を追加しました[ commit 38fff7 ]。&lt;br /&gt;
&lt;br /&gt;
== パーティクルとトラッキング ==&lt;br /&gt;
&lt;br /&gt;
* ソルバー： 非結合ソルバー particleFoam と rhoParticleFoam [ commit 9fd917 ] と関数オブジェクト particles [ commit 9fd917 ] の名前を変更しました。&lt;br /&gt;
* トラッキング： 特にストリームラインなどの後処理において、メッシュが動く場合の効率が向上しました。&lt;br /&gt;
* 注入： Rosin-Rammler粒子分布モデルのクリッピングを改善しました[ commit 8604c1 ]。CellZoneInjection のセル間のパーティクル分布を修正しました [ commit b507f3 ]。&lt;br /&gt;
* モデリング： エトヴェシュ数の計算を修正 [ commit aab3a2 ]。放射線散乱に影響する粒子雲の散乱を修正 [ commit 7e6528 ]。&lt;br /&gt;
&lt;br /&gt;
== Other Modelling ==&lt;br /&gt;
&lt;br /&gt;
* ソルバー： rhoPimpleFoamはrhoSimpleFoamと同じ結果を定常時間スキームで生成し、rhoReactingFoamもSIMPLE操作をサポートするように更新されました[ commit 97cda4 ]。高速での圧縮性流れソルバーのアルゴリズムを改良しました。solidDisplacementFoamが標準的な熱伝導境界条件を使用できるように、標準的な固体熱物理モデリングを使用するように修正しました[ commit 640027 ]。&lt;br /&gt;
* 境界条件(BC)： 新しいentrainmentPressureは、totalPressureが失敗することがある外部境界での優れた安定性を提供します[ commit 6c887b ]。freestreamVelocityの収束が改善されました[ commit f7bcc1 ]. flowWithOpenBoundaryチュートリアルは開いた境界での条件を探索します[ commit 197b14 ]. pressureInletOutletVelocity 境界条件のオプションの tangentialVelocity が時間変化するようになりました [ commit d9fc45 ]。&lt;br /&gt;
* 反応： reactingMixtureをリファクタリングし、反応のリストが反応から派生しないようにしました [ commit 3dc362 ]。singleStepReactingMixtureの機能をsingleStepCombustionクラス内に移動し、反応スキームのインスタンス化をリファクタリングする第一歩としました [ commit b8fcd1 ]。chemistryModel、reactions、ODESolverの反応速度を評価するすべての関数にindex引数を追加しました[ commit 2d0f45 ]。&lt;br /&gt;
* 剛体力学： SeongMo Yeonとの外力拘束 [ commit 278ba8 ].&lt;br /&gt;
* ソース semiImplicitSource fvOption は方程式のソース項を設定するためのもので、スカラー、ベクトル、テンソルに対して一般化され [ commit b6f91d ]、時変関数を可能にする Function1 をサポートしています [ commit 95b5ef ]。&lt;br /&gt;
&lt;br /&gt;
== メッシュ ==&lt;br /&gt;
&lt;br /&gt;
* snappyHexMesh： 例えば小さな隙間の場合 [ commit 4c08b4 ] 、surfaceFeatures [ commit 509f15 ] によって計算されたサーフェスの近さを使用して、サーフェスフィーチャー間のスパンに基づいてリファインメントを制御できるようになりました。&lt;br /&gt;
* blockMesh： 新しい構文により、角度と軸を使用した円弧の指定が可能になりました [ commit 73d253 ]。ブロック面の向きのチェックを改善 [ commit 471810 ]。&lt;br /&gt;
* 数値計算： 面中心の計算が修正され、歪んだセルでの収束が改善されました。magFaceAreas()関数による低レベルメッシュの変更をprimitiveMeshに追加しました[ commit 19d4f1 ]。&lt;br /&gt;
* 結合（巡回）パッチ： トランスフォームの合理化 [ commit 4f0e38 ] およびリファクタリング [ commit 03207b ] を行い、重複した不完全な実装を置き換えた [ commit 87bce8 ]。transformPosition 関数をリファクタリングし、コードの重複を減らし、関連するエラーを取り除きました [ commit 50d135 ]。回転変換の自動計算を改善し [ commit 7010a8 ]、あいまいな代入を削除 [ commit ba52c4 ]。&lt;br /&gt;
* メッシュモーション： メッシュのアンリファインメントによるフィールドのセルフマッピングを修正 [ commit 22bba4 ]。&lt;br /&gt;
* リージョン 平面に最も近い面を選択する topoSet の新しいソース planeToFaceZone [ commit 14e7db ]。&lt;br /&gt;
&lt;br /&gt;
== ファンクション・オブジェクト ==&lt;br /&gt;
&lt;br /&gt;
* 可視化： isoSurface処理でサーフェスの浸食を避けるための修正 [ commit 916d0a ] と、頂点除去のレベルを制御するisoSurfaceのフィルタリングオプション [ commit 916d0a ] を追加。&lt;br /&gt;
* フィールド： fieldAverage 関数オブジェクトのインターフェースの改善 [ commit c60cef ] と設定の簡素化 [ commit 0177c7 ]。新しい faceZoneAverage パッケージ化された関数オブジェクトはフェイスゾーン上のフィールドの平均を計算します [ commit 84a126 ]。 shearStress 関数オブジェクトは体積せん断応力を出力します [ commit c57ffd ]。コアとなるvolFieldValue関数オブジェクトにオプションの重みフィールドを追加しました。&lt;br /&gt;
* 滞留時間：滞留時間を測定する年齢関数オブジェクトは、fvOptions [ commit 73503b ]をサポートし、オプションで拡散と収束のコントロールがあります（Tobias Holzmannと） [ commit a2a74c ]。&lt;br /&gt;
* 設定： 時刻 &amp;quot;0 &amp;quot;のデータを提供するためにシミュレーション開始時に実行するオプション [ commit 2ebed5 ]。  マルチリージョンの場合のファンクションオブジェクトファイルの検索を改善しました[ commit 435b89 ]。  設定ファイルなしで（例えば後処理のために）関数オブジェクトを素早く実行するためのフィールドパラメーターの取り扱いが改善されました [ commit ad12d3 ]。&lt;br /&gt;
&lt;br /&gt;
== ケース構成 ==&lt;br /&gt;
&lt;br /&gt;
* データの可視化： ParaViewリーダーモジュールがサーフェスおよびポイントフィールド[ commit b7c064 ]とボリューム内部フィールド[ commit 67d3a8 ]を可視化できるようになりました; foamToVTKもボリューム内部フィールドをサポートするようになりました[ commit 53e845 ]。foamToVTK で、低レベル書き込み関数を合理化して 3x コードの重複を削除 [ commit 9ff1e2 ]。バイナリ VTK ファイル [ commit 622f47 ] とサンプルサーフェスファイル [ commit 84759e ] の書き込みをサポート。&lt;br /&gt;
* 大文字小文字の初期化： マクロ($)展開を使用して入力ファイルの異なる辞書レベルのデータにアクセスするための新しい &amp;quot;スラッシュ&amp;quot;(/)構文 [ commit a7b842 ] 入力ファイルへの絶対パスのサポートを含む [ commit b7c0cd ] チュートリアル、テンプレートケース、foamDictionaryへの更新 [ commit 26187d ]. aerofoilNACA0012チュートリアルの迎角設定による例示的なcodeStream例 [ commit 17f110 ]。&lt;br /&gt;
* ケース管理： patchSummary ユーティリティがフィールドに適用された境界条件に関する完全な情報を提供するようになりました [ commit 107b5d ]。foamDictionary において、インクルードされたファイルとマクロの展開がデフォルトで無効になりました [ commit c1edb0 ]。 foamCloneCase に並列分解ケースと追加ファイルのオプションが追加されました [ commit f06e13 ]。&lt;br /&gt;
* Function1:コード化されたFunction1により、時間変化するパラメータなどのFunction1をコードで設定できます [ commit 0dd2e9 ]。テーブルと定数関数を読み込むための3つの標準フォーマット [ commit 0d9786 ]. reverseRampは任意のFunction1のランプを1から0に反転できます [ commit 8756e8 ].&lt;br /&gt;
&lt;br /&gt;
== プログラミングと計算 ==&lt;br /&gt;
&lt;br /&gt;
* データ入力: readScalar(dict.lookup(&amp;quot;name&amp;quot;)) を dict.lookup&amp;lt;scalar&amp;gt;(&amp;quot;name&amp;quot;) に簡略化 [ commit 5eaf74 ]。辞書エントリの解析と処理に関する大規模なメンテナンスが行われ、コードがより堅牢で一貫性があり、拡張可能になりました [ コミット 4d8981 ]。複数行の引数リストを含む入力設定の構文を改善した [ commit 7dc08e ]。&lt;br /&gt;
* フィールドとディメンション： フィールドなどの一時的なオブジェクトをキャッシュし、データのさらなる処理と書き込みを可能にしました [ commit fdf121 ]特にフィールドデータ、例えばコード診断のためのモデルソース項や数値リミッターなど [ commit 30cceb ]。dimensionedConstants クラスを大幅に単純化しました [ commit 9513ad ]。&lt;br /&gt;
* アーキテクチャ： Arm ベースのプロセッサ用のコンパイルルールが追加されました [ commit ed9e42 ]。&lt;br /&gt;
* その他の数値計算： 関数オブジェクトによって解かれるフィールド（例えばスカラー輸送フィールド）を時間/反復ループの収束テストに含めることができるようになりました [ commit c6089a ]。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v1912_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=836</id>
		<title>OpenFOAM v1912 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v1912_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=836"/>
		<updated>2023-09-09T12:42:25Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: /* Parallel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenCFDは、OpenFOAM® v1912の2019年12月リリースを発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v1906の機能を拡張しています。新機能は、OpenCFDのお客様がスポンサーとなった開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMは、OpenCFDによってGPLライセンスの下で配布されています：&lt;br /&gt;
&lt;br /&gt;
* Linuxシステム上でコンパイル可能なソースコード&lt;br /&gt;
* Linuxシステム用のコンパイル済みバイナリのインストール&lt;br /&gt;
* Mac OS Xシステム用のコンパイル済みバイナリのインストール&lt;br /&gt;
* MS Windows インストーラ&lt;br /&gt;
* Bash on Ubuntu on Windows (MS Windows 10用)&lt;br /&gt;
&lt;br /&gt;
コードを入手するには、ダウンロード手順を参照してください。&lt;br /&gt;
&lt;br /&gt;
開発用リポジトリは一般に公開されています。これらのメインリポジトリはバグフィックスや新機能で定期的に更新され、最近のメンテナンスでサイズが800MB以上からmasterブランチの200MB程度に大幅に縮小されました。&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
* ユーザー向けのヘルプは、ユーザーアップグレードガイドに記載されています。&lt;br /&gt;
* 開発者向けのヘルプは、開発者向けアップグレードガイドで提供されています。&lt;br /&gt;
* また、典型的なイディオムの理解を深めるために、コーディングパターンに関する文書も作成しました。私たちは喜んでコンテンツを取り込みます！&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== 新しい式の構文 ===&lt;br /&gt;
OpenFOAM-v1912は、swak4Foam（Bernhard Gschaider）によって開拓されたアイデアを使用した式を実装しています。これは、swak4Foam（Bernard Gschaider）によって開発されたアイデアを使用しています。この追加は、辞書構文、文字列評価、境界条件、セットフィールドなど、OpenFOAMのさまざまな部分に浸透しており、今後の発展が期待されます。&lt;br /&gt;
&lt;br /&gt;
例えば、式は、正規文字列展開に数学的評価を埋め込むことを可能にします：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;&amp;lt;system&amp;gt;/sampling${{ round(${flowRate:-5} * 100) }}&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;その中核となるのが、このエクスプレッション機能である：&lt;br /&gt;
&lt;br /&gt;
* SQLiteプロジェクトのLemon Parser Generator - &amp;lt;nowiki&amp;gt;https://www.sqlite.org/lemon.html&amp;lt;/nowiki&amp;gt; を参照。&lt;br /&gt;
* Ragelステートマシン・コンパイラ - &amp;lt;nowiki&amp;gt;http://www.colm.net/open-source/ragel/&amp;lt;/nowiki&amp;gt; を参照。&lt;br /&gt;
&lt;br /&gt;
'''Source code'''&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/OpenFOAM/include/m4&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/src/OpenFOAM/expressions&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/src/finiteVolume/expressions&lt;br /&gt;
&lt;br /&gt;
=== 辞書のインライン表現 ===&lt;br /&gt;
辞書入力に関する大きな変更点は、式の追加に関連する新しい#evalディレクティブである。多くの場合、#evalは#calcを直接置き換えることができ、速度を大幅に向上させることができる。比較として、以下の10回の評価では、#calcでは16秒かかったのに対し、#evalでは0.02秒しかかからなかった。&lt;br /&gt;
&lt;br /&gt;
この機能は辞書の見方を変えるだろう。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kgh     700;&lt;br /&gt;
split   0.4;&lt;br /&gt;
inlet1&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
   type            flowRateInletVelocity;&lt;br /&gt;
   massFlowRate    constant #eval{ $split * $kgh / 3600 };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
inlet2&lt;br /&gt;
{&lt;br /&gt;
   type            flowRateInletVelocity;&lt;br /&gt;
   massFlowRate    constant #eval{ (1-$split) * $kgh / 3600 };&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;さらなる例は、v1912ユーザーアップグレードガイドに記載されています。&lt;br /&gt;
&lt;br /&gt;
'''Source code'''&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/OpenFOAM/db/dictionary/functionEntries/evalEntry&lt;br /&gt;
&lt;br /&gt;
'''Tutorial'''&lt;br /&gt;
&lt;br /&gt;
これまで#calcを使用していたチュートリアルはすべて#evalを使用するようになりました。&lt;br /&gt;
&lt;br /&gt;
=== 新しい式ベースの setFields ユーティリティ ===&lt;br /&gt;
この式は、setExprFieldsとsetExprBoundaryFieldsという新しいユーティリティをサポートしており、似たような名前のswak4Foamのファンキーなユーティリティと同じような役割を果たします。&lt;br /&gt;
&lt;br /&gt;
setExprFieldsは、フィールドの設定に図形と選択を使う代わりに、条件と式の組み合わせを使う。条件が有効な場合にのみ、式の結果が適用される。例えば、以下のようにすると、定義されたゾーン内の温度が調整される：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
expressions&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
   T&lt;br /&gt;
   {&lt;br /&gt;
       field       T;&lt;br /&gt;
       dimensions  [0 0 0 1 0 0 0];&lt;br /&gt;
       constants&lt;br /&gt;
       {&lt;br /&gt;
           centre (0.21 0 0.01);&lt;br /&gt;
       }&lt;br /&gt;
       variables&lt;br /&gt;
       (&lt;br /&gt;
           &amp;quot;radius = 0.1&amp;quot;&lt;br /&gt;
       );&lt;br /&gt;
       condition&lt;br /&gt;
       #{&lt;br /&gt;
           // Within the radius&lt;br /&gt;
           (mag(pos() - $[(vector)constants.centre]) &amp;lt; radius)&lt;br /&gt;
           // but only +ve y!&lt;br /&gt;
         &amp;amp;&amp;amp; bool(pos((pos() - $[(vector)constants.centre]).y()))&lt;br /&gt;
       #};&lt;br /&gt;
       expression&lt;br /&gt;
       #{&lt;br /&gt;
           300&lt;br /&gt;
         + 200 * (1 - mag(pos() - $[(vector)constants.centre]) / radius)&lt;br /&gt;
       #};&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;setExprBoundaryFieldsユーティリティは、バウンダリ・フィールド・エントリをカスタムで変更するための同様の目的を果たす。&lt;br /&gt;
&lt;br /&gt;
'''Tutorials'''&lt;br /&gt;
&lt;br /&gt;
$FOAM_TUTORIALS/compressible/rhoPimpleFoam/RAS/TJunctionAverage&lt;br /&gt;
&lt;br /&gt;
=== '''PDRFoam用の新しいセットフィールド・ユーティリティ''' ===&lt;br /&gt;
新しいPDRsetFieldsユーティリティはPDRFoamソルバーで使用する閉塞のテンソル抵抗を計算します。ジオメトリはPDRsetFieldsDictファイルを使ってプリミティブ形状の形で入力されます：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
// Data dictionary for PDRsetFields&lt;br /&gt;
&lt;br /&gt;
// Replace by the relevant names&lt;br /&gt;
&lt;br /&gt;
obsFileDir      &amp;quot;&amp;lt;case&amp;gt;/geometry&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
obsFileNames    (obstaclesDict);&lt;br /&gt;
&lt;br /&gt;
// legacyObsSpec   true;&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// obsFileNames    (position.obs base.obs);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;障害物は、obsFileNamesエントリーの下にリストされた個別のファイルで提供される。以下のような様々なタイプの障害物がサポートされている：&lt;br /&gt;
&lt;br /&gt;
* cylinder&lt;br /&gt;
* diagonal beam&lt;br /&gt;
* cuboid&lt;br /&gt;
* grating&lt;br /&gt;
* louvre&lt;br /&gt;
* patch&lt;br /&gt;
&lt;br /&gt;
以下に障害物の例を示す：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_UTILITIES//utilities/preProcessing/PDRsetFields&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_UTILITIES/combustion/PDRFoam/pipeLattice&lt;br /&gt;
&lt;br /&gt;
=== checkMeshから出力される壁の距離 ===&lt;br /&gt;
checkMesh ユーティリティのオプション -writeAllFields が拡張され、壁距離をフィールド wallDistance として書き込むようになりました。これは、system/fvSchemes辞書で壁距離法が選択されていることを必要とします：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wallDist&lt;br /&gt;
{&lt;br /&gt;
   method meshWave;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;wallDistanceは壁パッチのSMALL(1e-15)に設定され、paraFoamなどで後処理することができます：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_UTILITIES/mesh/manipulation/checkMesh&lt;br /&gt;
&lt;br /&gt;
== snappyHexMesh : 細いギャップを自動的に閉じる ==&lt;br /&gt;
複雑な形状のメッシュを作成する際、ユーザがメッシュを必要としない薄いギャップがあるかもしれません。このリリースではsnappyHexMeshは面毎、面領域毎にメッシュするギャップの最小サイズを指定するblockLevelを指定することができます。この指定されたサイズより小さいギャップ内のセルは削除されます（その結果、ギャップ内のセルはなくなります）。&lt;br /&gt;
&lt;br /&gt;
この拡張機能は以下の構文で有効になる：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
refinementSurfaces&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;gap.*&amp;quot;&lt;br /&gt;
   {&lt;br /&gt;
       // Surface-wise min and max refinement level&lt;br /&gt;
       level       (2 2);&lt;br /&gt;
&lt;br /&gt;
       // From cell level 2 onwards start checking&lt;br /&gt;
       // for opposite surfaces&lt;br /&gt;
       blockLevel  2;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;blockLevel 設定は以下を決定する。&lt;br /&gt;
&lt;br /&gt;
* ギャップ検知にサーフェスが全く使用されていないかどうか。&lt;br /&gt;
* 理想的なギャップの大きさ：2 * cellize; ここで、cellize は初期セルサイズから blockLevel を何倍かにリファインして決定される。&lt;br /&gt;
&lt;br /&gt;
全てのサーフェス精密化snappyHexMeshの後、シェル/ボリュームの精密化の前に、全てのセルについて最も近い2つのサーフェスを決定します。もしセルが&lt;br /&gt;
&lt;br /&gt;
* 2つの面の間、または同じ面の切り離された領域&lt;br /&gt;
* であり、対向点間の距離はギャップサイズより小さい。&lt;br /&gt;
&lt;br /&gt;
の場合、セルは削除される。&lt;br /&gt;
&lt;br /&gt;
チュートリアルのopposite_wallsは、薄いギャップを形成する2つの表面を持つ単純なブロックです。&lt;br /&gt;
&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/mesh/snappyHexMesh/opposite˙walls&lt;br /&gt;
&lt;br /&gt;
== 数値 ==&lt;br /&gt;
&lt;br /&gt;
=== 新しい随伴形状最適化 ===&lt;br /&gt;
アジョイント・ライブラリは、自動化された形状最適化ループを可能にする新機能で強化されている。&lt;br /&gt;
&lt;br /&gt;
これは、OpenFOAMのガバナンス・フレームワークの下、OpenFOAM-v1906でリリースされたアジョイント最適化ツールの続編です。&lt;br /&gt;
&lt;br /&gt;
体積Bスプラインに基づくパラメータ化スキームが導入され、その制御点は最適化ループにおける設計変数として機能する（下記参照）。ボリューメトリックBスプラインボックスの制御点は、直交座標または円筒座標で定義できます。&lt;br /&gt;
&lt;br /&gt;
ループ全体（流体方程式とアジョイント方程式の解法，感度導関数の計算，設計変数とメッシュの更新）は，adjointOptimisationFoam ソルバー内で実行されます．設計変数を更新するために，BFGS のような一般的な準ニュートン法や，SQP や拘束射影のような拘束を扱える方法など，多くの方法が実装されています．&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SOLVERS/incompressible/adjointOptimisationFoam $FOAM_SRC/optimisation/adjointOptimisation/adjoint&lt;br /&gt;
; Examples&lt;br /&gt;
: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam&lt;br /&gt;
; Attribution&lt;br /&gt;
: このソフトウェアはPCOpt/NTUAとFOSS GPによって開発され、以下の人々からの貢献があった。&lt;br /&gt;
:* Dr Evangelos Papoutsis-Kiachagias,&lt;br /&gt;
:* Konstantinos Gkaragounis,&lt;br /&gt;
:* Professor Kyriakos Giannakoglou,&lt;br /&gt;
:* Dr Andrew Heather&lt;br /&gt;
; References&lt;br /&gt;
:* E.M. Papoutsis-Kiachagias, N. Magoulas, J. Mueller, C. Othmer, K.C. Giannakoglou: ’Noise Reduction in Car Aerodynamics using a Surrogate Objective Function and the Continuous Adjoint Method with Wall Functions’, Computers &amp;amp; Fluids, 122:223-232, 2015&lt;br /&gt;
:* E. M. Papoutsis-Kiachagias, V. G. Asouti, K. C. Giannakoglou, K. Gkagkas, S. Shimokawa, E. Itakura: Multi-point aerodynamic shape optimization of cars based on continuous adjoint, Structural and Multidisciplinary Optimization, 59(2):675694, 2019&lt;br /&gt;
; Integration&lt;br /&gt;
: コードはOpenCFDとNTUAが共同で統合した。&lt;br /&gt;
&lt;br /&gt;
=== 新しい重み付き磁束補間スキーム ===&lt;br /&gt;
新しいweightedFlux補間スキームは、重み付けされたフラックスを用いる線形スキームである。&lt;br /&gt;
&lt;br /&gt;
次のような一般的なフラックスの場合：&lt;br /&gt;
&lt;br /&gt;
の面値を必要とするガウスの定理を用いて勾配を計算する。 これは次のように計算される：&lt;br /&gt;
&lt;br /&gt;
どこ:&lt;br /&gt;
&lt;br /&gt;
* φi is the cell value&lt;br /&gt;
* φfis the face value&lt;br /&gt;
*&lt;br /&gt;
* σi is the diffusivity coefficient&lt;br /&gt;
&lt;br /&gt;
不連続の場合、線形補間は正しくないフラックスを生成する。weightedFlux補間スキームは、Tの調和補間と組み合わせて以下のように使用される。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
laplacianSchemes&lt;br /&gt;
{&lt;br /&gt;
   laplacian(DT,T) Gauss harmonic corrected;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
gradSchemes&lt;br /&gt;
{&lt;br /&gt;
   grad(T)     Gauss weightedFlux sigma;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;上記の例では、以下のように滑らかな温度と熱流束のプロファイルが得られる：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/finiteVolume/interpolation/surfaceInterpolation/schemes/weightedFlux&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/verificationAndValidation/schemes/weigthedFluxExample&lt;br /&gt;
; Attribution&lt;br /&gt;
: このスキームはノルベルト・ウェーバーの寄稿によるものである。&lt;br /&gt;
; References&lt;br /&gt;
:* Weber, N.; Beckstein, P.; Galindo, V.; Starace, M.; Weier, T.: Electro-vortex flow simulation using coupled meshes, Computers and Fluids 168(2018) 101-109&lt;br /&gt;
:* For more details see the Issue tracker&lt;br /&gt;
&lt;br /&gt;
=== 混合精度モードでのジオメトリ処理の改善 ===&lt;br /&gt;
OpenFOAM-v1906で導入された混合精度モード(SPDP)により、倍精度で実行する場合に比べ、大幅なスピードアップとメモリ要件の削減が可能になります。&lt;br /&gt;
&lt;br /&gt;
混合精度モードでは、線形ソルバーだけが倍精度で動作する。他の機能はすべて単精度で実行されます。これにより、例えばcheckMeshを使用した場合、完全に有効なクローズドセルがオープンセルとして表示される可能性があります。単精度(SP)で実行すると、以下のようなレポートが表示されます：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
***Boundary openness (3.77976e-07 3.97566e-06 -2.26237e-08) possible hole in boundary description.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;このバージョンでは、倍精度計算が次のように拡張されています。&lt;br /&gt;
&lt;br /&gt;
* 面の中心と面積、セルの中心と体積の計算。実際の結果はまだ単精度で保存されていることに注意してください。&lt;br /&gt;
* ほとんどのcheckMeshの合計、例えばオープンセルの上。&lt;br /&gt;
* すべてのフィールドベースの合計（sum）。&lt;br /&gt;
&lt;br /&gt;
これらの変更はSPDPモードにのみ影響することに注意。前の例では、次のように報告されている：&lt;br /&gt;
&lt;br /&gt;
境界の開き (-6.31099e-11 -3.99859e-11 -3.747e-10) OK.&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCellCentresAndVols.C $FOAM_SRC/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshFaceCentresAndAreas.C&lt;br /&gt;
&lt;br /&gt;
== ソルバーと物理モデル ==&lt;br /&gt;
&lt;br /&gt;
=== 新しいインターフェイス追跡ダイナミック・メッシュ ===&lt;br /&gt;
このリリースには、foam-extendプロジェクトのムービングメッシュインターフェーストラッキングライブラリが統合されています。OpenFOAM v1912への移植は、Zeljko Tukovic (FMENA, Zagreb)がOpenCFD Ltd.と共同で行いました。&lt;br /&gt;
&lt;br /&gt;
基本的な機能は、interfaceTrackingFvMeshクラスによって実装されています。自由表面における運動学的および動的条件は、速度と圧力のカスタム境界条件によって課されます。界面追跡計算は、標準的なpimpleFoamソルバーを使用して実行されます。&lt;br /&gt;
&lt;br /&gt;
下の例は、汚染され、擾乱を受けた液滴の濃度と形状の変化を示している。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/dynamicFaMesh/interfaceTrackingFvMesh&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/contactAngleCavity $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/contaminatedDroplet2D&lt;br /&gt;
; References&lt;br /&gt;
: Z. Tukovic and H. Jasak. A moving mesh finite volume interface tracking method for surface tension dominated interfacial fluid flow. Computers &amp;amp; fluids. 55 (2012) 70-84.&lt;br /&gt;
; Attribution&lt;br /&gt;
: Code written and contributed by Zeljko Tukovic&lt;br /&gt;
&lt;br /&gt;
=== 新しい6自由度（DoF）機能 ===&lt;br /&gt;
&lt;br /&gt;
===== 新しいlinearSpringDamper拘束モデル =====&lt;br /&gt;
6自由度ライブラリには、新しいlinearSpringDamperモデルが含まれています。&lt;br /&gt;
&lt;br /&gt;
これはスプリングダンパーシステムで、アンカーとrefAttachmentPt間の距離がrestLengthを超えたときに「ソフトな」ロープ拘束として機能する。&lt;br /&gt;
&lt;br /&gt;
ロープがたるんでいるときは、体に力はかからない。dynamicMeshDictでの指定は以下の通り：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
restraints&lt;br /&gt;
{&lt;br /&gt;
   chain&lt;br /&gt;
   {&lt;br /&gt;
       sixDoFRigidBodyMotionRestraint  linearSpringDamper;&lt;br /&gt;
       refAttachmentPt     (3.7 4.2 4.5);&lt;br /&gt;
       anchor              table&lt;br /&gt;
       (&lt;br /&gt;
           (0         (3.7 4.2 6.5))&lt;br /&gt;
           (2         (4.7 4.2 6.5))&lt;br /&gt;
           (6         (5.7 4.2 4.5))&lt;br /&gt;
           (8         (6.7 4.2 4.5))&lt;br /&gt;
       );&lt;br /&gt;
       psi                 1;&lt;br /&gt;
       wn                  8.28;&lt;br /&gt;
       numberOfChains      4;&lt;br /&gt;
       restLength          2;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;どこだ？&lt;br /&gt;
&lt;br /&gt;
* refAttachmentPtはソリッドオブジェクトへのアタッチメントポイントです。&lt;br /&gt;
* anchorはロープのアンカーで、Function1の時間依存の項目として指定される。&lt;br /&gt;
* psiは減衰比。&lt;br /&gt;
* wnは、システムの減衰していない固有振動数である。&lt;br /&gt;
* numberOfChainsは、ボディに取り付けられているチェーンの数。&lt;br /&gt;
* restLength はロープの残りの長さ。&lt;br /&gt;
&lt;br /&gt;
システムの減衰と剛性は次のように計算される：&lt;br /&gt;
&lt;br /&gt;
注：psiとwnは、柔らかいロープの挙動をモデル化するために、過減衰系に対して設定されるべきである。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/restraints/linearSpringDamper&lt;br /&gt;
&lt;br /&gt;
===== 新しいソフト・ウォール・サスペンション =====&lt;br /&gt;
新しいソフトウォールモデルは、壁法線方向のアンカーとrefAttachmentPt間の距離が負になったときに「ソフト」な壁として機能するダンパー-線形-バネ拘束です。&lt;br /&gt;
&lt;br /&gt;
ロープがたるんでいるときは、体に力はかからない。dynamicMeshDictでの指定は以下の通り：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
restraints&lt;br /&gt;
{&lt;br /&gt;
   upperWall&lt;br /&gt;
   {&lt;br /&gt;
       type                    softWall;&lt;br /&gt;
       body                    floatingObject;&lt;br /&gt;
       anchor                  (0.5 0.5 0.7);&lt;br /&gt;
       refAttachmentPt         (0.5 0.5 0.58);&lt;br /&gt;
       wallNormal              (0 0 -1);&lt;br /&gt;
       psi                     2.0;&lt;br /&gt;
       C                       0.01;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;どこ:&lt;br /&gt;
&lt;br /&gt;
* refAttachmentPtは、ソリッドオブジェクトへのアタッチメントポイントです。&lt;br /&gt;
* アンカーはロープの錨である。&lt;br /&gt;
* psiは減衰比&lt;br /&gt;
* wallNormal は壁の法線方向&lt;br /&gt;
* Cはモデル定数&lt;br /&gt;
&lt;br /&gt;
システムの減衰と剛性は次のように計算される：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/rigidBodyDynamics/restraints/softWall&lt;br /&gt;
&lt;br /&gt;
===== オーバーセットされたダイナミックメッシュのための新しいマルチモーション機能 =====&lt;br /&gt;
オーバーセット・ダイナミック・メッシュが複数のモーション・タイプを扱えるようになりました。これにより、ユーザーは異なるモーション・ソルバーのアクションで異なるオブジェクトを動かすことができます。&lt;br /&gt;
&lt;br /&gt;
一例を挙げよう：&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/multiphase/overInterDyMFoam/floatingBodyWithSpring&lt;br /&gt;
&lt;br /&gt;
dynamicMeshDict辞書の中で、dynamicOversetFvMeshは2つのモーション・ソルバーを持っています：&lt;br /&gt;
&lt;br /&gt;
* 新しいdrivenLinearMotionを使ったsolidBody（下記参照）&lt;br /&gt;
* sixDoFRigidBodyMotion&lt;br /&gt;
&lt;br /&gt;
チュートリアルでは、2つのモーション・ソルバーが異なるセルセットに適用される。&lt;br /&gt;
&lt;br /&gt;
cubeという名前のソルバーは、モーション・ソルバーsixDoFRigidBodyMotionを使用するfloatingObjectです。新しいキーワードCofGvelocityは、drivenLinearMotionソルバーで使用するオブジェクトの重心速度を書き込む。&lt;br /&gt;
&lt;br /&gt;
新しいdrivenLinearMotionモーションソルバは剛体タイプで、エントリーCofGvelocityに従って点を移動します。このチュートリアルでは、オーバーセット計算の背景メッシュに対応するc0セルセットに適用します。&lt;br /&gt;
&lt;br /&gt;
drivenLinearMotionは、オーバーセット計算の &amp;quot;inset &amp;quot;領域で、与えられたオブジェクトに &amp;quot;追従する &amp;quot;背景メッシュを設定することができます。これは、オブジェクトの予想される変位が大きい場合にメッシュサイズを小さくするのに役立ちます。&lt;br /&gt;
&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/multiphase/overInterDyMFoam/floatingBodyWithSpring&lt;br /&gt;
&lt;br /&gt;
=== 新しい平行放射モデル ===&lt;br /&gt;
&lt;br /&gt;
===== fvDOM用の新しい平行太陽ビームモデル =====&lt;br /&gt;
fvDOM放射モデルに、太陽外部負荷からの外部ビームのサポートが追加されました。この効果はfvDOMモデルの光線に追加され、radiationProperties辞書の新しい項目useExternalBeamをtrueに設定することで有効になります。&lt;br /&gt;
&lt;br /&gt;
fvDOMの光線立体角は、角度離散化に従って最適な光線方向と一致するように回転される。&lt;br /&gt;
&lt;br /&gt;
線源のエネルギー・スペクトルを得るには、以下のエントリーを使用する：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
spectralDistribution (2 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;注：spectralDistributionのバンド数は、吸収率モデルのバンド数と一致する必要があります。つまり、boundaryRadiationPropertiesのmultiBandAbsorptionです：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
type       opaqueDiffusive;&lt;br /&gt;
wallAbsorptionEmissionModel&lt;br /&gt;
{&lt;br /&gt;
   type            multiBandAbsorption;&lt;br /&gt;
   absorptivity    (0.3 0.7);&lt;br /&gt;
   emissivity      (0.3 0.7);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;輻射境界条件の例では、不透明な拡散壁と、2つのバンドを用いたマルチバンド吸収モデルを指定しています。&lt;br /&gt;
&lt;br /&gt;
コリメートモデルは、solarLoad放射モデルと併用しないでください。&lt;br /&gt;
&lt;br /&gt;
コリメートモデルは、太陽計算機を使用して太陽の方向とエネルギー束を導きます。標準モデルは、solarLoad放射モデルと同様に使用できます。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/thermophysicalModels/radiation/radiationModels/fvDOM&lt;br /&gt;
&lt;br /&gt;
===== 新しいマルチバンドゾーン吸収発光モデル =====&lt;br /&gt;
新しいmultiBandZoneAbsorptionEmissionモデルは、領域内の不均一な吸収率および放射率フィールドの使用を可能にします。例えば、2つのバンドモデルの場合：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
multiBandZoneAbsorptionEmissionCoeffs&lt;br /&gt;
{&lt;br /&gt;
   absorptivity  (0.01 0.01);&lt;br /&gt;
   emissivity    (0.01 0.01);&lt;br /&gt;
   zones&lt;br /&gt;
   {&lt;br /&gt;
       absorptivity  (&amp;quot;trees&amp;quot; (20 20));&lt;br /&gt;
       emissivity    (&amp;quot;trees&amp;quot; (20 20));&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この例では、背景メッシュに(0.01 0.01)、樹木というゾーンに(20 20)の吸収率を設定している。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/thermophysicalModels/radiation/submodels/absorptionEmissionModel/absorptionEmissionModel/multiBandZoneAbsorptionEmission&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/heatTransfer/chtMultiRegionFoam/solarBeamWithTrees&lt;br /&gt;
&lt;br /&gt;
=== 新しい多相乱流安定化 ===&lt;br /&gt;
乱流の運動エネルギーは、非圧縮VOFソルバーにおいて、表面波下のほぼポテンシャル流領域において、位相界面および水柱全体で過剰に予測される。&lt;br /&gt;
&lt;br /&gt;
この挙動は、乱流運動エネルギー方程式と乱流粘性場に補正を適用する新しいmultiphaseStabilizedTurbulence fvOptionを使用して補正されます。&lt;br /&gt;
&lt;br /&gt;
を使って指定する：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
multiphaseStabilizedTurbulence1&lt;br /&gt;
{&lt;br /&gt;
   type            multiphaseStabilizedTurbulence;&lt;br /&gt;
   active          yes;&lt;br /&gt;
   multiphaseStabilizedTurbulenceCoeffs&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
       // Optional coefficients&lt;br /&gt;
       lambda2         0.1;   // A value of 0 sets the nut correction to 0&lt;br /&gt;
       Cmu             0.09;  // from k-epsilon model&lt;br /&gt;
       C               1.51;  // model coefficient from k-omega model&lt;br /&gt;
       alpha           1.36;  // 1/Prt&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/fvOptions/sources/derived/multiphaseStabilizedTurbulence&lt;br /&gt;
; References&lt;br /&gt;
:* Devolder, B., Rauwoens, P., and Troch, P. (2017). Application of a buoyancy-modified k-w SST turbulence model to simulate wave run-up around a monopile subjected to regular waves using OpenFOAM. Coastal Engineering, 125, 81-94.&lt;br /&gt;
:* Larsen, B.E. and Fuhrman, D.R. (2018). On the over-production of turbulence beneath surface waves in Reynolds-averaged Navier-Stokes models J. Fluid Mech, 853, 419-460&lt;br /&gt;
; Attribution&lt;br /&gt;
:* OpenCFDによる実装&lt;br /&gt;
:* Turbulence Technical Committee、およびBjarke Eltard-LarsenとDavid Fuhrman（デンマーク工科大学）による有益な議論とコードテストに感謝する。&lt;br /&gt;
&lt;br /&gt;
=== 新しいk-epsilon-phit-f乱流モデル ===&lt;br /&gt;
Laurenceら, 2005）の研究に基づき、kEpsilonPhitFと名付けられた楕円緩和関数を用いた新しい3輸送方程式線形渦粘性RANS乱流クロージャーモデルが実装されました。&lt;br /&gt;
&lt;br /&gt;
kEpsilonPhitFは、(Durbin, 1995)のv2-f手法に由来するkEpsilonベースのモデルである。v2-f手法の主な利点は、渦粘性モデルの最小限の定式化を維持しながら、線形渦粘性モデルとレイノルズ応力方程式モデルの中間を提供することであると報告されています。このことは、壁面距離や低レイノルズ数型の修正を行うことなく、壁面に向かって壁面法線速度スケールが放物線状に減衰することをシミュレーションに依存せずに再現できることに現れています。&lt;br /&gt;
&lt;br /&gt;
しかし、v2-fモデルの大半は、特に壁境界において、v2場とf場の連成の定式化により、分離解法アルゴリズムでは数値的に厳しいことが判明した。&lt;br /&gt;
&lt;br /&gt;
この欠点にもかかわらず、v2-fモデルは、さまざまな非平衡／非局所効果を示す流れ、強い圧力勾配、分離、衝突を伴う流れ、熱伝達を含む乱流場への変動圧力の影響など、幅広い一般的な流れの特性をうまく再現することが確認されている。&lt;br /&gt;
&lt;br /&gt;
LienとKalitzin, 2001）によるv2-fモデル（すなわちOpenFOAMのv2fモデル）は、分離計算を可能にするためにオリジナルのv2-fモデルを再定義したものであるが、モデルの忠実度に関する多くの欠点が文献に報告されている。&lt;br /&gt;
&lt;br /&gt;
v2-f手法の欠点を克服するために、v2-f手法は(Hanjali et al., 2004)と(Laurence et al., 2005)によって再評価され、同時に、スケールを等価な無次元形式に変換することによって、すなわち数値的な剛性を低減することによって再評価された。これらの変種は、オリジナルのv2-fモデルの理論的なモデルの忠実性を保持しながら、数値的なロバスト性と格子異常に対する鈍感性を提供すると考えられた。&lt;br /&gt;
&lt;br /&gt;
kEpsilonPhitFモデルはベータ段階であることにご注意ください。今後、モデルの内部的な変更が行われる可能性もありますし、行われない可能性もあります。さらに、OpenFOAMで利用可能なv2fモデルは、kEpsilonPhitFまたは他のv2-fモデルのバリエーションに取って代わられる予定です。&lt;br /&gt;
&lt;br /&gt;
kEpsilonPhitFモデルの実装は，平滑壁平面流路流（），ゼロ圧力勾配乱流平板，2次元後向きステップ，流路内2次元丘の正準流によって検証された．&lt;br /&gt;
&lt;br /&gt;
例として、3つの検証プロットを以下に示す：&lt;br /&gt;
&lt;br /&gt;
モデル方程式、実装、使用法に関するより詳細な情報は、（拡張コードガイドのkEpsilonPhitFセクション）にあります。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/TurbulenceModels/turbulenceModels/RAS/kEpsilonPhitF&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/incompressible/simpleFoam/RAS/bump2D&lt;br /&gt;
; Attribution&lt;br /&gt;
: OpenCFD は、有益な議論と有益な示唆を与えてくれた Mirza Popovac 博士 (オーストリア工科大学) に感謝したい。&lt;br /&gt;
&lt;br /&gt;
=== 雪崩モデリング・モジュールの更新 ===&lt;br /&gt;
冬が近づくにつれ、雪崩モデリング・モジュールでは、RAMMSモデル（Christen et al, 2010）の実装やMedinaモデルの安定性の改善など、巻き込みモデルの更新が行われた。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;https://develop.openfoam.com/Development/openfoammodules/avalanche&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
; Attribution&lt;br /&gt;
: The avalanche code is developed by Matti Rauter&lt;br /&gt;
&lt;br /&gt;
=== 液体の新しい状態方程式 ===&lt;br /&gt;
液体と固体のための逆多項式状態方程式rPolynomialはopenfoam.orgから統合され、以下の形式を持つ：&lt;br /&gt;
&lt;br /&gt;
新しいオプションは、thermophysicalProperties辞書で次のように指定される：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
thermoType&lt;br /&gt;
{&lt;br /&gt;
   type            heRhoThermo;&lt;br /&gt;
   mixture         pureMixture;&lt;br /&gt;
   transport       const;&lt;br /&gt;
   thermo          hConst;&lt;br /&gt;
   equationOfState rPolynomial; // new entry&lt;br /&gt;
   specie          specie;&lt;br /&gt;
   energy          sensibleInternalEnergy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
mixture&lt;br /&gt;
{&lt;br /&gt;
   specie&lt;br /&gt;
   {&lt;br /&gt;
       molWeight   18.0;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   equationOfState&lt;br /&gt;
   {&lt;br /&gt;
       // Coefficients for the reciprocal polynomial equation of state&lt;br /&gt;
       C (0.001278 -2.1055e-06 3.9689e-09 4.3772e-13 -2.0225e-16);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   thermodynamics&lt;br /&gt;
   {&lt;br /&gt;
       Cp          4195;&lt;br /&gt;
       Hf          0;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   transport&lt;br /&gt;
   {&lt;br /&gt;
       mu          3.645e-4;&lt;br /&gt;
       Pr          2.289;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/src/thermophysicalModels/specie/equationOfState/rPolynomial&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.water&lt;br /&gt;
; Attribution&lt;br /&gt;
: モデルはopenfoam.orgから統合された。&lt;br /&gt;
&lt;br /&gt;
== 境界条件 ==&lt;br /&gt;
&lt;br /&gt;
=== ニューウェーブ・モデル ===&lt;br /&gt;
このリリースでは、OpenFOAM v1812で導入されたwaveMaker条件を拡張し、パドルの数を選択して3次元波を生成します。3次元フラップ波生成の例を以下に示します。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/waveModels/derivedPointPatchFields/waveMaker&lt;br /&gt;
; Examples&lt;br /&gt;
: $FOAM_TUTORIALS/multiphase/interFoam/laminar/waves/waveMakerMultiPaddleFlap $FOAM_TUTORIALS/multiphase/interFoam/laminar/waves/waveMakerMultiPaddlePiston&lt;br /&gt;
; Attribution&lt;br /&gt;
: これらの拡張機能はEnvironmental Hydraulics Institute IHCantabriaから提供されたもので、コミットd0c5662172を参照： ガブリエル・バラハス&lt;br /&gt;
; Integration&lt;br /&gt;
: このコードは OpenCFD によって統合されました - マージリクエスト 317 を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 新しい式に基づく境界条件 ===&lt;br /&gt;
式が境界条件を満たす場所： exprFixedValue境界条件とexprMixed境界条件。&lt;br /&gt;
&lt;br /&gt;
これらの境界条件は、値、勾配、分数を式としてサポートする。例えば&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
outlet1&lt;br /&gt;
{&lt;br /&gt;
   type            exprFixedValue;&lt;br /&gt;
   value           $internalField;&lt;br /&gt;
   valueExpr       &amp;quot;0.5*(pInlet + pOutlet2)&amp;quot;;&lt;br /&gt;
   variables&lt;br /&gt;
   (&lt;br /&gt;
       &amp;quot;pInletinlet = weightAverage(p)&amp;quot;&lt;br /&gt;
       &amp;quot;pOutlet2outlet2 = p&amp;quot;&lt;br /&gt;
   );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Tutorials&lt;br /&gt;
: $FOAM_TUTORIALS/compressible/rhoPimpleFoam/RAS/TJunctionAverage&lt;br /&gt;
&lt;br /&gt;
=== 新しいスケール境界条件ラッパー ===&lt;br /&gt;
これは、任意の（固定値）境界条件に、時間または空間で変化するスケーリングを追加するためのラッパーです。uniformFixedValueのすべての機能が追加されています。下の例では、patch エントリを使用して指定された標準的な fixedValue 境界条件を変更し、scale エントリに従ってスケールを適用します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;patchName&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   type            scaledFixedValue;&lt;br /&gt;
   scale table&lt;br /&gt;
   (&lt;br /&gt;
       (    0   0)&lt;br /&gt;
       (  1.0 1.0)&lt;br /&gt;
       (100.0 1.0)&lt;br /&gt;
   );&lt;br /&gt;
&lt;br /&gt;
   patch&lt;br /&gt;
   {&lt;br /&gt;
       type            fixedValue;&lt;br /&gt;
       value           uniform (15 0 0);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;スケールの項目はPatchFunction1であり、以下のような複数のオプションがある：&lt;br /&gt;
&lt;br /&gt;
* constant&lt;br /&gt;
* csvFile&lt;br /&gt;
* mappedFile&lt;br /&gt;
* polynomial&lt;br /&gt;
* sampled&lt;br /&gt;
* scale&lt;br /&gt;
* sine&lt;br /&gt;
* square&lt;br /&gt;
* table&lt;br /&gt;
* tableFile&lt;br /&gt;
* uniformValue&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/finiteVolume/fields/fvPatchFields/derived/scaledFixedValue&lt;br /&gt;
&lt;br /&gt;
== 後処理 ==&lt;br /&gt;
&lt;br /&gt;
=== パーティクルの後処理の改善 ===&lt;br /&gt;
&lt;br /&gt;
===== クラウドパッチ相互作用モデル =====&lt;br /&gt;
オプションでwriteToFileエントリーを使用して、パッチ相互作用の統計情報、例えば、くっついたり、逃げたりした粒子の数と質量をファイルに書き込みます。例として、localInteraction粒子パッチ相互作用モデルを使用する場合、新しいエントリーを次のように追加することができます：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
localInteractionCoeffs&lt;br /&gt;
{&lt;br /&gt;
   patches&lt;br /&gt;
&lt;br /&gt;
   (&lt;br /&gt;
       &amp;quot;(walls|cyc.*)&amp;quot;&lt;br /&gt;
       {&lt;br /&gt;
           type        rebound;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       &amp;quot;inlet|outlet&amp;quot;&lt;br /&gt;
       {&lt;br /&gt;
           type escape;&lt;br /&gt;
       }&lt;br /&gt;
   );&lt;br /&gt;
&lt;br /&gt;
   // New optional entry&lt;br /&gt;
   writeToFile     yes;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== クラウド機能オブジェクト =====&lt;br /&gt;
空の場合、またはエントリーが指定されていない場合は、すべてのフィールドが書き込まれます（後方互換性を維持するため）。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patchPostProcessing1&lt;br /&gt;
{&lt;br /&gt;
   type            patchPostProcessing;&lt;br /&gt;
   // Optional new entry&lt;br /&gt;
   fields          (position &amp;quot;U.*&amp;quot; d T nParticle);&lt;br /&gt;
   maxStoredParcels 20;&lt;br /&gt;
   patches&lt;br /&gt;
   (&lt;br /&gt;
       cycLeft_half0&lt;br /&gt;
       cycLeft_half1&lt;br /&gt;
   );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/lagrangian/reactingParcelFoam/filter&lt;br /&gt;
&lt;br /&gt;
=== 新しい双方向パーティクル・ストリームライン ===&lt;br /&gt;
StreamLinesとwallBoundedStreamLines関数オブジェクトが拡張され、シードポイントからの双方向トラッキングが可能になりました。さらに、wallBoundedStreamlines関数オブジェクトが境界面ごとに複数のトラックをサポートするようになりました。&lt;br /&gt;
&lt;br /&gt;
この新機能は、（以前のリリースのtrackForwardフラグの代わりに）新しいdirectionキーワードで有効にすることができる：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U               U;&lt;br /&gt;
direction       bidirectional; // or forward/backward&lt;br /&gt;
fields         (U p);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;次の画像は、2組のファンクションオブジェクトが必要だった以前の動作を示している：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/functionObjects/field/streamLine&lt;br /&gt;
&lt;br /&gt;
=== サーフェス関数オブジェクトへの新しい距離 ===&lt;br /&gt;
新しいsurfaceDistance関数オブジェクトは、指定されたジオメトリまでの距離を示すフィールド（volScalarField）を生成します。これは、メッシュの解像度が不十分で隙間にメッシュが入らないなどのメッシュの問題を検出するために使用できます。&lt;br /&gt;
&lt;br /&gt;
* サーフェスの指定は、snappyHexMeshおよびfoamyHexMeshと互換性のあるジオメトリ・エントリを介して行われます。&lt;br /&gt;
* 特定のサーフェスに限定せず、あらゆるサーフェスで最も近いサーフェスを見つける。&lt;br /&gt;
* デフォルトでは、すべてのセル・センターについて最も近いセルも見つける。これはオプションのdoCells booleanフラグをオフにすることで抑制できる。&lt;br /&gt;
* 境界上の値は、面の中心からの距離になります。&lt;br /&gt;
&lt;br /&gt;
system/surfaceDistance辞書のサンプル：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
surfaceDistance&lt;br /&gt;
{&lt;br /&gt;
   // Where to load it from&lt;br /&gt;
   libs            (fieldFunctionObjects);&lt;br /&gt;
   type            surfaceDistance;&lt;br /&gt;
   geometry&lt;br /&gt;
   {&lt;br /&gt;
       motorBike.obj&lt;br /&gt;
       {&lt;br /&gt;
           type triSurfaceMesh;&lt;br /&gt;
       }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これは、例えばpostProcessで使用できる：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
postProcess -func surfaceDistance&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/functionObjects/field/surfaceDistance&lt;br /&gt;
&lt;br /&gt;
== パラレル ==&lt;br /&gt;
&lt;br /&gt;
=== ファイル修正スキューを更新 ===&lt;br /&gt;
複数のノードで並列ケースを実行する場合、プロセッサーのディレクトリは通常、NFSなどのネットワーク・ファイリング・システムを使用してアクセスされる。この場合、例えば辞書の変更を確認するために、自明でない待ち時間が発生する可能性があります。この目的のために、etc/controlDictに&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fileModificationSkew 10;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これは、辞書が変更されたとみなされるまでのファイル変更時間差の秒数である。2つ目の使用法は、#codeStream辞書エントリやコード化されたfunctionObjectなど、動的にコンパイルされたコードでの使用です。ここでは、dynamicCode/サブディクショナリ内の結果ライブラリが使用可能になるまでの待ち時間である。ただし、場合によってはファイルサーバーに大きな遅延が発生することがあるため、このfileModificationSkewは予想される最大値に設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
このリリースでは動作が変更され、以下のコントロールが追加されました。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
maxFileModificationPolls 100;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これは、fileModificationSkew 秒待ってからチェックする回数の最大値である。この動作により、fileModificationSkewをもっと低い値（最小1）に設定できるようになった。&lt;br /&gt;
&lt;br /&gt;
上記の問題は、NFSでマウントされたディスクとマルチノードで実行する場合にのみ関係する。シングルノードの実行では、すべてのコアのファイルが一貫して表示されるため、マスターがコードのコンパイルを終了した場合、スレーブにも同じコードが表示されます。&lt;br /&gt;
&lt;br /&gt;
例えば、異なるコアに異なるルートを使用する分散実行については、$FOAM_TUTORIALS/IO/fileHandlerチュートリアルを参照してください。ここでは、コードはすべてのコアでコンパイルされる必要があるので、同期の問題はありません。&lt;br /&gt;
&lt;br /&gt;
=== ADIOS2ファンクションオブジェクトの更新 ===&lt;br /&gt;
adiosWrite関数オブジェクトは、パラレルIO用のADIOS2ライブラリを使用するように書き換えられ、通常のOpenFOAMモジュールとして利用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
この実装はチェックポイントとリスタートをサポートしている。&lt;br /&gt;
&lt;br /&gt;
HPC技術委員会の活動の一環として実施される予定である。&lt;br /&gt;
&lt;br /&gt;
== 携帯性 ==&lt;br /&gt;
&lt;br /&gt;
==== 新しいバイナリファイルの互換性 ====&lt;br /&gt;
OpenFOAM-v1912 は、OpenFOAM のコンパイルが混在するワークフローをサポートするために、異なる精度またはラベルサイズのバイナリ読み込みを処理するようになりました。&lt;br /&gt;
&lt;br /&gt;
そのようなワークフローのひとつは次のようなものだ：&lt;br /&gt;
&lt;br /&gt;
* snappyHexMeshを使った倍精度メッシュ。&lt;br /&gt;
* 空力用の単精度（メモリ帯域幅を削減するため）&lt;br /&gt;
* 化学（倍精度）を使ったさらなる計算&lt;br /&gt;
&lt;br /&gt;
必要なサイズ情報がヘッダーに含まれていれば、バイナリ形式のOpenFOAMファイルでも可能です。例えば&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
FoamFile&lt;br /&gt;
{&lt;br /&gt;
   version     2.0;&lt;br /&gt;
   format      binary;&lt;br /&gt;
   arch        &amp;quot;LSB;label=32;scalar=64&amp;quot;;&lt;br /&gt;
   class       vectorField;&lt;br /&gt;
   object      points;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;OpenFOAM-v1612 以降で生成されたバイナリファイルには、すでにこの情報が含まれており、使用することができます。&lt;br /&gt;
&lt;br /&gt;
64ビットのラベル幅を32ビットのラベル幅にするなど、データ範囲を狭める場合、範囲のオーバーフローは切り捨てられることに注意。&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v1912_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=835</id>
		<title>OpenFOAM v1912 リリースノート</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencae.or.jp/index.php?title=OpenFOAM_v1912_%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88&amp;diff=835"/>
		<updated>2023-09-09T12:39:59Z</updated>

		<summary type="html">&lt;p&gt;Mmer547: ページの作成:「OpenCFDは、OpenFOAM® v1912の2019年12月リリースを発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v1906の機能を拡張しています。新機能は、OpenCFDのお客様がスポンサーとなった開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。  OpenFOAMは、OpenCFDによってGPLライセンスの下で配布されていま…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenCFDは、OpenFOAM® v1912の2019年12月リリースを発表いたします。このリリースは、コードの多くの領域にわたってOpenFOAM-v1906の機能を拡張しています。新機能は、OpenCFDのお客様がスポンサーとなった開発、内部資金による開発、OpenFOAMコミュニティからの機能や変更の統合を表しています。&lt;br /&gt;
&lt;br /&gt;
OpenFOAMは、OpenCFDによってGPLライセンスの下で配布されています：&lt;br /&gt;
&lt;br /&gt;
* Linuxシステム上でコンパイル可能なソースコード&lt;br /&gt;
* Linuxシステム用のコンパイル済みバイナリのインストール&lt;br /&gt;
* Mac OS Xシステム用のコンパイル済みバイナリのインストール&lt;br /&gt;
* MS Windows インストーラ&lt;br /&gt;
* Bash on Ubuntu on Windows (MS Windows 10用)&lt;br /&gt;
&lt;br /&gt;
コードを入手するには、ダウンロード手順を参照してください。&lt;br /&gt;
&lt;br /&gt;
開発用リポジトリは一般に公開されています。これらのメインリポジトリはバグフィックスや新機能で定期的に更新され、最近のメンテナンスでサイズが800MB以上からmasterブランチの200MB程度に大幅に縮小されました。&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
* ユーザー向けのヘルプは、ユーザーアップグレードガイドに記載されています。&lt;br /&gt;
* 開発者向けのヘルプは、開発者向けアップグレードガイドで提供されています。&lt;br /&gt;
* また、典型的なイディオムの理解を深めるために、コーディングパターンに関する文書も作成しました。私たちは喜んでコンテンツを取り込みます！&lt;br /&gt;
&lt;br /&gt;
== Pre-processing ==&lt;br /&gt;
&lt;br /&gt;
=== 新しい式の構文 ===&lt;br /&gt;
OpenFOAM-v1912は、swak4Foam（Bernhard Gschaider）によって開拓されたアイデアを使用した式を実装しています。これは、swak4Foam（Bernard Gschaider）によって開発されたアイデアを使用しています。この追加は、辞書構文、文字列評価、境界条件、セットフィールドなど、OpenFOAMのさまざまな部分に浸透しており、今後の発展が期待されます。&lt;br /&gt;
&lt;br /&gt;
例えば、式は、正規文字列展開に数学的評価を埋め込むことを可能にします：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;&amp;lt;system&amp;gt;/sampling${{ round(${flowRate:-5} * 100) }}&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;その中核となるのが、このエクスプレッション機能である：&lt;br /&gt;
&lt;br /&gt;
* SQLiteプロジェクトのLemon Parser Generator - &amp;lt;nowiki&amp;gt;https://www.sqlite.org/lemon.html&amp;lt;/nowiki&amp;gt; を参照。&lt;br /&gt;
* Ragelステートマシン・コンパイラ - &amp;lt;nowiki&amp;gt;http://www.colm.net/open-source/ragel/&amp;lt;/nowiki&amp;gt; を参照。&lt;br /&gt;
&lt;br /&gt;
'''Source code'''&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/OpenFOAM/include/m4&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/src/OpenFOAM/expressions&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/src/finiteVolume/expressions&lt;br /&gt;
&lt;br /&gt;
=== 辞書のインライン表現 ===&lt;br /&gt;
辞書入力に関する大きな変更点は、式の追加に関連する新しい#evalディレクティブである。多くの場合、#evalは#calcを直接置き換えることができ、速度を大幅に向上させることができる。比較として、以下の10回の評価では、#calcでは16秒かかったのに対し、#evalでは0.02秒しかかからなかった。&lt;br /&gt;
&lt;br /&gt;
この機能は辞書の見方を変えるだろう。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kgh     700;&lt;br /&gt;
split   0.4;&lt;br /&gt;
inlet1&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
   type            flowRateInletVelocity;&lt;br /&gt;
   massFlowRate    constant #eval{ $split * $kgh / 3600 };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
inlet2&lt;br /&gt;
{&lt;br /&gt;
   type            flowRateInletVelocity;&lt;br /&gt;
   massFlowRate    constant #eval{ (1-$split) * $kgh / 3600 };&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;さらなる例は、v1912ユーザーアップグレードガイドに記載されています。&lt;br /&gt;
&lt;br /&gt;
'''Source code'''&lt;br /&gt;
&lt;br /&gt;
$FOAM_SRC/OpenFOAM/db/dictionary/functionEntries/evalEntry&lt;br /&gt;
&lt;br /&gt;
'''Tutorial'''&lt;br /&gt;
&lt;br /&gt;
これまで#calcを使用していたチュートリアルはすべて#evalを使用するようになりました。&lt;br /&gt;
&lt;br /&gt;
=== 新しい式ベースの setFields ユーティリティ ===&lt;br /&gt;
この式は、setExprFieldsとsetExprBoundaryFieldsという新しいユーティリティをサポートしており、似たような名前のswak4Foamのファンキーなユーティリティと同じような役割を果たします。&lt;br /&gt;
&lt;br /&gt;
setExprFieldsは、フィールドの設定に図形と選択を使う代わりに、条件と式の組み合わせを使う。条件が有効な場合にのみ、式の結果が適用される。例えば、以下のようにすると、定義されたゾーン内の温度が調整される：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
expressions&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
   T&lt;br /&gt;
   {&lt;br /&gt;
       field       T;&lt;br /&gt;
       dimensions  [0 0 0 1 0 0 0];&lt;br /&gt;
       constants&lt;br /&gt;
       {&lt;br /&gt;
           centre (0.21 0 0.01);&lt;br /&gt;
       }&lt;br /&gt;
       variables&lt;br /&gt;
       (&lt;br /&gt;
           &amp;quot;radius = 0.1&amp;quot;&lt;br /&gt;
       );&lt;br /&gt;
       condition&lt;br /&gt;
       #{&lt;br /&gt;
           // Within the radius&lt;br /&gt;
           (mag(pos() - $[(vector)constants.centre]) &amp;lt; radius)&lt;br /&gt;
           // but only +ve y!&lt;br /&gt;
         &amp;amp;&amp;amp; bool(pos((pos() - $[(vector)constants.centre]).y()))&lt;br /&gt;
       #};&lt;br /&gt;
       expression&lt;br /&gt;
       #{&lt;br /&gt;
           300&lt;br /&gt;
         + 200 * (1 - mag(pos() - $[(vector)constants.centre]) / radius)&lt;br /&gt;
       #};&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;setExprBoundaryFieldsユーティリティは、バウンダリ・フィールド・エントリをカスタムで変更するための同様の目的を果たす。&lt;br /&gt;
&lt;br /&gt;
'''Tutorials'''&lt;br /&gt;
&lt;br /&gt;
$FOAM_TUTORIALS/compressible/rhoPimpleFoam/RAS/TJunctionAverage&lt;br /&gt;
&lt;br /&gt;
=== '''PDRFoam用の新しいセットフィールド・ユーティリティ''' ===&lt;br /&gt;
新しいPDRsetFieldsユーティリティはPDRFoamソルバーで使用する閉塞のテンソル抵抗を計算します。ジオメトリはPDRsetFieldsDictファイルを使ってプリミティブ形状の形で入力されます：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
// Data dictionary for PDRsetFields&lt;br /&gt;
&lt;br /&gt;
// Replace by the relevant names&lt;br /&gt;
&lt;br /&gt;
obsFileDir      &amp;quot;&amp;lt;case&amp;gt;/geometry&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
obsFileNames    (obstaclesDict);&lt;br /&gt;
&lt;br /&gt;
// legacyObsSpec   true;&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// obsFileNames    (position.obs base.obs);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;障害物は、obsFileNamesエントリーの下にリストされた個別のファイルで提供される。以下のような様々なタイプの障害物がサポートされている：&lt;br /&gt;
&lt;br /&gt;
* cylinder&lt;br /&gt;
* diagonal beam&lt;br /&gt;
* cuboid&lt;br /&gt;
* grating&lt;br /&gt;
* louvre&lt;br /&gt;
* patch&lt;br /&gt;
&lt;br /&gt;
以下に障害物の例を示す：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_UTILITIES//utilities/preProcessing/PDRsetFields&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_UTILITIES/combustion/PDRFoam/pipeLattice&lt;br /&gt;
&lt;br /&gt;
=== checkMeshから出力される壁の距離 ===&lt;br /&gt;
checkMesh ユーティリティのオプション -writeAllFields が拡張され、壁距離をフィールド wallDistance として書き込むようになりました。これは、system/fvSchemes辞書で壁距離法が選択されていることを必要とします：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wallDist&lt;br /&gt;
{&lt;br /&gt;
   method meshWave;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;wallDistanceは壁パッチのSMALL(1e-15)に設定され、paraFoamなどで後処理することができます：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_UTILITIES/mesh/manipulation/checkMesh&lt;br /&gt;
&lt;br /&gt;
== snappyHexMesh : 細いギャップを自動的に閉じる ==&lt;br /&gt;
複雑な形状のメッシュを作成する際、ユーザがメッシュを必要としない薄いギャップがあるかもしれません。このリリースではsnappyHexMeshは面毎、面領域毎にメッシュするギャップの最小サイズを指定するblockLevelを指定することができます。この指定されたサイズより小さいギャップ内のセルは削除されます（その結果、ギャップ内のセルはなくなります）。&lt;br /&gt;
&lt;br /&gt;
この拡張機能は以下の構文で有効になる：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
refinementSurfaces&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;gap.*&amp;quot;&lt;br /&gt;
   {&lt;br /&gt;
       // Surface-wise min and max refinement level&lt;br /&gt;
       level       (2 2);&lt;br /&gt;
&lt;br /&gt;
       // From cell level 2 onwards start checking&lt;br /&gt;
       // for opposite surfaces&lt;br /&gt;
       blockLevel  2;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;blockLevel 設定は以下を決定する。&lt;br /&gt;
&lt;br /&gt;
* ギャップ検知にサーフェスが全く使用されていないかどうか。&lt;br /&gt;
* 理想的なギャップの大きさ：2 * cellize; ここで、cellize は初期セルサイズから blockLevel を何倍かにリファインして決定される。&lt;br /&gt;
&lt;br /&gt;
全てのサーフェス精密化snappyHexMeshの後、シェル/ボリュームの精密化の前に、全てのセルについて最も近い2つのサーフェスを決定します。もしセルが&lt;br /&gt;
&lt;br /&gt;
* 2つの面の間、または同じ面の切り離された領域&lt;br /&gt;
* であり、対向点間の距離はギャップサイズより小さい。&lt;br /&gt;
&lt;br /&gt;
の場合、セルは削除される。&lt;br /&gt;
&lt;br /&gt;
チュートリアルのopposite_wallsは、薄いギャップを形成する2つの表面を持つ単純なブロックです。&lt;br /&gt;
&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/mesh/snappyHexMesh/opposite˙walls&lt;br /&gt;
&lt;br /&gt;
== 数値 ==&lt;br /&gt;
&lt;br /&gt;
=== 新しい随伴形状最適化 ===&lt;br /&gt;
アジョイント・ライブラリは、自動化された形状最適化ループを可能にする新機能で強化されている。&lt;br /&gt;
&lt;br /&gt;
これは、OpenFOAMのガバナンス・フレームワークの下、OpenFOAM-v1906でリリースされたアジョイント最適化ツールの続編です。&lt;br /&gt;
&lt;br /&gt;
体積Bスプラインに基づくパラメータ化スキームが導入され、その制御点は最適化ループにおける設計変数として機能する（下記参照）。ボリューメトリックBスプラインボックスの制御点は、直交座標または円筒座標で定義できます。&lt;br /&gt;
&lt;br /&gt;
ループ全体（流体方程式とアジョイント方程式の解法，感度導関数の計算，設計変数とメッシュの更新）は，adjointOptimisationFoam ソルバー内で実行されます．設計変数を更新するために，BFGS のような一般的な準ニュートン法や，SQP や拘束射影のような拘束を扱える方法など，多くの方法が実装されています．&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SOLVERS/incompressible/adjointOptimisationFoam $FOAM_SRC/optimisation/adjointOptimisation/adjoint&lt;br /&gt;
; Examples&lt;br /&gt;
: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam&lt;br /&gt;
; Attribution&lt;br /&gt;
: このソフトウェアはPCOpt/NTUAとFOSS GPによって開発され、以下の人々からの貢献があった。&lt;br /&gt;
:* Dr Evangelos Papoutsis-Kiachagias,&lt;br /&gt;
:* Konstantinos Gkaragounis,&lt;br /&gt;
:* Professor Kyriakos Giannakoglou,&lt;br /&gt;
:* Dr Andrew Heather&lt;br /&gt;
; References&lt;br /&gt;
:* E.M. Papoutsis-Kiachagias, N. Magoulas, J. Mueller, C. Othmer, K.C. Giannakoglou: ’Noise Reduction in Car Aerodynamics using a Surrogate Objective Function and the Continuous Adjoint Method with Wall Functions’, Computers &amp;amp; Fluids, 122:223-232, 2015&lt;br /&gt;
:* E. M. Papoutsis-Kiachagias, V. G. Asouti, K. C. Giannakoglou, K. Gkagkas, S. Shimokawa, E. Itakura: Multi-point aerodynamic shape optimization of cars based on continuous adjoint, Structural and Multidisciplinary Optimization, 59(2):675694, 2019&lt;br /&gt;
; Integration&lt;br /&gt;
: コードはOpenCFDとNTUAが共同で統合した。&lt;br /&gt;
&lt;br /&gt;
=== 新しい重み付き磁束補間スキーム ===&lt;br /&gt;
新しいweightedFlux補間スキームは、重み付けされたフラックスを用いる線形スキームである。&lt;br /&gt;
&lt;br /&gt;
次のような一般的なフラックスの場合：&lt;br /&gt;
&lt;br /&gt;
の面値を必要とするガウスの定理を用いて勾配を計算する。 これは次のように計算される：&lt;br /&gt;
&lt;br /&gt;
どこ:&lt;br /&gt;
&lt;br /&gt;
* φi is the cell value&lt;br /&gt;
* φfis the face value&lt;br /&gt;
*&lt;br /&gt;
* σi is the diffusivity coefficient&lt;br /&gt;
&lt;br /&gt;
不連続の場合、線形補間は正しくないフラックスを生成する。weightedFlux補間スキームは、Tの調和補間と組み合わせて以下のように使用される。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
laplacianSchemes&lt;br /&gt;
{&lt;br /&gt;
   laplacian(DT,T) Gauss harmonic corrected;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
gradSchemes&lt;br /&gt;
{&lt;br /&gt;
   grad(T)     Gauss weightedFlux sigma;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;上記の例では、以下のように滑らかな温度と熱流束のプロファイルが得られる：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/finiteVolume/interpolation/surfaceInterpolation/schemes/weightedFlux&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/verificationAndValidation/schemes/weigthedFluxExample&lt;br /&gt;
; Attribution&lt;br /&gt;
: このスキームはノルベルト・ウェーバーの寄稿によるものである。&lt;br /&gt;
; References&lt;br /&gt;
:* Weber, N.; Beckstein, P.; Galindo, V.; Starace, M.; Weier, T.: Electro-vortex flow simulation using coupled meshes, Computers and Fluids 168(2018) 101-109&lt;br /&gt;
:* For more details see the Issue tracker&lt;br /&gt;
&lt;br /&gt;
=== 混合精度モードでのジオメトリ処理の改善 ===&lt;br /&gt;
OpenFOAM-v1906で導入された混合精度モード(SPDP)により、倍精度で実行する場合に比べ、大幅なスピードアップとメモリ要件の削減が可能になります。&lt;br /&gt;
&lt;br /&gt;
混合精度モードでは、線形ソルバーだけが倍精度で動作する。他の機能はすべて単精度で実行されます。これにより、例えばcheckMeshを使用した場合、完全に有効なクローズドセルがオープンセルとして表示される可能性があります。単精度(SP)で実行すると、以下のようなレポートが表示されます：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
***Boundary openness (3.77976e-07 3.97566e-06 -2.26237e-08) possible hole in boundary description.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;このバージョンでは、倍精度計算が次のように拡張されています。&lt;br /&gt;
&lt;br /&gt;
* 面の中心と面積、セルの中心と体積の計算。実際の結果はまだ単精度で保存されていることに注意してください。&lt;br /&gt;
* ほとんどのcheckMeshの合計、例えばオープンセルの上。&lt;br /&gt;
* すべてのフィールドベースの合計（sum）。&lt;br /&gt;
&lt;br /&gt;
これらの変更はSPDPモードにのみ影響することに注意。前の例では、次のように報告されている：&lt;br /&gt;
&lt;br /&gt;
境界の開き (-6.31099e-11 -3.99859e-11 -3.747e-10) OK.&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCellCentresAndVols.C $FOAM_SRC/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshFaceCentresAndAreas.C&lt;br /&gt;
&lt;br /&gt;
== ソルバーと物理モデル ==&lt;br /&gt;
&lt;br /&gt;
=== 新しいインターフェイス追跡ダイナミック・メッシュ ===&lt;br /&gt;
このリリースには、foam-extendプロジェクトのムービングメッシュインターフェーストラッキングライブラリが統合されています。OpenFOAM v1912への移植は、Zeljko Tukovic (FMENA, Zagreb)がOpenCFD Ltd.と共同で行いました。&lt;br /&gt;
&lt;br /&gt;
基本的な機能は、interfaceTrackingFvMeshクラスによって実装されています。自由表面における運動学的および動的条件は、速度と圧力のカスタム境界条件によって課されます。界面追跡計算は、標準的なpimpleFoamソルバーを使用して実行されます。&lt;br /&gt;
&lt;br /&gt;
下の例は、汚染され、擾乱を受けた液滴の濃度と形状の変化を示している。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/dynamicFaMesh/interfaceTrackingFvMesh&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/contactAngleCavity $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/contaminatedDroplet2D&lt;br /&gt;
; References&lt;br /&gt;
: Z. Tukovic and H. Jasak. A moving mesh finite volume interface tracking method for surface tension dominated interfacial fluid flow. Computers &amp;amp; fluids. 55 (2012) 70-84.&lt;br /&gt;
; Attribution&lt;br /&gt;
: Code written and contributed by Zeljko Tukovic&lt;br /&gt;
&lt;br /&gt;
=== 新しい6自由度（DoF）機能 ===&lt;br /&gt;
&lt;br /&gt;
===== 新しいlinearSpringDamper拘束モデル =====&lt;br /&gt;
6自由度ライブラリには、新しいlinearSpringDamperモデルが含まれています。&lt;br /&gt;
&lt;br /&gt;
これはスプリングダンパーシステムで、アンカーとrefAttachmentPt間の距離がrestLengthを超えたときに「ソフトな」ロープ拘束として機能する。&lt;br /&gt;
&lt;br /&gt;
ロープがたるんでいるときは、体に力はかからない。dynamicMeshDictでの指定は以下の通り：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
restraints&lt;br /&gt;
{&lt;br /&gt;
   chain&lt;br /&gt;
   {&lt;br /&gt;
       sixDoFRigidBodyMotionRestraint  linearSpringDamper;&lt;br /&gt;
       refAttachmentPt     (3.7 4.2 4.5);&lt;br /&gt;
       anchor              table&lt;br /&gt;
       (&lt;br /&gt;
           (0         (3.7 4.2 6.5))&lt;br /&gt;
           (2         (4.7 4.2 6.5))&lt;br /&gt;
           (6         (5.7 4.2 4.5))&lt;br /&gt;
           (8         (6.7 4.2 4.5))&lt;br /&gt;
       );&lt;br /&gt;
       psi                 1;&lt;br /&gt;
       wn                  8.28;&lt;br /&gt;
       numberOfChains      4;&lt;br /&gt;
       restLength          2;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;どこだ？&lt;br /&gt;
&lt;br /&gt;
* refAttachmentPtはソリッドオブジェクトへのアタッチメントポイントです。&lt;br /&gt;
* anchorはロープのアンカーで、Function1の時間依存の項目として指定される。&lt;br /&gt;
* psiは減衰比。&lt;br /&gt;
* wnは、システムの減衰していない固有振動数である。&lt;br /&gt;
* numberOfChainsは、ボディに取り付けられているチェーンの数。&lt;br /&gt;
* restLength はロープの残りの長さ。&lt;br /&gt;
&lt;br /&gt;
システムの減衰と剛性は次のように計算される：&lt;br /&gt;
&lt;br /&gt;
注：psiとwnは、柔らかいロープの挙動をモデル化するために、過減衰系に対して設定されるべきである。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/restraints/linearSpringDamper&lt;br /&gt;
&lt;br /&gt;
===== 新しいソフト・ウォール・サスペンション =====&lt;br /&gt;
新しいソフトウォールモデルは、壁法線方向のアンカーとrefAttachmentPt間の距離が負になったときに「ソフト」な壁として機能するダンパー-線形-バネ拘束です。&lt;br /&gt;
&lt;br /&gt;
ロープがたるんでいるときは、体に力はかからない。dynamicMeshDictでの指定は以下の通り：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
restraints&lt;br /&gt;
{&lt;br /&gt;
   upperWall&lt;br /&gt;
   {&lt;br /&gt;
       type                    softWall;&lt;br /&gt;
       body                    floatingObject;&lt;br /&gt;
       anchor                  (0.5 0.5 0.7);&lt;br /&gt;
       refAttachmentPt         (0.5 0.5 0.58);&lt;br /&gt;
       wallNormal              (0 0 -1);&lt;br /&gt;
       psi                     2.0;&lt;br /&gt;
       C                       0.01;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;どこ:&lt;br /&gt;
&lt;br /&gt;
* refAttachmentPtは、ソリッドオブジェクトへのアタッチメントポイントです。&lt;br /&gt;
* アンカーはロープの錨である。&lt;br /&gt;
* psiは減衰比&lt;br /&gt;
* wallNormal は壁の法線方向&lt;br /&gt;
* Cはモデル定数&lt;br /&gt;
&lt;br /&gt;
システムの減衰と剛性は次のように計算される：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/rigidBodyDynamics/restraints/softWall&lt;br /&gt;
&lt;br /&gt;
===== オーバーセットされたダイナミックメッシュのための新しいマルチモーション機能 =====&lt;br /&gt;
オーバーセット・ダイナミック・メッシュが複数のモーション・タイプを扱えるようになりました。これにより、ユーザーは異なるモーション・ソルバーのアクションで異なるオブジェクトを動かすことができます。&lt;br /&gt;
&lt;br /&gt;
一例を挙げよう：&lt;br /&gt;
&lt;br /&gt;
* $FOAM_TUTORIALS/multiphase/overInterDyMFoam/floatingBodyWithSpring&lt;br /&gt;
&lt;br /&gt;
dynamicMeshDict辞書の中で、dynamicOversetFvMeshは2つのモーション・ソルバーを持っています：&lt;br /&gt;
&lt;br /&gt;
* 新しいdrivenLinearMotionを使ったsolidBody（下記参照）&lt;br /&gt;
* sixDoFRigidBodyMotion&lt;br /&gt;
&lt;br /&gt;
チュートリアルでは、2つのモーション・ソルバーが異なるセルセットに適用される。&lt;br /&gt;
&lt;br /&gt;
cubeという名前のソルバーは、モーション・ソルバーsixDoFRigidBodyMotionを使用するfloatingObjectです。新しいキーワードCofGvelocityは、drivenLinearMotionソルバーで使用するオブジェクトの重心速度を書き込む。&lt;br /&gt;
&lt;br /&gt;
新しいdrivenLinearMotionモーションソルバは剛体タイプで、エントリーCofGvelocityに従って点を移動します。このチュートリアルでは、オーバーセット計算の背景メッシュに対応するc0セルセットに適用します。&lt;br /&gt;
&lt;br /&gt;
drivenLinearMotionは、オーバーセット計算の &amp;quot;inset &amp;quot;領域で、与えられたオブジェクトに &amp;quot;追従する &amp;quot;背景メッシュを設定することができます。これは、オブジェクトの予想される変位が大きい場合にメッシュサイズを小さくするのに役立ちます。&lt;br /&gt;
&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/multiphase/overInterDyMFoam/floatingBodyWithSpring&lt;br /&gt;
&lt;br /&gt;
=== 新しい平行放射モデル ===&lt;br /&gt;
&lt;br /&gt;
===== fvDOM用の新しい平行太陽ビームモデル =====&lt;br /&gt;
fvDOM放射モデルに、太陽外部負荷からの外部ビームのサポートが追加されました。この効果はfvDOMモデルの光線に追加され、radiationProperties辞書の新しい項目useExternalBeamをtrueに設定することで有効になります。&lt;br /&gt;
&lt;br /&gt;
fvDOMの光線立体角は、角度離散化に従って最適な光線方向と一致するように回転される。&lt;br /&gt;
&lt;br /&gt;
線源のエネルギー・スペクトルを得るには、以下のエントリーを使用する：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
spectralDistribution (2 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;注：spectralDistributionのバンド数は、吸収率モデルのバンド数と一致する必要があります。つまり、boundaryRadiationPropertiesのmultiBandAbsorptionです：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
type       opaqueDiffusive;&lt;br /&gt;
wallAbsorptionEmissionModel&lt;br /&gt;
{&lt;br /&gt;
   type            multiBandAbsorption;&lt;br /&gt;
   absorptivity    (0.3 0.7);&lt;br /&gt;
   emissivity      (0.3 0.7);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;輻射境界条件の例では、不透明な拡散壁と、2つのバンドを用いたマルチバンド吸収モデルを指定しています。&lt;br /&gt;
&lt;br /&gt;
コリメートモデルは、solarLoad放射モデルと併用しないでください。&lt;br /&gt;
&lt;br /&gt;
コリメートモデルは、太陽計算機を使用して太陽の方向とエネルギー束を導きます。標準モデルは、solarLoad放射モデルと同様に使用できます。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/thermophysicalModels/radiation/radiationModels/fvDOM&lt;br /&gt;
&lt;br /&gt;
===== 新しいマルチバンドゾーン吸収発光モデル =====&lt;br /&gt;
新しいmultiBandZoneAbsorptionEmissionモデルは、領域内の不均一な吸収率および放射率フィールドの使用を可能にします。例えば、2つのバンドモデルの場合：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
multiBandZoneAbsorptionEmissionCoeffs&lt;br /&gt;
{&lt;br /&gt;
   absorptivity  (0.01 0.01);&lt;br /&gt;
   emissivity    (0.01 0.01);&lt;br /&gt;
   zones&lt;br /&gt;
   {&lt;br /&gt;
       absorptivity  (&amp;quot;trees&amp;quot; (20 20));&lt;br /&gt;
       emissivity    (&amp;quot;trees&amp;quot; (20 20));&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;この例では、背景メッシュに(0.01 0.01)、樹木というゾーンに(20 20)の吸収率を設定している。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/thermophysicalModels/radiation/submodels/absorptionEmissionModel/absorptionEmissionModel/multiBandZoneAbsorptionEmission&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/heatTransfer/chtMultiRegionFoam/solarBeamWithTrees&lt;br /&gt;
&lt;br /&gt;
=== 新しい多相乱流安定化 ===&lt;br /&gt;
乱流の運動エネルギーは、非圧縮VOFソルバーにおいて、表面波下のほぼポテンシャル流領域において、位相界面および水柱全体で過剰に予測される。&lt;br /&gt;
&lt;br /&gt;
この挙動は、乱流運動エネルギー方程式と乱流粘性場に補正を適用する新しいmultiphaseStabilizedTurbulence fvOptionを使用して補正されます。&lt;br /&gt;
&lt;br /&gt;
を使って指定する：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
multiphaseStabilizedTurbulence1&lt;br /&gt;
{&lt;br /&gt;
   type            multiphaseStabilizedTurbulence;&lt;br /&gt;
   active          yes;&lt;br /&gt;
   multiphaseStabilizedTurbulenceCoeffs&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
       // Optional coefficients&lt;br /&gt;
       lambda2         0.1;   // A value of 0 sets the nut correction to 0&lt;br /&gt;
       Cmu             0.09;  // from k-epsilon model&lt;br /&gt;
       C               1.51;  // model coefficient from k-omega model&lt;br /&gt;
       alpha           1.36;  // 1/Prt&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/fvOptions/sources/derived/multiphaseStabilizedTurbulence&lt;br /&gt;
; References&lt;br /&gt;
:* Devolder, B., Rauwoens, P., and Troch, P. (2017). Application of a buoyancy-modified k-w SST turbulence model to simulate wave run-up around a monopile subjected to regular waves using OpenFOAM. Coastal Engineering, 125, 81-94.&lt;br /&gt;
:* Larsen, B.E. and Fuhrman, D.R. (2018). On the over-production of turbulence beneath surface waves in Reynolds-averaged Navier-Stokes models J. Fluid Mech, 853, 419-460&lt;br /&gt;
; Attribution&lt;br /&gt;
:* OpenCFDによる実装&lt;br /&gt;
:* Turbulence Technical Committee、およびBjarke Eltard-LarsenとDavid Fuhrman（デンマーク工科大学）による有益な議論とコードテストに感謝する。&lt;br /&gt;
&lt;br /&gt;
=== 新しいk-epsilon-phit-f乱流モデル ===&lt;br /&gt;
Laurenceら, 2005）の研究に基づき、kEpsilonPhitFと名付けられた楕円緩和関数を用いた新しい3輸送方程式線形渦粘性RANS乱流クロージャーモデルが実装されました。&lt;br /&gt;
&lt;br /&gt;
kEpsilonPhitFは、(Durbin, 1995)のv2-f手法に由来するkEpsilonベースのモデルである。v2-f手法の主な利点は、渦粘性モデルの最小限の定式化を維持しながら、線形渦粘性モデルとレイノルズ応力方程式モデルの中間を提供することであると報告されています。このことは、壁面距離や低レイノルズ数型の修正を行うことなく、壁面に向かって壁面法線速度スケールが放物線状に減衰することをシミュレーションに依存せずに再現できることに現れています。&lt;br /&gt;
&lt;br /&gt;
しかし、v2-fモデルの大半は、特に壁境界において、v2場とf場の連成の定式化により、分離解法アルゴリズムでは数値的に厳しいことが判明した。&lt;br /&gt;
&lt;br /&gt;
この欠点にもかかわらず、v2-fモデルは、さまざまな非平衡／非局所効果を示す流れ、強い圧力勾配、分離、衝突を伴う流れ、熱伝達を含む乱流場への変動圧力の影響など、幅広い一般的な流れの特性をうまく再現することが確認されている。&lt;br /&gt;
&lt;br /&gt;
LienとKalitzin, 2001）によるv2-fモデル（すなわちOpenFOAMのv2fモデル）は、分離計算を可能にするためにオリジナルのv2-fモデルを再定義したものであるが、モデルの忠実度に関する多くの欠点が文献に報告されている。&lt;br /&gt;
&lt;br /&gt;
v2-f手法の欠点を克服するために、v2-f手法は(Hanjali et al., 2004)と(Laurence et al., 2005)によって再評価され、同時に、スケールを等価な無次元形式に変換することによって、すなわち数値的な剛性を低減することによって再評価された。これらの変種は、オリジナルのv2-fモデルの理論的なモデルの忠実性を保持しながら、数値的なロバスト性と格子異常に対する鈍感性を提供すると考えられた。&lt;br /&gt;
&lt;br /&gt;
kEpsilonPhitFモデルはベータ段階であることにご注意ください。今後、モデルの内部的な変更が行われる可能性もありますし、行われない可能性もあります。さらに、OpenFOAMで利用可能なv2fモデルは、kEpsilonPhitFまたは他のv2-fモデルのバリエーションに取って代わられる予定です。&lt;br /&gt;
&lt;br /&gt;
kEpsilonPhitFモデルの実装は，平滑壁平面流路流（），ゼロ圧力勾配乱流平板，2次元後向きステップ，流路内2次元丘の正準流によって検証された．&lt;br /&gt;
&lt;br /&gt;
例として、3つの検証プロットを以下に示す：&lt;br /&gt;
&lt;br /&gt;
モデル方程式、実装、使用法に関するより詳細な情報は、（拡張コードガイドのkEpsilonPhitFセクション）にあります。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/TurbulenceModels/turbulenceModels/RAS/kEpsilonPhitF&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/incompressible/simpleFoam/RAS/bump2D&lt;br /&gt;
; Attribution&lt;br /&gt;
: OpenCFD は、有益な議論と有益な示唆を与えてくれた Mirza Popovac 博士 (オーストリア工科大学) に感謝したい。&lt;br /&gt;
&lt;br /&gt;
=== 雪崩モデリング・モジュールの更新 ===&lt;br /&gt;
冬が近づくにつれ、雪崩モデリング・モジュールでは、RAMMSモデル（Christen et al, 2010）の実装やMedinaモデルの安定性の改善など、巻き込みモデルの更新が行われた。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;https://develop.openfoam.com/Development/openfoammodules/avalanche&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
; Attribution&lt;br /&gt;
: The avalanche code is developed by Matti Rauter&lt;br /&gt;
&lt;br /&gt;
=== 液体の新しい状態方程式 ===&lt;br /&gt;
液体と固体のための逆多項式状態方程式rPolynomialはopenfoam.orgから統合され、以下の形式を持つ：&lt;br /&gt;
&lt;br /&gt;
新しいオプションは、thermophysicalProperties辞書で次のように指定される：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
thermoType&lt;br /&gt;
{&lt;br /&gt;
   type            heRhoThermo;&lt;br /&gt;
   mixture         pureMixture;&lt;br /&gt;
   transport       const;&lt;br /&gt;
   thermo          hConst;&lt;br /&gt;
   equationOfState rPolynomial; // new entry&lt;br /&gt;
   specie          specie;&lt;br /&gt;
   energy          sensibleInternalEnergy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
mixture&lt;br /&gt;
{&lt;br /&gt;
   specie&lt;br /&gt;
   {&lt;br /&gt;
       molWeight   18.0;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   equationOfState&lt;br /&gt;
   {&lt;br /&gt;
       // Coefficients for the reciprocal polynomial equation of state&lt;br /&gt;
       C (0.001278 -2.1055e-06 3.9689e-09 4.3772e-13 -2.0225e-16);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   thermodynamics&lt;br /&gt;
   {&lt;br /&gt;
       Cp          4195;&lt;br /&gt;
       Hf          0;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   transport&lt;br /&gt;
   {&lt;br /&gt;
       mu          3.645e-4;&lt;br /&gt;
       Pr          2.289;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/src/thermophysicalModels/specie/equationOfState/rPolynomial&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.water&lt;br /&gt;
; Attribution&lt;br /&gt;
: モデルはopenfoam.orgから統合された。&lt;br /&gt;
&lt;br /&gt;
== 境界条件 ==&lt;br /&gt;
&lt;br /&gt;
=== ニューウェーブ・モデル ===&lt;br /&gt;
このリリースでは、OpenFOAM v1812で導入されたwaveMaker条件を拡張し、パドルの数を選択して3次元波を生成します。3次元フラップ波生成の例を以下に示します。&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/waveModels/derivedPointPatchFields/waveMaker&lt;br /&gt;
; Examples&lt;br /&gt;
: $FOAM_TUTORIALS/multiphase/interFoam/laminar/waves/waveMakerMultiPaddleFlap $FOAM_TUTORIALS/multiphase/interFoam/laminar/waves/waveMakerMultiPaddlePiston&lt;br /&gt;
; Attribution&lt;br /&gt;
: これらの拡張機能はEnvironmental Hydraulics Institute IHCantabriaから提供されたもので、コミットd0c5662172を参照： ガブリエル・バラハス&lt;br /&gt;
; Integration&lt;br /&gt;
: このコードは OpenCFD によって統合されました - マージリクエスト 317 を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 新しい式に基づく境界条件 ===&lt;br /&gt;
式が境界条件を満たす場所： exprFixedValue境界条件とexprMixed境界条件。&lt;br /&gt;
&lt;br /&gt;
これらの境界条件は、値、勾配、分数を式としてサポートする。例えば&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
outlet1&lt;br /&gt;
{&lt;br /&gt;
   type            exprFixedValue;&lt;br /&gt;
   value           $internalField;&lt;br /&gt;
   valueExpr       &amp;quot;0.5*(pInlet + pOutlet2)&amp;quot;;&lt;br /&gt;
   variables&lt;br /&gt;
   (&lt;br /&gt;
       &amp;quot;pInletinlet = weightAverage(p)&amp;quot;&lt;br /&gt;
       &amp;quot;pOutlet2outlet2 = p&amp;quot;&lt;br /&gt;
   );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Tutorials&lt;br /&gt;
: $FOAM_TUTORIALS/compressible/rhoPimpleFoam/RAS/TJunctionAverage&lt;br /&gt;
&lt;br /&gt;
=== 新しいスケール境界条件ラッパー ===&lt;br /&gt;
これは、任意の（固定値）境界条件に、時間または空間で変化するスケーリングを追加するためのラッパーです。uniformFixedValueのすべての機能が追加されています。下の例では、patch エントリを使用して指定された標準的な fixedValue 境界条件を変更し、scale エントリに従ってスケールを適用します。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;patchName&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   type            scaledFixedValue;&lt;br /&gt;
   scale table&lt;br /&gt;
   (&lt;br /&gt;
       (    0   0)&lt;br /&gt;
       (  1.0 1.0)&lt;br /&gt;
       (100.0 1.0)&lt;br /&gt;
   );&lt;br /&gt;
&lt;br /&gt;
   patch&lt;br /&gt;
   {&lt;br /&gt;
       type            fixedValue;&lt;br /&gt;
       value           uniform (15 0 0);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;スケールの項目はPatchFunction1であり、以下のような複数のオプションがある：&lt;br /&gt;
&lt;br /&gt;
* constant&lt;br /&gt;
* csvFile&lt;br /&gt;
* mappedFile&lt;br /&gt;
* polynomial&lt;br /&gt;
* sampled&lt;br /&gt;
* scale&lt;br /&gt;
* sine&lt;br /&gt;
* square&lt;br /&gt;
* table&lt;br /&gt;
* tableFile&lt;br /&gt;
* uniformValue&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/finiteVolume/fields/fvPatchFields/derived/scaledFixedValue&lt;br /&gt;
&lt;br /&gt;
== 後処理 ==&lt;br /&gt;
&lt;br /&gt;
=== パーティクルの後処理の改善 ===&lt;br /&gt;
&lt;br /&gt;
===== クラウドパッチ相互作用モデル =====&lt;br /&gt;
オプションでwriteToFileエントリーを使用して、パッチ相互作用の統計情報、例えば、くっついたり、逃げたりした粒子の数と質量をファイルに書き込みます。例として、localInteraction粒子パッチ相互作用モデルを使用する場合、新しいエントリーを次のように追加することができます：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
localInteractionCoeffs&lt;br /&gt;
{&lt;br /&gt;
   patches&lt;br /&gt;
&lt;br /&gt;
   (&lt;br /&gt;
       &amp;quot;(walls|cyc.*)&amp;quot;&lt;br /&gt;
       {&lt;br /&gt;
           type        rebound;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       &amp;quot;inlet|outlet&amp;quot;&lt;br /&gt;
       {&lt;br /&gt;
           type escape;&lt;br /&gt;
       }&lt;br /&gt;
   );&lt;br /&gt;
&lt;br /&gt;
   // New optional entry&lt;br /&gt;
   writeToFile     yes;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== クラウド機能オブジェクト =====&lt;br /&gt;
空の場合、またはエントリーが指定されていない場合は、すべてのフィールドが書き込まれます（後方互換性を維持するため）。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patchPostProcessing1&lt;br /&gt;
{&lt;br /&gt;
   type            patchPostProcessing;&lt;br /&gt;
   // Optional new entry&lt;br /&gt;
   fields          (position &amp;quot;U.*&amp;quot; d T nParticle);&lt;br /&gt;
   maxStoredParcels 20;&lt;br /&gt;
   patches&lt;br /&gt;
   (&lt;br /&gt;
       cycLeft_half0&lt;br /&gt;
       cycLeft_half1&lt;br /&gt;
   );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Tutorial&lt;br /&gt;
: $FOAM_TUTORIALS/lagrangian/reactingParcelFoam/filter&lt;br /&gt;
&lt;br /&gt;
=== 新しい双方向パーティクル・ストリームライン ===&lt;br /&gt;
StreamLinesとwallBoundedStreamLines関数オブジェクトが拡張され、シードポイントからの双方向トラッキングが可能になりました。さらに、wallBoundedStreamlines関数オブジェクトが境界面ごとに複数のトラックをサポートするようになりました。&lt;br /&gt;
&lt;br /&gt;
この新機能は、（以前のリリースのtrackForwardフラグの代わりに）新しいdirectionキーワードで有効にすることができる：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U               U;&lt;br /&gt;
direction       bidirectional; // or forward/backward&lt;br /&gt;
fields         (U p);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;次の画像は、2組のファンクションオブジェクトが必要だった以前の動作を示している：&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/functionObjects/field/streamLine&lt;br /&gt;
&lt;br /&gt;
=== サーフェス関数オブジェクトへの新しい距離 ===&lt;br /&gt;
新しいsurfaceDistance関数オブジェクトは、指定されたジオメトリまでの距離を示すフィールド（volScalarField）を生成します。これは、メッシュの解像度が不十分で隙間にメッシュが入らないなどのメッシュの問題を検出するために使用できます。&lt;br /&gt;
&lt;br /&gt;
* サーフェスの指定は、snappyHexMeshおよびfoamyHexMeshと互換性のあるジオメトリ・エントリを介して行われます。&lt;br /&gt;
* 特定のサーフェスに限定せず、あらゆるサーフェスで最も近いサーフェスを見つける。&lt;br /&gt;
* デフォルトでは、すべてのセル・センターについて最も近いセルも見つける。これはオプションのdoCells booleanフラグをオフにすることで抑制できる。&lt;br /&gt;
* 境界上の値は、面の中心からの距離になります。&lt;br /&gt;
&lt;br /&gt;
system/surfaceDistance辞書のサンプル：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
surfaceDistance&lt;br /&gt;
{&lt;br /&gt;
   // Where to load it from&lt;br /&gt;
   libs            (fieldFunctionObjects);&lt;br /&gt;
   type            surfaceDistance;&lt;br /&gt;
   geometry&lt;br /&gt;
   {&lt;br /&gt;
       motorBike.obj&lt;br /&gt;
       {&lt;br /&gt;
           type triSurfaceMesh;&lt;br /&gt;
       }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;これは、例えばpostProcessで使用できる：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
postProcess -func surfaceDistance&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Source code&lt;br /&gt;
: $FOAM_SRC/functionObjects/field/surfaceDistance&lt;br /&gt;
&lt;br /&gt;
== Parallel ==&lt;br /&gt;
&lt;br /&gt;
=== Updated file modification skew ===&lt;br /&gt;
When running a parallel case on multiple nodes the processor directories are usually accessed using a network filing system, e.g. NFS. This might have a non-trivial amount of latency to see changes to e.g. dictionaries. For this purpose there is in etc/controlDict&lt;br /&gt;
&lt;br /&gt;
fileModificationSkew 10;&lt;br /&gt;
&lt;br /&gt;
which is the number of seconds of file-modification-time difference before a dictionary is seen as having been changed. The second use is in dynamically compiled code, e.g. through the #codeStream dictionary entry or coded functionObject. Here it is the amount of time waiting for the resulting library in the dynamicCode/ sub-dictionary to become available. However, in some cases the file server might have a large delay so this fileModificationSkew has to be set to the maximum expected value.&lt;br /&gt;
&lt;br /&gt;
In this release the behaviour has been changed in that there is an additional control&lt;br /&gt;
&lt;br /&gt;
maxFileModificationPolls 100;&lt;br /&gt;
&lt;br /&gt;
which is the maximum number of times the code checks after waiting fileModificationSkew seconds. With this behaviour the fileModificationSkew can now be set to a much lower value (minimum 1).&lt;br /&gt;
&lt;br /&gt;
This above problem is only relevant for NFS mounted disks and multi-node runs. Single-node runs will have a consistent view of the files for all cores so if the master has finished compiling the code the slaves will see the same code.&lt;br /&gt;
&lt;br /&gt;
For distributed runs, e.g. using different roots for different cores - see the $FOAM_TUTORIALS/IO/fileHandler tutorial. Here the code needs to be compiled on all cores anyway so there should be no synchronisation problem.&lt;br /&gt;
&lt;br /&gt;
=== Updated ADIOS2 function object ===&lt;br /&gt;
The adiosWrite function object has been rewritten to use the ADIOS2 library for parallel IO and is now available as a regular OpenFOAM module&lt;br /&gt;
&lt;br /&gt;
The implementation supports checkpointing and restart read more...&lt;br /&gt;
&lt;br /&gt;
More tests at scale are required and will be conducted as part of the activities of the HPC Technical Committee&lt;br /&gt;
&lt;br /&gt;
== Portability ==&lt;br /&gt;
&lt;br /&gt;
==== New binary file compatibility ====&lt;br /&gt;
OpenFOAM-v1912 now handles binary reading of different precision or label sizes to support workflows with mixed compilations of OpenFOAM.&lt;br /&gt;
&lt;br /&gt;
One such workflow could be the following:&lt;br /&gt;
&lt;br /&gt;
* Meshing with snappyHexMesh in double precision.&lt;br /&gt;
* Single precision for aerodynamics (for reduced memory bandwidth)&lt;br /&gt;
* Further calculation with chemistry (double precision)&lt;br /&gt;
&lt;br /&gt;
This is now possible with binary formatted OpenFOAM files, provided that they contain the necessary size information in their header. For example,&lt;br /&gt;
&lt;br /&gt;
FoamFile&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   version     2.0;&lt;br /&gt;
&lt;br /&gt;
   format      binary;&lt;br /&gt;
&lt;br /&gt;
   arch        &amp;quot;LSB;label=32;scalar=64&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   class       vectorField;&lt;br /&gt;
&lt;br /&gt;
   object      points;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Binary files generated with OpenFOAM-v1612 and later will already contain this information and can be used.&lt;br /&gt;
&lt;br /&gt;
Note that when narrowing the data range e.g. 64-bit label width to 32-bit label width, any range overflows will be truncated.&lt;/div&gt;</summary>
		<author><name>Mmer547</name></author>
	</entry>
</feed>