OpenFOAM学习记录
OpenFOAM波浪算例后处理与添加湍流模型
OpenFOAM版本:OpenFOAM v2112
造波工具
olaFLOW: olaFLOW官网
olaFLOW_github
olaFlow_supplementary
波高时程监测
interfaceHeight:interfaceHeight
参考网站
cfdonline:significant wave height dissipation
关于雷诺平均纳维-斯托克斯模型中表面波下湍流的过度产生:Larsen.2018 代码: Github1
浮力修正湍流模型:Dovolder.2018 代码:buoyancyModifiedTurbulenceModels
其余OpenFOAM添加更改湍流模型代码:
GitHub2
GitHub3
OpenFOAM8 添加和修改湍流模型
How to add a turbulence model
相关算例设置
感谢用户ou_no
该用户发布了足够多的波浪算例,并分别讲解了各算例的相关设置,可供参考。
interfaceHeight
interfaceHeight1
{
// Mandatory entries (unmodifiable)
type interfaceHeight;
libs (fieldFunctionObjects);
// Mandatory entries (runtime modifiable)
locations ((0 0 0) (10 0 0) (20 0 0)); //监测点坐标
// Optional entries (runtime modifiable)
alpha alpha.water;
liquid true;
direction (1 0 0); //重力方向 与constant/g一致
interpolationScheme cellPoint;
// Optional (inherited) entries
writePrecision 8;
writeToFile true;
useUserTime true;
region region0;
enabled true;
log true;
timeStart 0;
timeEnd 1000;
executeControl timeStep;
executeInterval 1;
writeControl timeStep; //后处理结果输出为一个时间步
writeInterval 1;
}
最后会输出如下格式:
添加湍流模型(OpenFOAMv2112)
在OpenFOAM/OpenFOAM-v2006/src/TurbulenceModels/turbulenceModels下创建所要添加的文件(这里以stabRAS为例)
文件下载链接:Github1
由于该文件是基于OpenFOAM v1712版本编写,所以后续需要更改。
stabRAS文件下设置如下:
源文件
红色部分为需要更改的湍流源文件(以KOmegaSSTStab为例),结构如下:
KOmegaSSTStab.H与KOmegaSSTStab.C
文件具体内容可以自行参考各文献编写或在github上找
编译文件
绿色部分为编译文件
makeTurbModel.C
/OpenFOAM/OpenFOAM-v2006/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.H
将该文件复制到stabRAS下,然后更改为合适的文件名,这里更改为makeTurbModel.C
#include "turbulentTransportModels.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makeBaseTurbulenceModel
(
geometricOneField,
geometricOneField,
incompressibleTurbulenceModel,
IncompressibleTurbulenceModel,
transportModel
);
// -------------------------------------------------------------------------- //
// RAS models
// -------------------------------------------------------------------------- //
#include "kOmegaStab.H"
makeRASModel(kOmegaStab);
#include "kOmegaSSTStab.H"
makeRASModel(kOmegaSSTStab);
// -------------------------------------------------------------------------- //
// ************************************************************************* //
在下方添加所要添加的湍流模型。这里以KOmegaStab与KOmegaSSTStab为例。
至此,该文件添加完毕。
make文件
复制/OpenFOAM/OpenFOAM-v2006/src/TurbulenceModels/incompressible下的make文件夹到stabRAS下。
Make/files 文件
makeTurbModel.C
LIB = $(FOAM_USER_LIBBIN)/libstabRASModels
第二行要指明编译后的库存放的位置,注意要和OpenFOAM源代码的存放位置有所区分。
且,后续使用该湍流模型,需要在controlDict下添加
libs
(
"libstabRASModels.so"
);
Make/options 文件
EXE_INC = \
-I../turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lincompressibleTransportModels \
-lturbulenceModels \
-lfiniteVolume \
-lmeshTools
编译
OpenFOAM/OpenFOAM-v2006/src/TurbulenceModels/turbulenceModels/stabRAS文件下:
wmake libso
测试
打开任意算例,更改其湍流文件。任意更改RASModel,如kkkk
simulationType RAS;
RAS
{
RASModel kkkk;
turbulence on;
printCoeffs on;
}
出现如下错误提示:
--> FOAM FATAL IO ERROR:
Unknown RASModel type kkkk
Valid RASModel types :
21
(
LRR
LamBremhorstKE
LaunderSharmaKE
LienCubicKE
LienLeschziner
RNGkEpsilon
SSG
ShihQuadraticKE
SpalartAllmaras
kEpsilon
kEpsilonLopesdaCosta
kEpsilonPhitF
kOmega
kOmegaSST
kOmegaSSTLM
kOmegaSSTSAS
kOmegaSSTStab //成功添加
kOmegaStab
kkLOmega
qZeta
realizableKE
)
发现湍流模型KOmegaSSTStab添加成功!