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?

OpenFOAM 8に乱流モデルを追加する

Last updated at Posted at 2023-11-21

OpenFOAM 3から7まで

OpenFOAMの3から7までは下記のやり方で大丈夫だと思います。

OpenFOAM 8に乱流モデルを追加する

8からsrc/TurbulenceModelsがなくなり,src/MomentumTransportModelsに乱流モデルを入れるようになりました。

乱流モデル自体のソース

kEpsilonを改造して,kEpsilon2というモデルを作るとします。そのソースコードは

src/MomentumTransportModels/momentumTransportModels/RAS

の下に
kEpsilon2というディレクトリをつくって,.Cと.Hのファイルをおきます。話の都合上,これらのファイルもkEpsilon2.C, kEpsilon2.Hという名前になってるとします。

src/MomentumTransportModels/momentumTransportModels/RASにRANSのモデルがあります。

乱流モデルの名前の記述

src/MomentumTransportModels/の下にcompressibleとincomprssibleというディレクトリがあります。compressibleでのモデル追加は

src/MomentumTransportModels/compressible/fluidThermoMomentumTransportModels/fluidThermoMomentumTransportModels.C

に 

#include "kEpsilon2.H"
makeRASModel(kEpsilon2);

を追記します。

incompressibleのモデル追加は

src/MomentumTransportModels/incompressible/kinematicMomentumTransportModels/kinematicMomentumTransportModels.C

に 

#include "kEpsilon2.H"
makeRASModel(kEpsilon2);

を追記します。

OpenFOAM 9の場合

圧縮性は

src/MomentumTransportModels/compressible/dynamicMomentumTransportModels/dynamicMomentumTransportModels.C 

非圧縮は

src/MomentumTransportModels/incompressible/kinematicMomentumTransportModels/kinematicMomentumTransportModels.C

に書きます。

lnIncludeを一旦消す

モデルの追加なので,すでに乱流モデルのビルドは終わっていると思います。追加したモデルのビルドのまえにlnIncludeを消します。(これをやらないとソースコードが見つからないとエラーします。正しいお作法があるような気もしますが,とりあえず,これでなんとかします)

src/MomentumTransportModels/momentumTransportModels/lnInclude

をけしてから,

src/MomentumTransportModels

のなかのAllwmakeを実行します。

./Allwmake

渦熱拡散係数とか乱流Prandtl数とかも修正したい。

渦熱拡散係数(alphat)や乱流Pr数とかは

src/ThermophysicalTransportModels/turbulence/eddyDiffusivity

で定義されています。

もしこれらの変数を修正したいときはeddyDiffusivityをコピーして新しく作ったほうがいいです。

eddyDiffusivity2を作るとして,

src/ThermophysicalTransportModels/turbulence/

にeddyDiffusivity2というディレクトリをつくって,ソースコードをいれておきます。rhoReactionThermoを使う場合は

src/ThermophysicalTransportModels/rhoReactionThermophysicalTransportModels.C

#include "eddyDiffusivity2.H"
makeRASLESThermophysicalTransportModel(RAS, eddyDiffusivity2);

を追記します。

src/ThermophysicalTransportModels/lnInclude

src/ThermophysicalTransportModels/rhoReactionThermo/lnInclude

を消してから,

src/ThermophysicalTransportModels/Allwmake

を実行します。

自作のeddyDiffusivity2モデルを使うにはconstantにthermophysicalTransportというファイルをつくって,

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  8
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      thermophysicalTransport;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

RAS
{
    model   eddyDiffusivity2;

    Prt     0.85;
}

// ************************************************************************* //

とか書いて使います。Prtはここでは0.85に設定してます。thermophysicalPropertiesとかと別なので注意。

感想

年々乱流モデルの追加が難しくなっていってるような。。。
OpenFOAM11にいたってはソルバが集約されて,個別の改造はどうするんだって感じでだし。。。

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?