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

ナビゲーションに移動 検索に移動
783行目: 783行目:
= ソルバーと物理モデル =
= ソルバーと物理モデル =


=== 新ソリッドボディメッシュモーション ===
v2012 では、system/fvSchemes の新しいジオメトリ エントリを使用したジオメトリ計算のランタイム選択メカニズムが追加され ました。このリリースでは、回転 AMI/ACMI ケースなどの一部の移動メッシュ ケースのコストを削減することを目的とした、新しい solidBody ジオメトリ スキームが追加されました。
<code>geometry
{
    type    solidBody;
    // Optional
    partialUpdate yes; // default = yes
    cacheMotion yes; // default = yes
}</code>
新しい制度は、次のような前提で運用されています。


* ソリッドボディ(点数、面領域、セル体積が同じ)として表現できるものであり
* トポロジーの更新はありません。


= バウンダリーコンディション =
そのため、solidBody スキームでは、完全なメッシュクリアを行う代わりに、移動するポイントに接続されたジオメトリのみを選択的に更新します。


性能向上(時間)はケースバイケースで、例えば、全セル数に対して移動セルの割合が少ないほど、メッシュ更新フェーズの利点は大きくなります。


追加エントリーの制御です。
* partialUpdate : falseに設定すると、メッシュの変更時に完全なメッシュのクリアアウトを実行します。
* cacheMotion : trueに設定すると、すべての時間ステップで移動する点、面、セルのアドレスをキャッシュする。
==== 後方互換性 ====
基本オプションはデフォルトであり、ジオメトリサブディクショナリが提供されない場合に適用される。
<code>geometry
{
    type basic;
}</code>
このオプションを選択すると、v2112(およびそれ以前のバージョン)の動作が復元されます。
チュートリアル
* $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller
ソースコード
* $FOAM_SRC/finiteVolume/fvMesh/fvGeometryScheme/solidBody
=== 新しいレイノルズ応力乱流モデル。EBRSM ===
新しいElliptic Blending Reynolds Stress Model(EBRSM)は、非圧縮性および圧縮性の流れに対する(Manceau, 2015)の研究をベースにしています。
このモデルは、標準的な弱不均一レイノルズ応力モデルを壁面近傍まで拡張し、レイノルズ応力と乱流量について一般に優れた流れ予測を提供します。
この新しいモデルは、様々な正則ケースで検証されている。ReTau=180 の平滑壁平面チャネル流れの DNS 研究に基づく検証ケースの結果を以下に示す(Moser et al., 1999).
ソースコード
* $FOAM_SRC/TurbulenceModels/turbulenceModels/RAS/EBRSM/EBRSM.H
チュートリアル
* $FOAM_TUTORIALS/verificationAndValidation/turbulenceModels/planeChannel
マージ要求
* MR!544
参考文献
* Manceau, R. (2015). Recent progress in the development of the elliptic blending Reynolds-stress model. International Journal of Heat and Fluid Flow, 51, 195-220. DOI:10.1016/j.ijheatfluidflow.2014.09.002
アトリビュート
* OpenCFD は、Rémi Manceau 教授、Michael Karl Stoellinger 博士、Ardalan Javadi 博士の貢献、精巧な提案と支援、および批判的な勧告に感謝し、謝意を表したいと思います。
=== 壁面機能の向上 ===
壁関数とそのコードのドキュメントを改善しました。
従来は壁面機能
* epsilon、k、omegaなどの壁関数で必要とされる様々な共通の壁関数係数を取得するために、nutWallFunctionタイプのリファレンスが必要でした。
* Cmu, kappa, Eは、係数値の一貫性を確保するため、指定されたnutWallFunctionから取得した。
これらの選択は、特にナットベースの壁関数が期待されない場合、やや不可解な鋳造エラーが発生し、一部のセットアップでは過度に制限されるなど、しばしば混乱を招きました。例えば、壁際領域でのεの変動が通常非常に急で非単調である場合、専門ユーザーはε固有の係数を使用したいと思うかもしれません。
ソースコード
* $FOAM_SRC/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions
* $FOAM_SRC/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions
* $FOAM_SRC/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions
* $FOAM_SRC/TurbulenceModels/incompressible/turbulentTransportModels/derivedFvPatchFields/wallFunctions
* $FOAM_SRC/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions
マージ要求
* MR!486
=== CHTソルバーのドライランを新たにサポート ===
chtMultiRegionFoam ソルバー群は、-dry-run コマンドラインオプションをサポートし、ケース設定に関するクイックフィードバックを提供するように拡張されました。
<code>chtMultiRegionFoam -dry-run</code>
これにより、ダミーメッシュが作成され、初期フィールドが読み込まれます。典型的な出力です。
<code>Operating in 'dry-run' mode: case will run for 1 time step.  All checks assumed OK on a clean exit
Creating simplified mesh using "openfoam/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomWater/polyMesh"
Mesh bounds: (-0.1 -0.04 -0.05) (0.1 1.1564823e-18 0.05)
Creating dummy zone heater
Creating dummy zone leftSolid
Creating dummy zone rightSolid
Creating dummy zone topAir
Creating dummy zone bottomWater</code>
残念ながら、この処理は、明示的に結合されたパッチ(mapped, mappedWall)のマッチングの後半で失敗するため、完全な反復処理を終えることができません。
ソースコード
* $FOAM_SOLVERS/applications/solvers/heatTransfer/chtMultiRegionFoam
=== solidFoamの新しいタイムステップ制御 ===
solidFoamソルバーが拡張され、タイムステップの制御が可能になりました。これは、system/controlDictの設定により有効になります。
<code>//- Is time step adjustable
adjustTimeStep  yes;
//- Maximum diffusion number (default is 10)
maxDi          1;</code>
その他、時間ステップを制御する方法もサポートされています。
<code>functions
{
    timeStepping
    {
        type            setTimeStep;
        libs            (utilityFunctionObjects);
        enabled        yes;
        deltaT
        {
            type table;
            file "<system>/deltaTvalues";
        }
    }
}</code>
チュートリアル
* $FOAM_TUTORIALS/heatTransfer/solidFoam/movingCone
ソースコード
* $FOAM_SOLVERS/heatTransfer/solidFoam
=== 熱交換器のモデリングを改善 ===
effectivenessHeatExchangerSourceのfvOptionが書き込めるように拡張されました。
<code>#Time    Net mass flux [kg/s]    Total heat exchange [W]    Secondary inlet T [K]    Tref [K]    Effectiveness</code>
オプションとして、ユーザーは二次流の比熱容量である新しいオプション入力secondaryCpに基づいて、二次流出温度を計算することができます。
<code>effectivenessHeatExchangerSource1
{
    ...
    // when secondary outlet temperature is requested
    secondaryCp            <Function1<scalar>;
}</code>
ソースコード
* $FOAM_SRC/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
マージ要求
* MR!534
=== New tabulated anisotropic thermal conductivity solid transport ===
この機能は、固体熱力学のための表形式異方性熱伝導特性を、オプションの座標系指定で指定することができるものです。
輸送モデルは tabulatedAnIso と呼ばれ、例として ThermophysicalProperties ファイルに以下のように指定されている。
<code>thermoType
{
    type            heSolidThermo;
    mixture        pureMixture;
    transport      tabulatedAnIso;
    thermo          hTabulated;
    equationOfState icoPolynomial;
    specie          specie;
    energy          sensibleEnthalpy;
}
mixture
{
    specie
    {
        molWeight  50;
    }
    transport
    {
        kappa      table
        (
            // T  kappa
            ( 200  (80 80 80) )
            ( 400  (80 80 80) )
        );
        // kappa    <Function1<scalar>>;
    }
    thermodynamics
    {
        Hf      0;
        Cp
        (
            ( 200 450)
            ( 400 450)
        );
        Sf      0;
    }
    equationOfState
    {
        rhoCoeffs<8>    (8000 0 0 0 0 0 0 0);
    }
}
coordinateSystem
{
    type        cylindrical;
    origin      (0 0 0);
    rotation
    {
        type    cylindrical;
        axis    (1 0 0);
    }
}</code>
ソースコード
* $FOAM_SRC/thermophysicalModels/solidSpecie/transport/tabulated/tabulatedAnIsoSolidTransport.H
マージ要求
* MR!546
=== New softWall six-degree-of-freedom restraint ===
6自由度の剛体運動拘束に、新たにソフトウォール拘束を追加しました。
このモデルでは、アンカーと本体の取り付け位置refAttachmentPtの壁面法線方向の距離が負になると軟らかい壁として作用し、正になると力は作用しないダンパー線形バネ拘束を記述している。
dynamicMeshDictでの仕様は以下の通りです。
<code>restraints
{
    softWall
    {
        sixDoFRigidBodyMotionRestraint  softWall;
        anchor                          (0.5 0.5 0.7);
        refAttachmentPt                (0.5 0.5 0.58);
        wallNormal                      (0 0 -1);
        psi                            2.0;
        C                              0.01;
    }
}</code>
ソースコード
* $FOAM_SRC/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/restraints/softWall
マージ要求
* MR!536
= 境界条件 =
==== 乱流デジタルフィルター条件の改善 ====
乱流DigitalFilterInlet境界条件のリファクタリング、簡略化、改良が行われました。
* この条件を拡張して、温度や汚染物質濃度などのスカラーの合成変動を生成する。
* 新しい入力項目タイプ。
** 平均応力とレイノルズ応力がPatchFunction1型になりました。
** 平均応力、レイノルズ応力の時変入力が可能になりました。
** 入力項目が大幅に削減されました。
* インレットパッチへの揺らぎのマッピングが改良され、一般化された
** ユーザーはマッピング操作の際にAMIのマッピング方法を選択することができます
* ドメインの回転/平行移動が改善されました。
** ユーザーがローカル座標系を設定することができます。
* フォワードステップワイズ法オプションでタイムステップを調整できるようにしました。
* 並列化、スケーリングが向上します。
* リスタートを改善しました。
* Taylor の凍結乱流の仮定は、流線積分スケールの計算では削除されます。
ソースコード
* $FOAM_SRC/finiteVolume/fields/fvPatchFields/derived/turbulentDigitalFilterInlet
チュートリアル
* $FOAM_TUTORIALS/incompressible/pimpleFoam/LES/planeChannel
* $FOAM_TUTORIALS/verificationAndValidation/turbulentInflow/oneCellThickPlaneChannel
マージ要求
* MR!532
参考文献
* Xie, Z. T., Hayden, P., & Wood, C. R. (2013). Large-eddy simulation of approaching-flow stratification on dispersion over arrays of buildings. Atmospheric Environment, 71, 64-74. DOI:10.1016/j.atmosenv.2013.01.054
* Okaze, T., & Mochida, A. (2017). Cholesky decomposition–based generation of artificial inflow turbulence including scalar fluctuation. Computers & Fluids, 159, 23-32. DOI:10.1016/j.compfluid.2017.09.005
=== 新型アウトレットマップインレットの条件 ===
outletMappedUniformInlet境界条件が、時間的に遅延する入口-出口再循環と一般化された入力に対して改善されました。
* 1つのインレットに対して、任意の数のアウトレットを接続することが可能になりました。
* 各インレットは、異なる任意の組み合わせのアウトレットに接続することができます。
* オプションの filtration-fraction と offset の項目は Function1 タイプにアップグレードされる。
* 時間遅延再循環は、Function1タイプの新しいオプションの時間遅延エントリによって有効になります。
* 各インレットは、PatchFunction1タイプとして、オプションでベースインレットフィールドを持つことができるようになりました。
* 境界条件は、スカラー、ベクトル、テンソルなど、すべてのフィールドタイプに使用可能です。
この境界条件の最小限の例を以下に示す。
<code><patchName>
{
    // Mandatory entries
    type            outletMappedUniformInlet;
    outlets
    {
        <outletName.1>
        {
            fraction    <Function1<scalar>>;
            offset      <Function1<Type>>;
            timeDelay  <Function1<scalar>>;
        }
        <outletName.2>
        {
            fraction    <Function1<scalar>>;
            offset      <Function1<Type>>;
            timeDelay  <Function1<scalar>>;
        }
        ...
    }
    // Optional entries
    uniformValue    <PatchFunction1<Type>>;
    phi            phi;
    // Inherited entries
    ...
}</code>
ソースコード
* $FOAM_SRC/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet
チュートリアル
* $FOAM_TUTORIALS/lagrangian/reactingParcelFoam/airRecirculationRoom
マージ要求
* MR!531
=== New specie adsorption conditions ===
TOP
流体/固体界面での収着過程をモデル化するために、 speciesSorption および enthalpySorption という 2 つの新しい境界条件が追加されまし た。これらの条件は、rhoReactingFoam のような、多成分、圧縮性、乱流の解を可能にする圧縮性多成分ソルバーで使用されるべきものです。
speciesSorption には、 吸着モデルを選択し、対応するモデルパラメータを指定するオプションがある。1つのモデルは吸着平衡モデル(Langmuir)に基づき、もう1つは動力学、すなわち一次モデルに基づくものである。
種境界条件は、表面への吸着種と脱着種の量を時間経過とともに記憶し続けるものである。
<code>base
{
    type                speciesSorption;
    equilibriumModel    Langmuir;
    kinematicModel      PseudoFirstOrder;
    kabs                10;                // [1/sec]
    kl                  0.01;              // [1/mol]
    max                0.1;                // [mol/Kg]
    thickness          uniform 1e-3;      // [m]
    rhoS                2000;              // [kg/m3]
    value              $internalField;
}</code>
どこで
* kabs: 吸収係数
* kl:ラングミュア係数
* max : ラングミュアモデルにおける壁面での平衡の比例係数
* thickness : ソリッドの厚さ
* rhoS : 固体密度
ここで重要なことは、動力学モデルは固体質量1kgあたりのソース[mol/kg/sec]を提供することである。種へのソース率[kg/m3/sec]を計算するためには、種が吸収される固体壁の質量を知る必要がある。
この条件は、壁での種のためのゼロ勾配タイプです。したがって、種のためのソースは、パッチに隣接するセルにソースを適用するfvOptionを介して追加されます。
fvOptions辞書では、次のように指定されています。
<code>patchCellsSource
{
    type            patchCellsSource;
    species        O2;
}</code>
EnthalpySorption条件は、温度フィールドに適用され、2つのモデル(推定と計算)を介して、種の吸着に関連する熱の追加または削除を説明します。
* estimated: 吸着エンタルピーは、ユーザー入力により計算されます。CとHvap
* 計算:質量負荷とエンタルピーのルックアップテーブルを必要とします。
<code>base
{
    type                enthalpySorption;
    enthalpyModel      calculated;
    enthalpyTable
    {
        type            table;
        values          ((0 0)(1 50));
    }
    C                  2;
    species            O2;
    includeHs          true;
    value              $internalField;
}</code>
のところです。
* enthalpyModel: 吸収モデル (計算値 / 推定値)
* enthalpyTable : 計算モデル用のテーブル
* C: 推定モデル定数を含む
* Hs: 種の感性エンタルピーを含む
* species: 検討中の種
チュートリアル
* $FOAM_TUTORIALS/combustion/rhoReactingFoam/groundAbsorption
ソースコード
* $FOAM_SRC/thermophysicalModels/reactionThermo/derivedFvPatchFields/speciesSorption
* $FOAM_SRC/thermophysicalModels/reactionThermo/derivedFvPatchFields/enthalpySorption


= 後処理 =
= 後処理 =

案内メニュー