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

 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
== '''OpenFOAM v2006 リリースノート''' ==
== '''OpenFOAM v2006 リリースノート''' ==


原文はこちら
[https://www.openfoam.com/releases/openfoam-v2006/ OpenCFD Release OpenFOAM®  v2006 (20 06)]


== アップグレード ==
== アップグレード ==
1,585行目: 1,588行目:
== 後処理 ==
== 後処理 ==


=== Ensightフォーマットへのデータ変換を改善 ===
foamToEnsightユーティリティが拡張され、cellZonesの柔軟な取り扱いが可能になり、foamToVTKと同様の機能をより多く組み込むことができるようになりました。foamToEnsightPartsユーティリティ(シリアルのみであった)は冗長化されたため削除されました。
現在、foamToEnsight
複数のセルゾーンを扱うことができます。
点場のための追加サポート
追加の-nearCellValueオプション(foamToVTKと同様)
これまでと同様に、シリアルまたはパラレルで実行できます。
最新のfoamToEnsightオプションです。
Options Output
default Individual parts for cellZones, unzoned cells (internalMesh) and patches
-cellZones NAME/LIST Specify single or multiple cellZones to write
-no-cellZones Suppress writing any cellZones
-excludePatches NAME/LIST Exclude single or multiple patches (name or regex) from writing
-index NUM Starting index for consecutive number of Ensight data/files.
-nearCellValue Use zero-gradient cell values on patches
-no-mesh Suppress writing the geometry
-no-overwrite Suppress removal of existing EnSight output directory
-no-point-data Suppress conversion of pointFields, disable -nodeValues
オプションの完全なリストは、オンラインマニュアルおよび/または OpenFOAM API ガイドに記載されています。
改良されたセルゾーンの機能性は、セルゾーンを使用したチュートリアルケースを使用してテストすることができます。foamToEnsight を実行すると、下図のようにケースを視覚化することができ、さまざまなセルゾーンが異なる色で強調表示されます。ParaViewでは、フィルタ抽出ブロックを使用して、Ensightフォーマットからセルゾーンを抽出することができます。
チュートリアル
$FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/propeller
=== 新しい運動量誤差関数オブジェクト ===
新しいmomentumError関数オブジェクトは、controlDictの設定、またはpostProcessオプションとユーティリティを介したコマンドラインの設定に基づいて、トップレベルソルバーで解かれた運動量方程式の離散化に関連したエラーを評価します。
評価は、バジェット計算に過渡項が含まれないタイムステップごとに実行されます。したがって、このツールは定常ソルバーにのみ適しています。
誤差は、以下を使用して計算されます。
<syntaxhighlight>
momentErr = divDevRhoReff() + fvc::div(phi, U) + fvc::grad(p)
</syntaxhighlight>
ここで
divDevRhoReff() は乱流運動量フラックスです.
fvc::div(phi, U)移流項
fvc::grad(p)圧力勾配
controlDict内の関数オブジェクトの例です。
<syntaxhighlight>
momErr
{
    type            momentumError;
    executeControl  writeTime;
    writeControl    writeTime;
}
</syntaxhighlight>


ソースコード
$FOAM_SRC/functionObjects/field/momentumError
チュートリアル
フォームチュートリアル/incompressible/simpleFoam/airFoil2D


== ビルドシステム ==


=== Abaqus表面ファイルの新規読み込み ===


本バージョンでは、Abaqus サーフェス要素ファイルの読み込み機能が追加されました。
Abaqus ファイルと STARCD ファイルでは、入力ファイルに拡張子 .inp が使用される場合があるため、拡張子に依存しない入出力形式を指定する機能が追加されました。例えば、以下のようになります。
<syntaxhighlight>
surfaceMeshConvert -read-format abaqus file.ext1 -write-format nastran file.ext2
</syntaxhighlight>
Handling of surface extraction from solid elements and writing sampled surfaces in Abaqus format will be made available in future releases.
Source code
$FOAM_SRC/fileFormats/abaqus
$FOAM_SRC/src/surfMesh/surfaceFormats/abaqus
=== 新しいインターフェイスの高さ関数オブジェクト ===
この関数オブジェクトは openfoam.org リポジトリから移植されました。
interfaceHeight オブジェクトは、ユーザーが指定した位置のセットの上にあるインターフェイスの高さを報告します。それぞれの場所について、その場所と最下層の境界線上のインターフェイスの垂直距離が書かれ、これらの高さが計算されたインターフェイス上の点が完全に書き込まれます。これは,位置の上下に複数のインタフェースが存在する場合,平均値が報告されるという意味で,積分アプローチを使用しています.
初期コードは、インターフェースの高さが計算されるデフォルトの方向を変更するオプションを含むように拡張されました。デフォルトでは、高さ計算は重力ベクトルに合わせて設定されますが、オプションの方向入力は、異なる方向を設定するために使用することができます。
<syntaxhighlight>
interfaceHeight1
{
    type          interfaceHeight;
    libs          (fieldFunctionObjects);
    alpha          alpha.liquid;
    direction      (1 0 0);
    writeControl  timeStep;
    writeInterval  3;
    locations      ((0 0 0) (10 0 0) (20 0 0));
}
</syntaxhighlight>
ソースコード
$FOAM_SRC/functionObjects/field/interfaceHeight
チュートリアル
$FOAM_TUTORIALS/verificationAndValidation/interCondensatingEvaporatingFoam/stefanProblem
帰属
interfaceHeight 関数オブジェクトのベースは OpenFOAM.org から移植されています。
拡張コードガイド
インターフェイスの高さ
=== 新しいダイナミックモード分解(DMD)機能オブジェクト  ===
動的モード分解(DMD)は、データ駆動型、すなわち基礎となる物理学とは独立した次元削減手法であり、与えられた流れ(またはデータセット)から支配的な時空間コヒーレント構造をモードの形で明らかにし、定量化するために使用することができるので、与えられた流れの動的特徴は、支配方程式の完全なセットを計算しなくても解釈可能、牽引可能、または再現可能になるかもしれません。DMD理論へのエレガントで有用な導入はBrunton(2018)によって与えられています。
このリリースには、Kiewat(2019)、Hematiら(2017)、およびHematiら(2014)によって開発されたアルゴリズムに基づくStreaming Total Dynamic Mode Decomposition(STDMD)と呼ばれる関数オブジェクトとしての新しいDMDバリアントが含まれています。
他のDMDバリアントの中で、STDMDは、インクリメンタルアップデートと直交則ベースでのデータ圧縮を可能にすることによって、経済化された実行可能なメモリおよびCPU使用量と並んで、一般的なDMD法の能力を提供すると推定される。
顕著な特徴。
古典的なグラム・シュミット法を含む並列処理、および直接トールスキニーQR分解(eigendecompositionソルバーを除く)
<Type>=Scalar/Vector/SphericalTensor/SymmTensor/Tensorのように、{vol,surface}<Type>Fieldが入力可能なテンプレート入力。
直交基底圧縮によるデータ圧縮が可能です。
3つのモードソートアルゴリズムと、支配的なモードを明らかにするための様々なフィルタリングエントリが利用可能です。
潜在的な(既知の)注意点。
このSTDMDリリースはベータリリースです。したがって、次のバージョンでは、入出力インタフェースや内部構造の小~中程度の変更が予想されます。
DMDは執筆時点では活発な研究分野であり、そのため、奇妙な現象に遭遇する可能性があります。
STDMD行列の中間書き込みは計算コストが高くなるため、現在のところ再起動はサポートされていません。
wallShearStressなどの境界フィールドの操作は現在サポートされていません。
postProcessユーティリティによる使用はサポートされていません。
2次元定常流入円筒からのモード場の断面を示すプロットのセット
検証テストスイートを以下に示します。各サブ図では、対応する順序を使用しています。左上=MATLAB(シリアルデータを使用)、左下=OpenFOAM(シリアル)、右上=MATLAB(パラレルデータを使用)、右下=OpenFOAM(パラレル/8-procs)。
この関数オブジェクトの最低限の動作例を以下に示します。
<syntaxhighlight>
STDMD1
{
    type                STDMD;
    libs                (fieldFunctionObjects);
    field              <inpField>;
    stdmdInterval      5.5;
}
</syntaxhighlight>
ソースコード
$FOAM_SRC/functionObjects/field/STDMD
チュートリアル
$FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D
拡張コードガイド
STDMD
帰属
OpenCFDは、STDMD機能の初期のMATLAB実装、有益な議論、有益な提案をしてくれたMarco Kiewat博士(ミュンヘン工科大学/AUDI)に感謝したいと思います。
=== 新しい関数オブジェクト。ObukhovLength ===
新しいObukhovLength関数オブジェクトは、Obukhov長さ場と関連する摩擦速度場を計算します。
地上の正規高さ、すなわち z でスケーリングされた場合、オブホフ長は大気境界層のモデリングのための無次元安定性パラメータ z/L になります。これは、乱流運動エネルギーの生成と散逸における浮力とせん断の相対的な役割を表現しています。
system/controlDict.functionsを用いたこの関数オブジェクトの最小動作例を以下に示します。
<syntaxhighlight>
ObukhovLength1
{
    type            ObukhovLength;
    libs            (fieldFunctionObjects);
}
</syntaxhighlight>
ソースコード
$FOAM_SRC/atmosphericModels/functionObjects/ObukhovLength
チュートリアル
FOAM_TUTORIALS/verificationAndValidation/atmosphericModels/atmForestStability
拡張コードガイド
オブホフの長さ
=== 新しい log(x) 関数オブジェクト ===
新しい log 関数オブジェクトは、入力 volScalarField の自然対数を計算します。
f = sln(max (f0,a)) + t
ここでは: f 出力 volScalarField f0 入力 volScalarField ln 自然対数演算子 a クリップスカラ s スカラ s スケーリング係数 t オフセット係数
この関数オブジェクトの最低限の動作例を以下に示します。
<syntaxhighlight>
log1
{
    type            log;
    libs            (fieldFunctionObjects);
    field          <inpField>;
    clip            1e-3;
    checkDimensions false;
    scale          1.0;
    offset          0.0;
}
</syntaxhighlight>
Source code
$FOAM_SRC/functionObjects/field/log
Tutorial
$FOAM_TUTORIALS/incompressible/pisoFoam/laminar/cavity
Extended code guide
log
Attribution
The base of the log function object has been ported from OpenFOAM.org
=== 新しい pow(x) 関数オブジェクト ===
新しい pow 関数オブジェクトは、入力 volScalarField の電力を計算します。
f = sfn0 + t
ここでは
f 出力 volScalararField
f0 入力 volScalararField
n 指数
s スケーリングファクター
t オフセット係数
この関数オブジェクトの最低限の動作例を以下に示します。
<syntaxhighlight>
pow1
{
    type            log;
    libs            (fieldFunctionObjects);
    field          <inpField>;
    n              0.25;
    scale          1.0;
    offset          0.0;
}
</syntaxhighlight>
ソースコード
FOAM_SRC/functionObjects/field/pow/pow.H
チュートリアル
フォームチュートリアル/非圧縮性/pisoFoam/層状/空洞
拡張コードガイド
パウダー
=== サンプリングされた表面のコントロールを改善 ===
サーフェス出力フォーマットは、一般的に使用されるフォーマットと圧縮キーワードを受け入れるように拡張されています。これらの正確な意味はコンテキストに依存します。例えば、VTK出力では、バイナリ/ASCIIフォーマットを選択しますが、圧縮は無視されます。X3D出力では、出力はASCIIのままですが、出力ファイルは圧縮できます。
この変更により、boundaryDataのバイナリ出力のサポートも追加され、マップされたフィールドのファイルサイズが改善されました。
nastran および raw フォーマットでは、幾何学的なスケーリングと同様に、柔軟なディクショナリフォーマットでの独立したフィールドスケーリングがサポートされるようになりました。
例えば、以下のようになります。
<syntaxhighlight>
formatOptions
{
    raw
    {
        compression on;
        scale  1000;    // [m] -> [mm]
        fieldScale
        {
          "p.*"  0.01;  // [Pa] -> [mbar]
        }
    }
    …
}
</syntaxhighlight>
ソースコード
$FOAM_SRC/src/surfMesh/writers/nastran
$FOAM_SRC/src/surfMesh/writers/raw




== ドキュメント ==
== ドキュメント ==
OpenFOAMのユーザードキュメントのオーバーホール
過去のリリースでは、OpenCFDはユーザードキュメントの改善を続けてきました。これはOpenFOAM v2006でも継続しており、すべてのフィールド関数オブジェクトとトップセットに対応するための努力が行われています。AMIWeights関数オブジェクトの例を以下に示します。
拡張コードガイド
フィールド関数オブジェクト
トップセット
== ビルドシステム ==
=== 新しいコンパイル済みパッケージ ===
このリリースでは、Ubuntu、openSUSE、CentOS/RedHat用にコンパイル済みのバイナリパッケージをサポートすることで、OpenFOAMの使用を簡素化しています。
https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled
パッケージの細分化は、さまざまな要件をサポートしています: https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled#sub-packages
小実行時専用パッケージ
中規模開発パッケージ
チュートリアル付きの大規模開発パッケージ
=== wmakeのビルドシステムを改良しました。===
これにより、トップレベルのスクリプトを追加することなく、追加の機能にアクセスするための自然な手段が提供され、また、スクリプトの再利用が容易になりました。例えば、wmake -build-info.
wmakeルールは追加の環境パラメータ(FOAM_EXTRA_CFLAGS、FOAM_EXTRA_CXXFLAGS、FOAM_EXTRA_LDFLAGS)を通過するようになり、コンパイルパラメータのカスタムチューニングをサポートし、OpenFOAMコードを統合する際に追加のコンパイルパラメータが必要な状況をサポートします。
'''コンパイラ/システムサポート'''
コンパイラのルールを新しく/更新しました。
linux64用のAmdコンパイラ(AOCCコンパイラ)。
linuxARM64用の富士通コンパイラ。
Darwin用のClangルールを更新し、openmpをサポートしました。
コンパイラの派生物の扱いをより簡単にしました。
オプションの 'オーバーライド' wmake ルールのサポート
'''モジュールとMPI'''
モジュールと MPI 固有のレイヤのツリー外コンパイルをサポートする新しいインフラストラクチャが追加されました。ユーザーアップグレードガイドを参照してください。
=== 可視化モジュール ===
OpenFOAMをより柔軟にするための進行中の作業の一環として、VTK関連のコンポーネントが可視化モジュールに集約され、これらの要素が含まれるようになりました。
catalyst : ParaView/Catalystによるin-situ可視化
paraview-plugins : ParaView 用の補助リーダモジュール
runTimePostProcessing : VTKベースの処理を用いたin-situ可視化
この分割により、OpenFOAMコアを再コンパイルすることなく、異なるビジュアライゼーションコンフィギュレーションを簡単に生成することができます。
これは例えば、VTK/PararaViewのバージョンや機能の異なる組み合わせをミックスしてマッチさせるために使用されます。
触媒サブモジュールは現在では廃止され、非推奨となっていることに注意してください。
多くの普通のユーザにとって、このモジュールは無視しても問題ありません。