Code of the Week #12: turbulence on

适用版本: OpenFOAM 5.x 以上

选择适当的湍流模型在流体仿真中是不可避免的,在 OpenFOAM 中,也提供了多种湍流模型,供大家使用。那么在 OpenFOAM 中,湍流模型如何设置呢?

在 OpenFOAM 的湍流模拟中,设置湍流的文件是 constant/turbulenceProperties。我们先来看一下官方的例子,tutorials/incompressible/pisoFoam/RAS/cavity,在这个 case 中,该文件的内容如下

simulationType  RAS;          // 湍流模拟的类型:laminar, LES, RAS 可选

RAS       // 雷诺平均应力模型;若选择 laminar,这一项设置是不需要的;
{         // 如果是 LES,则需要使用 LES{} 来设置它的相关参数
    RASModel        kEpsilon; // 雷诺平均应力模型的选择,kEpsilon 就是通常说的 k-epsilon 模型

    turbulence      on;       // 湍流计算开关,on 表示计算 k, e, nut 等湍流变量;而 off 则表示不计算这些变量,取其初始值
    
    printCoeffs     on;       // 系数是否打印
} 

各字段中关键词的意义如下:

  • simulationType 选择湍流模拟的类型:有 laminar, RAS, 和 LES,laminar 表示不使用湍流模型; RAS 表示雷诺平均应力模型 (Reynolds-Average Stress);LES 表示采用 LES (Large Eddy Simulation, 大涡模拟) 或 DES (Detached Eddy Simulation, 分离涡模拟)
  • RAS 设置雷诺平均应力模型的参数
    RASModel 选择雷诺平均应力模型:有 kEpsilon, kOmega, RNGkEpsilon 等
    turbulence 湍流模型计算的开关。on 表示计算湍流模型中相应的变量;off 表示不计算湍流模型的变量,而使用其初始值
    printCoeffs 是否将模型的系数在程序运行开始的时候打印到终端
    — 如果不使用缺省的模型系数,可通过 <RASModel>Coeffs 指定,比如:
kEpsilonCoeffs
{   // 以下各参数的值为缺省值,可以根据大家需要进行修改
    Cmu         0.09;
    C1          1.44;
    C2          1.92;
    C3          -0.33;
    sigmak      1.0;
    sigmaEps    1.3;
}

另外大家要注意的是,OpenFOAM 中湍流模型不一定与各标准的湍流模型相同,在使用时需要酌情考虑。还有

OpenFOAM 5.x 提供的 RASModel 有

  • LRR
  • LamBremhorstKE
  • LaunderSharmaKE
  • LienCubicKE
  • LienLeschziner
  • RNGkEpsilon
  • SSG
  • ShihQuadraticKE
  • SpalartAllmaras
  • kEpsilon
  • kOmega
  • kOmegaSST
  • kOmegaSSTLM
  • kOmegaSSTSAS
  • kkLOmega
  • qZeta
  • realizableKE
  • rheoRNGkEpsilon
  • v2f

还提供了以下 LES 模型 (含 DES 模型)

  • DeardorffDiffStress
  • Smagorinsky
  • SpalartAllmarasDDES
  • SpalartAllmarasDES
  • SpalartAllmarasIDDES
  • WALE
  • dynamicKEqn
  • dynamicLagrangian
  • kEqn
  • kOmegaSSTDES