OpenFOAM算例

此页面用于提供各类OpenFOAM官方没有包含的算例。可以作为官方算例的扩充版本。算例全部开源。分为3部分:

  1. 岳子的CFD课中的OpenFOAM算例;

  2. 岳子帮助CFD中文网调试的算例;

  3. 其他算例;

岳子的CFD课中的OpenFOAM算例下载方式:

git clone https://e.coding.net/dyfluid/OpenFOAM/dyfluidCourse.git

下载后如下图显示,其他算例请参考下文。

城市工厂流场CFD流场数据集

简介:本算例文件为纯自制。相关算例可适配数据驱动来生成CFD训练集。网格生成不需要stl文件,全部自动生成。算例共有16个速度方向,模拟不同方向的风速。相应的结果可以结合数据驱动CFD方法,来对城市建筑工厂等进行快速流场重组:

运行方法

bash Allrun

链接点击下载

Laval蒸汽喷管

简介:算例文件来自于CFD中文网。用户计算的Lavel喷管,与Fluent计算的结果对不上。更详细的信息请参考CFD中文网。经调试后计算结果如下:

运行方法

rhoPimpleFoam

链接点击下载

瞬态多相台阶流

简介:算例文件来自于CFD中文网。用户无法得到收敛的结果,且无法进行计算。更详细的信息请参考CFD中文网。经调试后计算结果如下:

运行方法

of2306
blockMesh
setFields
interFoam

链接点击下载

稳态超音速横向射流

简介:本算例为一个二维的超音速与低音速混合流动。本算例文件来自于CFD中文网。用户无法得到收敛的结果,且无法进行计算。

数值关键点

  • 速度:进口固定值;出口零梯度;

  • 温度:进口固定值;出口零梯度;

  • 压力:进口固定值;出口零梯度;

  • 超音速流动,其中低音速流动可以固定进口速度值并给定零法向梯度边界条件;

  • 算例最终可以稳定收敛;算例需使用upwind稳定后,再使用高阶离散格式计算,否则容易发散;计算结果如下:

运行方法

blockMesh
rhoSimpleFoam

链接点击下载


稳态跨音速二维叶栅

简介:本算例为一个二维的跨音速叶栅模拟。本算例文件来自于CFD中文网。原算例和Fluent计算得到的结果相比,其叶片前缘的局部高速区域明显很弱,这是不太符合一般的气动规律,如下图:

数值关键点

  • 速度:固定方向的速度进口pressureDirectedInletOutletVelocity,可指定角度;

  • 温度:总温边界条件totalTemperature

  • 压力:总压边界条件totalPressure

  • 压差驱动流动,速度进口方向固定;

  • 湍流变量:进口固定值、出口零法向梯度、附加壁面函数;

  • cyclicAMI边界条件;

  • 物性为空气;

  • 湍流模型选用kOmegaSST;

  • 算例最终可以稳定收敛;且可以计算非常长的迭代步并趋向于稳定。但使用高阶格式,会发散。叶片前缘的局部高速区域成功捕获,最大马赫数约在1.3左右;

运行方法

rhoSimpleFoam

链接点击下载


稳态大尺度大气流动

简介:这是一个非常简单的大气流动模拟。计算域为一个矩形计算域。长宽高分别为3公里、5公里、1公里。一共1500个网格。计算需要给定了进口温度梯度。在计算的过程中,发现收敛性非常差,或者是流场完全不正确。

  • 算例在计算域缩小一定程度的情况下,收敛非常好。

  • 算例在密度为常数的情况下,收敛非常好。

  • 算例不附加温度梯度,可以收敛。

数值关键点

  • 速度:进口固定值,或者抛物线速度进口;

  • 压力:进口零梯度,出口固定值;

  • 温度:内部场采用codeStream构建非均一分布;进口采用固定梯度分布;

  • 物性为空气;

  • 湍流均采用进口固定值、出口零梯度、壁面函数相关设置;

  • 附加了fvConstrants来限定温度变化,如果不附加限定,温度会出现负值;在附加限定的时候,有的时候会发散,但是发散的原来来自于速度;

运行方法

blockMesh
buoyantFoam

链接点击下载 。本设置并不能够运行成功。但仅仅需要调节2个参数即可。感兴趣的可以自己玩一下。提示:

  • 更改p_rgh边界条件的一个参数;

  • 更改速度压力耦合策略的一个参数;


圆柱绕流

简介:本采用icoFoam对圆柱绕流进行计算模拟。算例采用blockMesh生成的非正交六面体网格。左侧为进口,右侧为出口,计算域内存在一个圆柱。上下边界为对称面。

数值关键点

  • 速度:进口固定值,出口零梯度;

  • 压力:进口零梯度,出口固定值;

  • 物性为空气;

运行方法

blockMesh
icoFoam

链接点击下载


不可压缩DNS

简介:icoFoam由于不附加任何湍流模型直接求解N-S方程,并采用二阶有限体积法进行离散求解。因此可用作为一个直接模拟求解器进行直接模拟。一些文章中更严谨的将其称为准直接模拟:quasi-DNS。另外,在这里强调OpenFOAM中的icoFoam、pisoFoam以及pimpleFoam在不使用湍流模型的情况下是相同的。本算例为一个周期方管的直接模拟。本算例对标相关文献的研究工作 (Komen et al., 2014)

数值关键点

  • 速度:速度初始条件通过boxTurb工具生成散度为零的速度场。同时将其通过mapFields映射到非均匀网格。进出口均为周期性边界;

  • 压力:进出口均为周期性边界;

  • 物性为空气;

  • 算例通过meanVelocityForce添加了压力梯度力来保持速度恒定;

运行方法

blockMesh
icoFoam

链接点击下载


后向台阶流

简介:采用simpleFoam模拟的2维后向台阶管道流动。其为一个稳态算例。算例对标相关文献的研究工作 (Armaly et al., 1983)

数值关键点

  • 速度:速度入口采用抛物线速度分布型线:

inlet
{
    type            codedFixedValue;
    value           uniform (0 0 0);
    
    redirectType inletLaminarSquareProfil;
    code
    #{
         const vectorField& Cf = patch().Cf(); 

         const scalar H	= 0.0052; 
         const scalar Umax = 0.879542893; 

         forAll(Cf, faceI) // loop over all the patch faces
         {
            const scalar y = Cf[faceI].y() - 0.0049; 
            (*this)[faceI] = vector(Umax*(4*y/H-4*sqr(y/H)), 0, 0);
         }
     #};
}
  • 压力:进口零梯度,出口固定值;

  • 物性为空气;

运行方法

blockMesh
simpleFoam

链接点击下载


亚音速三段翼外流场

简介:本算例为一个三段翼的亚音速流动。速度的大小约为125米每秒。最高马赫数大约在0.7左右。本算例文件来自于CFD中文网。用户进行设置的时候,遇到了严重的收敛问题。且采用SIMPLE算法以及SIMPLEC算法计算出来的结果不一致。

数值关键点

  • 速度:进口固定值,125米每秒,出口零梯度;

  • 压力:进口零梯度,出口固定值;

  • 湍流变量:进口固定值、出口零法向梯度、附加壁面函数;

  • 物性为空气;

  • 湍流模型选用kOmegaSST;

  • 经过调试,算例可选用SIMPLEC或SIMPLE算法,最终收敛的阻力系数均为0.035;注意,使用SIMPLEC以及SIMPLE需要设置不同的松弛因子,这在fvSolution中已经做了包含;

  • 算例可以附加transonic开关,也可以关闭。不影响最终收敛后的结果;

运行方法

rhoSimpleFoam

链接点击下载


喷管CDV:超音速

简介:本算例为一个二维的轴对称的超音速喷管算例。算例可以通过不同的压差,来实现超音速、跨音速、以及亚音速流动。同时对数值处理的方式极为不同。是一个非常有意思的,很具有数值挑战性的算例。下图来自于NASA官网,可以看出,在出口压力越来越低的情况下,流动呈现非常不同的特征。本算例出口压力很低,为一个超音速流动。

数值关键点

  • 速度:进出口均为零法向梯度;

  • 温度:进口固定值,出口零梯度;

  • 压力:进口总压边界条件totalPressure;出口无反射边界条件waveTransmissive

  • 压差驱动超音速流动;

  • 无粘流动;

  • 层流;

运行方法

./Allrun

链接点击下载


喷管CDV:亚音速以及跨音速

简介:本算例在上述算例上做了小的修正,仅仅更改出口压力即可,此算例出口压力设置为8900。亚音速算例与超音速算例的数学特征不同。因此必须要给定压差边界条件。将算例出口压力设置为7500,算例还将呈现正激波,且流动会choke。

数值关键点

  • 速度:进出口均为零法向梯度;

  • 温度:进口固定值,出口零梯度;

  • 压力:进口总压边界条件totalPressure;出口固定值条件fixedValue

  • 压差驱动亚音速流动;

  • 无粘流动;

  • 层流;

运行方法

./Allrun

链接点击下载


稳态地形流动

简介:本算例模拟地形。计算域尺度非常大。stl文件由CFD中文网提供。用户遇到的问题是地形网格生成质量很差无法用于计算。经过更换网格生成网格,可以高效率的收敛。但目前有若干问题:

  • 算例尺度非常大,高度有3000米。使用默认的kEpsilon模型由于在高空会预测过大的湍流粘度,因此需要将湍流模型进行修正。本算例并没有进行湍流模型修正,因此将算例尺度整体缩小10倍,最高尺度为300米。缩小后的计算域可以使用kEpsilon模型;

  • 算例采用网格点移动的方法生成地形的高质量结构网格;

数值关键点

  • 本算例没有特殊的数值处理,只不过采用网格点移动的方式来生成网格,且200多步计算收敛;

运行方法

./Allrun

链接点击下载


瞬态亚音速二维叶栅

简介:本算例为一个二维的亚音速瞬态叶栅模拟。本算例文件来自于CFD中文网。原算例采用sonicFoam进行计算,算例可以稳定的收敛一段时间,但是出口背压不断减小,进口静压也是减小。因为进口总压一定,进口速度也会不断增大,当进口Ma数大于1的时候整个计算就会崩掉。如果强行换成fixedMean或者fixedValue出口背压就会不断增大,出口就像被堵住了一样。为了适配OpenFOAM-10,本算例采用rhoPimpleFoam进行计算。为了最后达到近似稳态的效果,计算耗时比较长。

数值关键点

  • 速度:固定方向的速度进口pressureDirectedInletOutletVelocity,可指定角度;

  • 温度:总温边界条件totalTemperature

  • 压力:总压边界条件totalPressure;出口无反射边界条件waveTransmissive

  • 压差驱动流动,速度进口方向固定60度;

  • 湍流变量:进口固定值、出口零法向梯度、附加壁面函数;

  • cyclicAMI边界条件;

  • 物性为空气;

  • 湍流模型选用kOmegaSST;

运行方法

rhoPimpleFoam

链接点击下载


可压缩ERCOFTA泵

简介:本算例为客户邮件发送的可公开算例。ERCOFTA泵得益于实验数据比较全面,因此经常被用于研究湍流模型以及相关的算法验证。本算例为一个2D的ERCOFTA泵。采用可压缩瞬态/稳态流场求解器模拟。旋转部分采用MRF方法。在使用MRF方法的时候,需要在网格区域指定旋转区域。本算例附带瞬态以及稳态相关结果。稳态的计算时间大大小于瞬态。

数值关键点

  • MRF多重参考系;

  • cyclicAMI网格交界面;在cyclicAMI与MRF共同使用的情况下,注意cyclicAMI网格patch不能移动;

  • kOmegaSST湍流模型;

  • movingWallVelocity边界条件(旋转区域的壁面需要指定本边界条件);

运行方法

瞬态直接运行rhoPimpleFoam,稳态运行rhoSimpleFoam

链接点击下载


亚音速轴对称射流

简介:本算例为一个亚音速轴对称射流。算例文件来自于CFD中文网的相关讨论。算例对标NASA的提供的轴对称亚音速流动。出口流速大概在165m/s。用户进行设置的时候,遇到了下列问题:

  1. 稳态瞬态结果对不上。

  2. 进口速度震荡问题。

经过调试后,算例可成功运行并结果具有对比性。

数值关键点

  • wedge几何;

  • freestream自由流边界条件;

  • totalTemperature总温边界条件;

  • totalPressure总压边界条件;

  • 物性为空气;

  • 湍流模型选用kOmegaSST;

运行方法

rhoPimpleFoam

链接点击下载


壁面\(y^+\)验证

简介:本算例的目的非常简单,就是通过RANS方法,验证OpenFOAM中的湍流模型预测的无因此\(y^+\)以及\(u^+\)的精准性。

数值关键点

  • 采用1D网格,采用周期网格;网格点不超过200个,计算非常快;

  • cyclic边界条件;

  • 相应的湍流模型壁面函数的使用;

  • 已经测试LamBremhorstKE、LaunderSharmaKE、LienLeschziner、LienCubicKE、v2f、qZeta低雷诺数湍流模型;

  • 已经测试kEpsilon、kOmega高雷诺数湍流模型;

  • 算例可以直接运行,可以一键出图;

运行方法

./Allrun

链接点击下载


泰勒泡泡流

简介:本文介绍的验证算例为管道段塞流/泰勒泡。细长管道内的气液流动通常可分为5种流形:泡状流(bubbly flow)、段塞流(slug flow)、搅拌流(churn flow)、塞状环状流(slug-annular flow)和环装流(annular flow)。泡状流指气泡以不规则的类球形形态分散在液相中,气相可以看作为离散相,液相可以看作为连续相。在气液相表观速度相差不大或基本相等的情况下,会形成段塞流,又称泰勒流。段塞流的特点为气塞与气塞互相被各自分开,气泡与管道壁面之间有一层很薄的液膜,气塞单元或者液塞单元的长度大于或者等于管道横截面的宽度。在通过VOF模型进行计算的时候,模型需要能够捕获这种段塞的行为而不是分层流。本验证算例来源于CFD中文网。用户红豆沙提供的网格文件。下图即为本算例模拟的泰勒泡的几何与网格。

数值关键点

  • 气相从下方进入,液体从上方进入,算例运行一段时间后,应出现段塞流特征;

  • 经测试,不同的气相流速、液相流速展现非常不同的流动行为,用户可尝试调节不同的流速,研究流速对流形的影响;

  • 本算例采用水表示连续相,用户可尝试使用非牛顿流体作为连续相,研究连续相物性对流形的影响,类似的研究可参考这篇文章;

运行方法

fluentMeshToFoam fluent.msh
interFoam

链接点击下载


2D黎曼问题

简介:超音速黎曼问题主要用于研究各种离散格式的精准性。本算例为一个2D黎曼问题。相对于1D黎曼问题,可以深入的研究不同方向速度格式分裂对结果的影响。同时可以看出,有限体积法下的2D黎曼问题的精度确实有待提升。

数值关键点

  • 本算例的网格采用1600万矩形网格。用户可以在blockMesh里面将网格数量减小;

  • 通过setFields对初始场进行设置,获得黎曼问题初始场;

  • 采用超音速密度基求解器rhoCentralFoam进行求解;

运行方法

./Allrun

链接点击下载


气液多相混合

简介:OpenFOAM-10中的multiphaseEulerFoam的前身有很多。在OpenFOAM-9中被称之为reactingTwoPhaseEulerFoam。在更老的版本为compressibleTwoPhaseEulerFoam。在可压缩版本之前是twoPhaseEulerFoam。最初的demo版本求解器是bubbleFoam。气液多相混合涉及到复杂的数值求解技巧。OpenFOAM运用了成熟的数值方法来处理气液多相混合问题。整个multiphaseEulerFoam求解器的演变,代表了OpenFOAM官方数值技巧的迭代更新。对multiphaseEulerFoam求解器进行学习,可以深入到底层获得对多相流甚至单相流NS方程求解更深层次的理解。

在OpenFOAM-10中自带的算例主要为以下几个:

  • bubbleColumn:中等相分数气-液混合鼓泡床模拟

  • fluidisedBed:稠密气-固流化床模拟

  • bubbleColumnEvaporatingReacting:附加反应与传质的中等相分数气-液混合鼓泡床模拟

  • mixerVessel2D:旋转机械中的中等相分数气-液混合问题

  • wallBolling:壁面沸腾

除上述算例外,自带算例还包含若干其他算例在此不一一介绍。本文介绍的验证算例为较低相分数的气-液鼓泡床。几何形状简单,但流态复杂。在一个长方体中,气体自下方的小孔注入,水中的气泡由于浮力上浮。不同的气量,展现一定的周期流场结构(如下图),可用来促进传质混合。

鼓泡床实验观测值与双流体模型的模拟结果

数值关键点

本验证算例可参考相关论文(Li et al.)。算例采用的网格为纯六面体结构网格。气相从下方进入,上方为自由出口,算例运行一段时间后,气体呈现周期的流场分布。0文件夹的主要设置如下:

  • 气相相分数alpha.air:默认均一分布uniform 1,在算例运行前需要用setFields进行设置。鼓泡床下部为水,上部为空气

  • 气相导热系数alphat.air:本算例不考虑传热,即均一分布uniform 0

  • 液相导热系数alphat.water:本算例不考虑传热,即均一分布uniform 0

  • 液相湍流动能耗散率epsilon.water:内部场给定一个较小的值,进口固定值,壁面采用壁面函数

  • 液相湍流动能k.water:内部场给定一个较小的值,进口固定值,壁面采用壁面函数

  • 液相湍流粘度nut.water:内部场给定一个较小的值,其他均有k和epsilon计算而来,壁面采用壁面函数

  • 去除静水压力的压力p_rgh:内部场给定静压,出口采用prgh专用出口条件,壁面采用零发向梯度

  • 气相温度T.air:本算例不考虑传热,温度场的设置不会影响计算结果,但文件需要包含,不做介绍

  • 液相温度T.water:本算例不考虑传热,温度场的设置不会影响计算结果,但文件需要包含,不做介绍

  • 颗粒温度系数项Theta:本算例为气液混合,但文件需要包含,不做介绍

  • 气相速度U.air:进口速度采用固定值,满足表观气速流量计算假设,出口为自由出口

  • 液相速度U.water:进口速度为0,壁面无滑移,出口为自由出口

constant文件夹的物性主要设置如下:

  • 液相湍流设置turbulenceProperties.water:采用kEpsilon湍流模型

  • 气相湍流设置turbulenceProperties.air:采用层流模型设置

  • 液相热动力学参数thermophysicalProperties.water:采用水的热动力学经典设置

  • 气相热动力学参数thermophysicalProperties.air:采用气相的热动力学经典设置

  • 重力g:重力设置

  • 相间作用力设置phaseProperties:设置颗粒直径、液相直径(用于计算相转置时的直径)、相间作用力,本算例仅包含曳力与壁面分散力

下图为监控某一点的周期性速度场。

运行方法

./Allrun

链接点击下载


传热撞击流

下面介绍的验证算例为撞击传热流动。算例将使用低雷诺数湍流模型,对\(\mathrm{Re}=10400\)情况下的对称二维绝热计算域下的流动进行模拟。本验证算例来源于CFD中文网。用户朱泽辉提供的算例文件,东岳流体进行的算例适配。对标一篇SCI文章。计算过程中,中空气从上方进入,经过撞击下方壁面后,从右侧出口流出。算例上下壁面为固定温度。下方在计算的结果:

本算例中需要计算努塞尔数:

\[ \mathrm{Nu}=\frac{\frac{\p T}{\p y} W}{T_\mathrm{imp}-T_\mathrm{ref}} \]

其可以通过controlDict中的functions自动执行。算例中\(T_\mathrm{imp}=347.6\)\(T_\mathrm{imp}=309.1\)\(W=0.014231\)。可见,目前计算的努塞尔数与实验以及文献存在一定差异,原因尚不明确,判定可能的原因如下:

  • 连接中表示,修改湍流动能耗散率与湍流动能进口的结果会更好,可尝试进行改动看结果是否有改进;

  • 经测试,该算例对湍流模型非常敏感,目前本算例使用的为LaunderSharmaKE湍流模型,可测试其他不同的湍流模型看结果是否有改进;

  • 本算例并没有考虑浮力对湍流变量产生的影响,可以参考buoyantKEpsilon湍流模型研究浮力对结果的影响,看结果是否有改进;

  • 本算例采用的网格分辨率为\(216\times 80\),虽然文献中进行了网格分辨率研究,证实了该分辨率可以提供精准的结果,但对于当前算例,有必要对网格进行进一步的研究看结果是否有改进;

点击下载本算例

以下内容尚未整理,敬请期待


大气边界层湍动能自保持


上升的2D泡泡


欧拉拉格朗日(鼓泡床)


电子芯片散热


扰流除尘器

OpenFOAM自带算例与备注

pitzDailyPulse

uniformFixedValue边界条件

脉冲速度入口

planarContraction

非牛顿流体流动

粘弹性流体Maxwell模型

pimple15次外迭代

planarCouette

平板库爱特流

粘弹性流体Maxwell模型

pimple15次外迭代

周期性边界

planarPoiseuille

平板泊肃叶流

粘弹性流体Maxwell模型

pimple15次外迭代3次内迭代

周期性边界

semiImplicitSource源项,固定速度(压力梯度)

粘弹性流体解析解对比

cavityCoupledU

顶盖驱动流

coupled矢量耦合求解器

pitzDailyMapped

pitzDaily流动

mapped速度入口边界条件

LES大涡模拟

drivaerFastback

稳态汽车外流场

Allrun可以指定网格大小以及核心数

nutUSpaldingWallFunction壁面函数

freestreamPressure边界条件

freestreamVelocity边界条件

rotatingWallVelocity带旋转的轮子

forceCoeffsIncompressible输出力系数

streamlinesSphere输出流线(.VTK)

cutPlaneSurface输出切面信息(.VTK)

patchSurface输出某个边界的信息(.VTK)

pipeCyclic

稳态管道流动

refineMesh局部细化网格

realizableKE湍流模型

codedFixedValue进口速度边界条件

cyclicAMI周期性边界

turbulentIntensityKineticEnergyInlet湍流强度进口

turbulentMixingLengthDissipationRateInlet湍流混合长进口

streamlinesSphere输出流线(.VTK)

cutPlaneSurface输出切面信息(.VTK)

patchSurface输出某个边界的信息(.VTK)

rotorDisk

稳态虚拟的风扇

rotorDisk源项,BEM方法

kOmegaSST湍流模型

codedFixedValue进口速度边界条件

cyclicAMI周期性边界

turbulentIntensityKineticEnergyInlet湍流强度进口

turbulentMixingLengthDissipationRateInlet湍流混合长进口

streamlinesSphere输出流线(.VTK)

cutPlaneSurface输出切面信息(.VTK)

patchSurface输出某个边界的信息(.VTK)

beamEndLoad

钢管压力形变分析

Gauss cubic高阶格式

squarebend

超音速弯管稳态流(气体)

turbulentMixingLengthDissipationRateInlet进口条件

turbulentIntensityKineticEnergyInlet进口条件

mixed边界条件

flowRateInletVelocity进口条件

hePsiThermo

sensibleInternalEnergy

squarebendLid

弯管稳态流(液体)

同上,只不过为液体,低音速

aerofoilNACA0012

近音速翼形自由流

forceCoeffsCompressible力系数计算

MachNo马赫数输出

extrudeMesh抽取网格

密度0.01松弛因子

codeStream设置

freestreamVelocity速度自由来流

freestreamPressure压力自由来流

inletOutlet湍流变量自由来流

transformPoints缩放网格

transonic no;

该算例非常容易发散