737
回編集
537行目: | 537行目: | ||
* $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder | * $FOAM_TUTORIALS/finiteArea/liquidFilmFoam/cylinder | ||
= v2212:数値計算の新機能と改良 = | |||
== オーバーセットメッシュの改善 == | |||
オーバーセットの枠組みが拡張されました。 | |||
# は、オーバーセットされたパッチが背景領域の外まで広がるようにします。 | |||
# 背景領域のホールセルから離れたフリンジ面を許容する;および | |||
# 質量保存を改善するためのオプションを追加する。 | |||
=== ドメイン外のオーバーセットパッチ === | |||
他のすべてのメッシュの外側に存在するセルは、ドナーセル候補が見つからないため、補間を使用することができません。これらのセルは、通常の計算セルと同様に局所的にセルを解く、新しいポーラスセルタイプを使用して処理することができます。これらのセルは通常、壁のパッチに近いため、圧力-速度系の安定性を維持するために、通常は何らかのダンピングが必要です。これは、例えば、速度を減衰させるfvOptionを使用して適用することができ、新しいcellType selectionMode項目は多孔質セルを識別することができます。 | |||
<code>limitU | |||
{ | |||
type velocityDampingConstraint; | |||
active true; | |||
selectionMode cellType; | |||
UMax 0; | |||
C 1; | |||
}</code> | |||
inverseDistance、trackingInverseDistance、volumeWeightの各セルステンシルを用いたテストでは、ダンピング定数Cが「1」でうまく機能する傾向があることが示されました。 | |||
なお、この方法は、背景メッシュの上に2つのインセットメッシュを重ねることはサポートしていません。 | |||
=== 背景領域のホールセルから離れたフリンジ面を許可する === | |||
オーバーセット法は、流れが高い勾配を示す領域から補間されたセルが離れている場合に有効です。以前のバージョンでは、幾何学的に不明瞭なセル(穴のタイプ)は補間されたセルで囲まれていました。このリリースでは、system/fvSchemes辞書のoversetInterpolationセクションを使用して、補間セルを障害物からさらに遠ざけることができます。 | |||
<code>oversetInterpolation | |||
{ | |||
method inverseDistance; | |||
.. | |||
holeLayers 4; | |||
useLayer 2; | |||
}</code> | |||
holeLayers の項目には、ホールセルから「歩く」セルの層数を指定し、useLayer には補間セルを配置する層数を指定します。例えば、上記の例では、4層からなる歩行を行い、層2を使用して補間を配置します。 | |||
実行時、ソルバーは各メッシュのレイヤー体積の平均比率を報告する、例. | |||
<code>Number of layers : 4 | |||
Average volumetric ratio : 4(0.9581398507 0.9624422346 0.966612743 0.97065 73485) | |||
Number of holes cells : 4(202 203 204 205) | |||
Using layer : 2</code> | |||
残圧について期待される改善点の代表的なものは以下の通りです。 | |||
=== オーバーセット質量保存を改善するためのオプション === | |||
以前の実験的キーワードは、オーバーセットベースのソルバーアプリケーション、すなわちmassFluxInterpolation、ddtCorr、およびcorrectPhiから削除されました。質量保存は、fvSolutionファイルの新しいoversetAdjustPhiキーワードによって制御されるフラックス補正を追加することで改善されました。 | |||
<code>PIMPLE | |||
{ | |||
momentumPredictor no; | |||
nOuterCorrectors 1; | |||
nCorrectors 3; | |||
nNonOrthogonalCorrectors 0; | |||
oversetAdjustPhi true; | |||
}</code> | |||
このフラグは、内側のPIMPLEループのフリンジ面を横切るフラックスを調整します。次の画像は、$FOAM_TUTORIALS/multiphase/overInterDyMFoam/simpleRotorの場合の質量保存への影響を示しており、最初のものは補正なしで、2番目は補正ありで計算されています。 | |||
フラックス/質量保存の第二のオプションは、パッチフィールド上で指定される暗黙の補正である。 | |||
<code>free | |||
{ | |||
type overset; | |||
value uniform 300; | |||
fluxCorrection true; | |||
}</code> | |||
線形ソルバー内のフラックス制約を使用してフラックス補正を実装しています。これは、すべてのフリンジ面において、すべての行列-フィールドの乗算に対して保存制約を強制します。これは,事前調整された共役勾配系で事前調整された変数に適用されるため,効果が限定される可能性があることに注意してください.overLaplacianDyMFoamチュートリアルbasic/overLaplacianDyMFoam/1DheatTransferMassConservationでは、fluxCorrectionを有効にするとオーバーセットパッチの性能が改善されます。 | |||
Source code | |||
* $FOAM_SRC/overset | |||
Tutorials | |||
Outside cells: | |||
* $FOAM_TUTORIALS/multiphase/overInterDyMFoam/twoSquaresOutDomain | |||
* $FOAM_TUTORIALS/incompressible/overPimpleDyMFoam/rotatingSquare | |||
Fringe faces: | |||
* $FOAM_TUTORIALS/incompressible/overPimpleDyMFoam/simpleRotor | |||
* $FOAM_TUTORIALS/multiphase/overInterDyMFoam/floatingBody | |||
* $FOAM_TUTORIALS/multiphase/overInterDyMFoam/rigidBodyHull | |||
Mass conservation (explicit): | |||
* $FOAM_TUTORIALS/multiphase/overInterDyMFoam/simpleRotor | |||
Mass conservation (implicit): | |||
* $FOAM_TUTORIALS/basic/overLaplacianDyMFoam/1DheatTransferMassConservation | |||
== 新しい随伴目的関数 == | |||
アドジョイントベースの最適化で使用する5つの新しい目的関数が追加され、主に内部フロー最適化問題をターゲットにしています。以下に、それぞれの簡単な説明と例を示します。これ以降の図はすべて、速度の大きさを表しています。 | |||
=== flowRate === | |||
与えられたパッチのセットを通過する体積流量を計算し、最小化/最大化する。ダクトの上部を通る流量を最大にする(左から右へ流れる)アプリケーションを以下に示します。 | |||
Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/fork-uneven/flowRate | |||
Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveFlowRate | |||
=== flowRatePartition === | |||
入口流量を所定の割合で出口パッチに分配するために使用される。2つのアウトレットにインレット流量を均等に分配することを目的としたアプリケーションを以下に示す。 | |||
Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/fork-uneven/flowRatePartition | |||
Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveFlowRatePartition | |||
=== uniformityPatch === | |||
所定の(出口)パッチ(ここでは下部の出口パッチ)で計算される速度分散を最小にすることで、流れの均一性を高めることができます。 | |||
Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/fork-uneven/uniformityPatch | |||
Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveUniformityPatch | |||
=== uniformityCellZone === | |||
所定のセルゾーン内の流速のばらつきを抑え、流れの均一性を向上させます。 | |||
この場合、ターゲットとなるセルゾーンの境界は黒くハイライトされている。 | |||
Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/laminar/opt/unconstrained/uniformityCellZone | |||
Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveUniformityCellZone | |||
=== powerDissipation === | |||
与えられたcellZone内で発生する流体電力の損失を計算し、最小化する。セルゾーンがフロードメイン全体をカバーする場合、この目的は体積流量で重み付けされた総圧力損失(すなわちPtLosses目的関数)と等価である。 | |||
ターゲットセルゾーンの境界は黒くハイライトされている。 | |||
Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/powerDissipation | |||
Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectivePowerDissipation | |||
Attribution | |||
* The software was developed by PCOpt/NTUA and FOSS GP | |||
* Integration in collaboration with OpenCFD on MR!578 | |||
== 新しい並列一貫したジオメトリ方式 == | |||
新しいパラレルジオメトリ計算手法は、他のジオメトリ計算手法のラッパーとして適用することが可能です。 | |||
<code>geometry | |||
{ | |||
type parallel; | |||
// Optional underlying geometry calculation. Default is 'basic'. | |||
geometry | |||
{ | |||
type highAspectRatio; | |||
} | |||
}</code> | |||
オーナーサイドの面形状を隣接する面、つまり面中心、法線(ネゲート)に適用し、影響を受けるセルのセルベースの形状を再計算することで動作します。 | |||
これは特に単精度の場合に有効で、例えばグローバル変換を計算する際に問題となる、結合パッチが採用する異なる計算順序に起因する切り捨て誤差を除去することができます。 | |||
<code>--> FOAM FATAL ERROR: (openfoam-2206) | |||
bad size -653174757 | |||
From void Foam::List<T>::doResize(Foam::label) [with T = Foam::vectorTensorTransform; Foam::label = int] | |||
in file lnInclude/List.C at line 84. | |||
#0 Foam::error::printStack(Foam::Ostream&) | |||
#1 Foam::error::simpleExit(int, bool) at ??:? | |||
#2 Foam::error::exiting(int, bool) | |||
#3 Foam::List<Foam::vectorTensorTransform>::doResize(int) | |||
#4 Foam::globalIndexAndTransform::determineTransformPermutations() at ??:?</code> | |||
なお、並列方式は点の位置を変更しないので、セルクローズなどの他の計算された形状に影響を与える可能性があります。 | |||
Source code | |||
* $FOAM_SRC/finiteVolume/fvMesh/fvGeometryScheme/parallel | |||
== 新有限面積最小二乗法によるエッジ補間法 == | |||
Finite Areaのための線形ベースのエッジ補間スキームは、表面勾配と発散の計算で高い誤差をもたらす可能性があります。新しい最小二乗法スキームは、Pesci (2019; p.29-30, 45-50) の研究に基づいています - Finite Volume フレームワークの pointLinear スキームに類似していることを示します。テストでは、新しいスキームが解析解に関して表面勾配とダイバージェンスの結果を改善できることを示した。 | |||
解析解に関してガウス線形とガウス最小二乗を比較すると(Pesci, 2019; 図4.2)、予測精度のレベルが向上していることがわかる。 | |||
Source code | |||
* $FOAM_SRC/finiteArea/interpolation/edgeInterpolation/schemes/leastSquares | |||
References | |||
* Pesci, C. (2019). Computational analysis of fluid interfaces influenced by soluble surfactant. Darmstadt, Technische Universität. PhD thesis. | |||
Merge request | |||
* MR!575 | |||
== MappedFileの改善 == | |||
=== 代替のサーフェスフォーマット === | |||
外部データソースと結合する際に使用される MappedFile 関数が拡張され、別の表面読み取り形式をサポートするようになりました。これにより、例えばサンプリングしたEnSightデータをマッピングに再利用することができ、抽出データ、可視化データ、入力データを1つのソースにまとめることができる利点があります。 | |||
=== フィールドフィルタリング === | |||
MappedFileは、入力データにマルチスウィープメディアンフィルタリングを追加できるようになりました。これは、粗いメッシュにサンプリングする際に、高い空間周波数を除去するために使用することができます。例えば、探索半径5mmの線形、面積加重フィルタを適用する場合。 | |||
<code>filterRadius 5e-3; | |||
filterSweeps 40;</code> | |||
入力フィールド値は、指定された掃引回数で平均化されたフィルタリングが行われます。このフィルタリングにより、サンプリングされた値を汚染する高い空間周波数が取り除かれる。フィルタの効果は次のように見られる。 | |||
左はオリジナルの生入力データ、右は同じものをMappedFile内でフィルタリングし、高周波成分を除去した後の画像である。 | |||
Source code | |||
* $FOAM_SRC/meshTools/PatchFunction1/MappedFile | |||
Merge request | |||
* MR!568 | |||
Tutorial | |||
* $FOAM_TUTORIALS/compressible/acousticFoam/obliqueAirJet | |||
=== フィールドフィルタリングのプレビュー === | |||
新しい smoothSurfaceData ユーティリティは、MappedFile で使用する前に、さまざまなフィルター半径やスイープの効果を簡単にテストするための手段です。 | |||
== 改良型DEShybridスキーム == | |||
Travinら[3]の研究に基づくDEShybridスキームは、細かいメッシュの渦度支配領域ではより低い散逸スキームを、回転しない領域や粗いメッシュではよりロバストなスキームを、解に応じてブレンドすることを可能にします。このオリジナルスキームを新しいグレー領域拡張 DES モデルで使用したところ,誤動作することが判明しました.より散逸的なスキームは、重要な初期せん断層領域で作動し、モデルの改良を打ち消すものでした[1]。 | |||
DEShybridスキームのアップデートがv2212リリースに含まれており、グレーエリア領域での低散逸挙動を保証し、その他の点ではオリジナルのスキームと同様の挙動を示します。 | |||
Tutorial | |||
Settings for the new DEShybrid scheme can be found in the new tutorial based on the 2D hump case of Greenblatt et al. [2]. | |||
* $FOAM_TUTORIALS/incompressible/pimpleFoam/LES/wallMountedHump | |||
Source code | |||
* $FOAM_SRC/TurbulenceModels/schemes/DEShybrid | |||
Attribution | |||
* 更新されたDEShybridスキームは、Upstream CFD GmbHによって実装され、Volkswagen AGの資金提供によりOpenCFD Ltdと共同でOpenFOAMに統合されました。 | |||
* Merge request MR!560 | |||
References | |||
# Fuchs, M., Mockett, C., Sesterhenn, J., and Thiele, F. (2015). Assessment of novel DES approach with enhanced SGS modelling for prediction of separated flow over a delta wing. 22nd AIAA Computational Fluid Dynamics Conference, Dallas / Texas, AIAA-2015-3433. | |||
# Greenblatt, D., Paschal, K. B., Yao, C.-S., Harris, J., Schaeffler, N. W., and Washburn, A. E. (2006). Experimental Investigation of Separation Control Part 1: Baseline and Steady Suction. AIAA Journal, Vol. 44, No. 12, pp. 2820-2830, 2006. | |||
# Travin, A.K., Shur, M.L., Strelets, M.K., and Spalart, P.R. (2004). Physical and numerical upgrades in the detached-eddy simulation of complex turbulent flows. Advances in LES of complex flows, pp. 239–254, 2004. |