OpenFOAM v2006 リリースノート

提供:オープンCAEWiki OpenCAE Wiki
2020年6月30日 (火) 22:20時点におけるMmer547 (トーク | 投稿記録)による版 (→‎名前の変更)
ナビゲーションに移動 検索に移動

OpenFOAM v2006 リリースノート

アップグレード

非推奨と削除

RANSのクロージャモデルを削除しました: v2f

v2f RANS乱流閉鎖モデルは、OpenFOAMコミュニティのメンバーとの長い議論の結果、kEpsilonPhitFモデルを支持して削除されました。v2fモデルは、(Lien and Kalitzin, 2001)の研究に基づいており、(Durbin, 1995)のオリジナルのv2-f手法を再構築したもので、特に壁境界でのv2とf場の連成定式化に起因する分離解アルゴリズムに固有の数値剛性を低減しています。しかし、このモデルについては、モデルの忠実性の点で様々な欠点が文献で報告されている。v2-f法の欠点を克服するために、(Laurence et al., 2005)は、数値剛性を低減するために、v2スケールを等価な無次元形式、すなわちphitに変換することにより、v2-f法を再評価した。このバリアント、すなわちkEpsilonPhitFは、元のv2-fモデルの理論モデルの忠実度を維持しつつ、数値的なロバスト性とグリッド異常に対する鈍感性を提供すると考えられている。

削除された壁関数:v2WallFunctionとfWallFunction

v2f RANSモデルの削除に続いて、対応する壁関数、すなわち、kEpsilonPhitFモデルで必要とされないfWallFunctionとv2WallFunctionが削除されました。

foamToEnsightPartsを削除しました。

foamToEnsightParts ユーティリティ(シリアルのみ)は、foamToEnsight ユーティリティの改良により冗長になり、削除されました。

名前の変更

nutkAtmRoughWallFunctionの境界条件がatmNutkWallFunctionに改名され、大気モデルの残りの機能名と一貫性を持たせるために、セットアップの下位互換性を提供しませんでした。

Horace Lambの遺産を適切に認識するため、関数オブジェクトlambVectorの名前をLambVectorに変更しました。

設定・環境

ParaViewプラグイン

PV_PLUGIN_PATH は、実際にディレクトリが存在する場合のみ設定してください。 これは最初のコンパイル時に2回のパスが必要になることを意味しますが、その後の信頼性を向上させます。

通常のOpenFOAMインストール以外でビルドされたプラグインのサポートを容易にするために、任意のPV_PLUGIN_PATHをparaFoam用に扱います。paraFoam -help-fullで明らかになるように。


-plugin-path=DIR  Define plugin directory (default: $PV_PLUGIN_PATH)


paraviewプラグインが(可視化モジュールの一部として)ビルドされている場合、それらのプラグインの前にはParaFoamが付けられるようになりました(ParaFoamBlockReaderやParaFoamReaderなど)。


設定ディレクトリの取り扱い

FOAM_CONFIG_MODE環境変数は、シェルソーシング中にどのディレクトリが検索されるかを制限するために、(ugo, o etc)のような値を与えることができます。これは制御性を向上させますが、必要に応じてユーザが誤って設定してしまうことを防ぐために、OpenFOAM prefs.sh ファイル内で独自の値を定義することも可能にします。


FOAM_CONFIG_ETC環境は、プロジェクトなどのファイルを見つけるときに、追加の検索層を注入することを可能にします。

foamCreateModuleInclude のシェル構文

etc/bashrc 自体を調達する代わりに、後から調達するためのシェル環境を事前に生成することができます。

Wmake調整

その他の wmake サブコマンド

これにより、トップレベルのスクリプトを追加することなく、自然に追加機能にアクセスできるようになり、また、スクリプトの再利用が容易になりました。

例えば

wmake -check-dir は 1 つまたは 2 つのディレクトリ名を取り、スタンドアロンスクリプトの wmakeCheckPwd (シンボリックリンクとして利用可能) を置き換えます。

wmake -build-info は、あまり使われていない wmakeBuildInfo を置き換えます。

wclean -build と wclean -platform は、あまり使われていない wcleanBuild と wcleanPlatform をそれぞれ置き換えるためのものです。

統合と改善は次のバージョンに向けて継続します。

追加のコンパイルパラメータ

wmakeシステムは、以下の環境パラメータを通過するようになりました。

FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS

OpenFOAMコードを統合する際に追加のコンパイルパラメータが必要な状況やコンパイルパラメータのカスタムチューニングをサポートします。

Allwmake は 優先的に Allwmake.override スクリプトを扱い、パッケージングツールが代替の Allwmake スクリプトを定義できるようにします。

より多くのポータブルパス wmakeツールチェーンのバイナリ(wmkdepend, lemon, ....)は、platforms/toolsの下に配置されました(以前はwmake/platformsの下にインストールされていました)。これは、ソースのみのパッケージやバイナリのみのパッケージを作成する際に役立ちます。

コンパイラの派生物をより簡単に扱えるようになりました。

これで、コンパイラのバリアントを作成するために[-+.~]で分割することが可能になりました。以下のようなものです。

WM_COMPILER=クラングベンダーのような単純な可読名

異なる情報を組み合わせた将来の定義 例えば

WM_COMPILER=Clang~openmp
WM_COMPILER=Clang+cuda~openmp

spackが使っているのと同じように、+ (足し算) と ~ (引き算) の記法を使います。

オプションで wmake ルールをオーバーライド

オプションの wmake ルールのオーバーライドをサポートします。存在する場合、コンパイラー・ファミリーのオーバーライド・ルールは、コンパイラー・ファミリーの一般的なルールが含まれた後に含まれます。これにより、動的に生成されたコンテンツにいくつかの値をオーバーライドするための中心的な手段を含めることができます。 例えば、異なるバージョンの gcc (システムコンパイラ) を扱うために wmake/rules/linux64Gcc/override には以下のようなものが含まれています。

ifneq (,$(findstring 9, $(WM_COMPILER)))
    cc  := gcc-9
    CC  := g++-9 -std=c++11
endif

MPI-rebuilds の粒度とカプセル化の改善

MPI のみのビルドセグメントを扱うための追加の Allwmake-mpi スクリプトが提供されています。関連するセクションでは、FOAM_MPI_LIBBIN ターゲットの場所 (通常は FOAM_LIBBIN/FOAM_MPI がデフォルト) を使用して、ツリー外ターゲットでのビルドを可能にしました。 例えば、トップレベルの Allwmake を使ってデフォルトの MPI 設定 (例: system openmpi) で OpenFOAM をビルドした後、異なる MPI で MPI レイヤーをリビルドすることができます。 任意の既知の型

othermpi()
{
    export WM_MPLIB=OPENMPI
    export FOAM_MPI=openmpi-3.1.3

    export OPAL_PREFIX=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
    export MPI_ARCH_PATH="$OPAL_PREFIX"
}

そして、これを使ってThirdPartyのptscotchを再構築してください。

(
    othermpi
    $WM_THIRD_PARTY_DIR/makeSCOTCH
)

を作成し、OpenFOAM の mpi 依存部分を再構築することができます。 例えば、既存の docker/signularity イメージを使って新しい MPI コンポーネントをリビルドする場合など、ソース外のインストール場所を提供することも可能です。

for script in $(find src -name Allwmake-mpi)
do
(
    other_mpi
    export FOAM_MPI_LIBBIN="$HOME/tmp/install-prefix/lib/$FOAM_MPI"
)
done

ビルディングモジュールの任意の設置場所 追加モジュールやユーザコードをコンパイルするとき、通常のFOAM_USER_LIBBIN, FOAM_SITE_LIBBIN, FOAM_LIBBINを超えたインストール場所の制御が必要であり、これらの値には これは、標準のデフォルトを扱うためのwmakeルールを提供することで処理されるようになりました。


GENERAL_RULES/module-path-user


GENERAL_RULES/module-path-group


GENERAL_RULES/module-path-project


を以下のように組み入れています。

Make/options

include $(GENERAL_RULES)/module-path-user

Make/files

LIB = $(FOAM_MODULE_LIBBIN)/libMyLibrary


デフォルトでは、これらはFOAM_USER_{APPBIN,LIBBIN}にコンパイルされますが、コンパイル時に調整することができます。例えば

wmake -module-prefix=/path/my-install-location


または

./Allwmake -module-prefix=/path/my-install-location
./Allwmake -prefix=/path/my-install-location

または

FOAM_MODULE_PREFIX=/path/my-install-location ./Allwmake


入力辞書

大気モデル

FOAM_SRC/atmosphericModels/で提供されているモデルは、以下のように$FOAM_CASE/system/controlDictファイルに明示的にAtmosphericModelsライブラリ名を追加することでのみ使用できるようになりました。

// Make sure all utilities know specialised models
libs            (atmosphericModels);

例として、$FOAM_TUTORIALS/verificationAndValidation/atmosphericModels/HargreavesWright_2007/system/controlDictを参照してください。

境界条件: turbulentDigitalFilterInlet

turbulentDigitalFilterInletの境界条件設定を、設定(出力ではなく)の下位互換性を提供しないまま、かなりの範囲で修正しました。 新しい設定の例は $FOAM_TUTORIALS/verificationAndValidation/turbulentInflow/PCF/0.orig/inlet.DFM/U を参照してください。

blockMesh

blockMesh のデフォルトとして、以前のものではなくトポロジカルマージを使用します。点の位置を使ってマージします。トポロジカルマージの方が高速で、以下のように動作します。は、高アスペクト比のメッシュに適しています。時折 ポイントベースのマージが望ましい、mergeType ポイント; を追加することができます。で指定された blockMeshDict または blockMesh -merge-points に変更します。コマンドラインで使用できるようになりました。

blockTopology.vtuを生成する新しいblockMesh -write-vtkオプションが追加されました。ファイル (VTK ASCII, XML) を使用して、 paraview で読み込んで検査することができます。

このファイルには、同等の obj ファイル (-write-obj オプションで生成されます。以前は -blockTopology) 接続性、セル形状、セルIDを含むので(同等の をブロック番号に変換します)。

前処理

数値演算

ソルバーと物理モデル

境界条件

後処理

ビルドシステム

ドキュメント