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

提供:オープンCAEWiki OpenCAE Wiki
ナビゲーションに移動 検索に移動
124行目: 124行目:
</syntaxhighlight>
</syntaxhighlight>


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


MPI のみのビルドセグメントを扱うための追加の Allwmake-mpi スクリプトが提供されています。関連するセクションでは、FOAM_MPI_LIBBIN ターゲットの場所 (通常は FOAM_LIBBIN/FOAM_MPI がデフォルト) を使用して、ツリー外ターゲットでのビルドを可能にしました。
例えば、トップレベルの Allwmake を使ってデフォルトの MPI 設定 (例: system openmpi) で OpenFOAM をビルドした後、異なる MPI で MPI レイヤーをリビルドすることができます。
任意の既知の型
<syntaxhighlight>
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"
}
</syntaxhighlight>
そして、これを使ってThirdPartyのptscotchを再構築してください。
<syntaxhighlight>
(
    othermpi
    $WM_THIRD_PARTY_DIR/makeSCOTCH
)
</syntaxhighlight>
を作成し、OpenFOAM の mpi 依存部分を再構築することができます。
例えば、既存の docker/signularity イメージを使って新しい MPI コンポーネントをリビルドする場合など、ソース外のインストール場所を提供することも可能です。
<syntaxhighlight>
for script in $(find src -name Allwmake-mpi)
do
(
    other_mpi
    export FOAM_MPI_LIBBIN="$HOME/tmp/install-prefix/lib/$FOAM_MPI"
)
done
</syntaxhighlight>


== 前処理 ==
== 前処理 ==

2020年6月30日 (火) 22:14時点における版

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

前処理

数値演算

ソルバーと物理モデル

境界条件

後処理

ビルドシステム

ドキュメント