新しいケースの作成2014年3月2日 | |
はじめに新しいケースの作成について。 使用バージョンOpenFOAM 2.3.0 新しいケースの作成新規でケースを作成する場合、ケースディレクトリを自分で作るのは大変なので、ふつうは使用するソルバー、あるいはそれに近いソルバーのチュートリアルケースをコピーし、それを修正してケースを作成する。 チュートリアルのディレクトリのパスは $FOAM_TUTORIALS で参照できる。また、コマンドで "tut" と打つとチュートリアルのディレクトリに移動できる。 慣れてきたら、自分のお気に入り設定を行ったケースディレクトリをソルバーごとに作っておき、それをコピーして使うとよいかもしれない。 foamNewCaseOpenFOAM には foamNewCase というスクリプトがある。これは新しいケースディレクトリを作るための仕組みである。 ~/.OpenFOAM/appTemplates/$WM_PROJECT_VERSION にソルバーごとのケースディレクトリをソルバーの名前で置いておくと、foamNewCase はそれをもとにソルバーのケースディレクトリを作成 (コピー) する。 たとえば、つぎのようにする。
$ mkdir -p ~/.OpenFOAM/appTemplates/$WM_PROJECT_VERSION
$ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily ~/.OpenFOAM/appTemplates/$WM_PROJECT_VERSION/simpleFoam
$ foamNewCase -list
applications available:
simpleFoam
ここでは、simpleFoam のチュートリアルケースである pitzDaily をそのままコピーした。オプション "-list" をつけて foamNewCase を実行すると、利用可能なソルバーとして "simpleFoam" と出る。 新しくケースを作る場合は、つぎのようにする。 $ foamNewCase -app simpleFoam -case newCase newCase というケースディレクトリが作成される。 境界条件の設定がチュートリアルのままで使いにくいので、つぎのようにデフォルト設定だけを記述するようにしておくとよいかもしれない。 0/U
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
#include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
".*"
{
type fixedValue;
value uniform (0 0 0);
}
}
0/p
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
#include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
".*"
{
type zeroGradient;
}
}
余計なファイルを削除しておくとよい。 さて、これを使用して cavity のケースを simpleFoam 用に作るとしたら、つぎのようになる。
$ foamNewCase -app simpleFoam -case cavity
$ cd cavity
(blockMeshDict をコピー)
$ cp $FOAM_TUTORIALS/incompressible/icoFoam/cavity/constant/polyMesh/blockMeshDict constant/polyMesh
$ blockMesh
(0/U に境界条件を追加)
movingWall
{
type fixedValue;
value uniform (1 0 0);
}
$ simpleFoam
| |
| PENGUINITIS | |