0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

interFoamでnotched disc in rotating flowの計算を試みた。
ESI版ではなんとinterIsoFoamにチュートリアルケースがあり、速度場の初期値はsetVelocityなるfunctionObjectで設定が可能である。よってこれを流用すればinterFoamでも計算ができる。
一方、Foundation版には上述の便利な機能がないため、0/UのinternalFieldにcodeStreamを適用することで速度場の初期値を設定することになる。
バージョン11でこのcodeStreamにエラーが発生した。原因の調査および対策を以下に記す。

発生状況

バージョン10でのcodeStream.Hでの例は次の通りである。

codeStream.H(v10)
internalField  #codeStream
{
    code
    #{
        const IOdictionary& d = static_cast<const IOdictionary&>(dict);
        const fvMesh& mesh = refCast<const fvMesh>(d.db());
        scalarField fld(mesh.nCells(), 12.34);
        writeEntry(os, "", fld);
    #};

    //- Optional:
    codeInclude
    #{
        #include "fvCFD.H"
    #};

    //- Optional:
    codeOptions
    #{
        -I$(LIB_SRC)/finiteVolume/lnInclude
    #};
};

これがバージョン11では「fvCFD.Hが存在しない」という理由でエラーになる。

対策

バージョン11のcodeStream.Hには次のような例が記されている。

codeStream.H(v11)
nternalField  #codeStream
{
    code
    #{
        const IOdictionary& d = static_cast<const IOdictionary&>(dict);
        const fvMesh& mesh = refCast<const fvMesh>(d.db());
        scalarField fld(mesh.nCells(), 12.34);
        writeEntry(os, "", fld);
    #};

    //- Optional:
    codeInclude
    #{
        #include "volFields.H"
    #};

    //- Optional:
    codeOptions
    #{
        -I$(LIB_SRC)/finiteVolume/lnInclude
    #};
};

インクルードするヘッダファイルがfvCFD.HからvolFields.Hに変更されている。
実際に、バージョン11ではインクルードするファイルをvolFields.Hと記述すれば問題なく動く。

おわりに

本当に一体なんでこんな変更をするのだろう...???

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?