局所時間ステップ (LTS)

2015年2月25日

はじめに

pimpleFoam を局所時間ステップ (LTS) 化する。

使用バージョン

OpenFOAM 2.3.1

ファイル

pimpleFoam の改造

pimpleFoam を LTSReactingFoam のように局所時間ステップ用ソルバーに書き換える。

$FOAM_SOVERS/combustion/reactingFoam/LTSReactingFoam から以下のファイルをコピーする。

  • readTimeControls.H
  • setInitialrDelta.H
  • setrDeltaT.H

インクルードファイルを追加。

#include "fvcSmooth.H"

"setInitialrDeltaT.h" のインクルードを追加。

//        #include "CourantNo.H"
//        #include "setDeltaT.H" 
        #include "setInitialrDeltaT.H"

"setrDeltaT.H" のインクルードを追加。

        runTime++;

        Info<< "Time = " << runTime.timeName() << nl << endl;

        #include "setrDeltaT.H"

"readTimeControls.H" の alphaTemp の定義を削除。"setrDeltaT.H" の rho を用いているところと、alphaTemp を用いている部分を削除する。

ケース設定

非定常項のスキームとして localEuler を指定する。

ddtSchemes
{
    default         localEuler rDeltaT;
}

system/fvSolution で以下のパラメタを設定。

PIMPLE
{
    ...
    maxCo               1;
    maxDeltaT           1;
    rDeltaTSmoothingCoeff 1;
    rDeltaTDampingCoeff 1;
}

maxCo と maxDeltaT によって時間刻み幅が制限される。これを小さくすると残差の変化が緩慢になる。rDeltaTSmoothingCoeff、rDeltaTDampingCoeff は 0〜1 の値を指定する。