LoginSignup
0
2

More than 5 years have passed since last update.

OpenFOAMのソルバーアプリケーション実行時に与えることのできるオプション

Last updated at Posted at 2016-06-30

参考リンク

OpenFOAM® C++ Documentation: icoFoam (incompressible flow solvers)
OpenFOAM® C++ Documentation: icoFoam.C

説明

一番簡単なチュートリアルにも使用されているicoFoamを使って説明します。上のicoFoam.Cのリンクを見てください。main関数の一行目でsetRootCase.Hというヘッダーファイルが読み込まれています。

icoFoam.C
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
を見てみると下のようになっています。

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

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2