参考リンク
OpenFOAM® C++ Documentation: icoFoam (incompressible flow solvers)
OpenFOAM® C++ Documentation: icoFoam.C
説明
一番簡単なチュートリアルにも使用されているicoFoamを使って説明します。上のicoFoam.Cのリンクを見てください。main関数の一行目でsetRootCase.H
というヘッダーファイルが読み込まれています。
62 ...
63 #include "fvCFD.H"
64 #include "pisoControl.H"
65
66 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
67
68 int main(int argc, char *argv[])
69 {
70 #include "setRootCase.H" // 引数の読み込み
71 #include "createTime.H"
72 #include "createMesh.H"
73 ...
そこで
OpenFOAM® C++ Documentation: setRootCase.H
を見てみると下のようになっています。
1 //
2 // setRootCase.H
3 // ~~~~~~~~~~~~~
4
5 Foam::argList args(argc, argv);
6 if (!args.checkRootCase())
7 {
8 Foam::FatalError.exit();
9 }
Foam::argList
クラスのオブジェクトargs
が作られているのがわかります。このFoam::argList
クラスの定義
OpenFOAM® C++ Documentation: argList
を見てみると、上から4分の1くらいのところにデフォルトで設定されているコマンドラインオプションが説明されています。
オプション | 説明 |
---|---|
-case <dir> | 現在のディレクトリではなく指定されたケースディレクトリを選択する。 |
-parallel | ケースを並列ジョブとして与える。 |
-doc | 文書をブラウザに表示する。 |
-srcDoc | ソースの文書をブラウザに表示する。 |
-help | 使用方法を表示する。 |
よって例えば
$ icoFoam -case test1
と入力するとカレントディレクトリ内にあるtest1
というサブディレクトリに作られているケースを読み取ってicoFoamを実行するということになります。
-parallelは並列計算時に使用するオプションです。例えば4つのプロセッサーを使って並列計算する場合は
$ mpirun -np 4 icoFoam -parallel
デバッグモードの場合は
$ mpirunDebug -np 4 icoFoam -parallel
とします。
OpenFOAM® v3.0+: New Parallel Functionality
OpenFOAM® wiki: How to debugging