OpenFOAM算例
此页面用于提供各类OpenFOAM官方没有包含的算例。可以作为官方算例的扩充版本。算例全部开源。分为3部分:
岳子的CFD课中的OpenFOAM算例;
岳子帮助CFD中文网调试的算例;
其他算例;
岳子的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。用户进行设置的时候,遇到了下列问题:
稳态瞬态结果对不上。
进口速度震荡问题。
经过调试后,算例可成功运行并结果具有对比性。
数值关键点:
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文章。计算过程中,中空气从上方进入,经过撞击下方壁面后,从右侧出口流出。算例上下壁面为固定温度。下方在计算的结果:
本算例中需要计算努塞尔数:
其可以通过controlDict中的functions
自动执行。算例中\(T_\mathrm{imp}=347.6\),\(T_\mathrm{imp}=309.1\),\(W=0.014231\)。可见,目前计算的努塞尔数与实验以及文献存在一定差异,原因尚不明确,判定可能的原因如下:
连接中表示,修改湍流动能耗散率与湍流动能进口的结果会更好,可尝试进行改动看结果是否有改进;
经测试,该算例对湍流模型非常敏感,目前本算例使用的为
LaunderSharmaKE
湍流模型,可测试其他不同的湍流模型看结果是否有改进;本算例并没有考虑浮力对湍流变量产生的影响,可以参考
buoyantKEpsilon
湍流模型研究浮力对结果的影响,看结果是否有改进;本算例采用的网格分辨率为\(216\times 80\),虽然文献中进行了网格分辨率研究,证实了该分辨率可以提供精准的结果,但对于当前算例,有必要对网格进行进一步的研究看结果是否有改进;
以下内容尚未整理,敬请期待
大气边界层湍动能自保持
上升的2D泡泡
欧拉拉格朗日(鼓泡床)
电子芯片散热
扰流除尘器
OpenFOAM自带算例与备注 |
|
---|---|
pitzDailyPulse |
|
planarContraction |
|
planarCouette |
|
planarPoiseuille |
|
cavityCoupledU |
|
pitzDailyMapped |
|
drivaerFastback |
|
pipeCyclic |
|
rotorDisk |
|
beamEndLoad |
|
squarebend |
|
squarebendLid |
|
aerofoilNACA0012 |