首页 > 其他 > 详细

OpenFoam--UserGuide--记录(一)

时间:2021-04-01 23:13:18      阅读:41      评论:0      收藏:0      [点我收藏+]

1. 顶盖驱动流

1.1 前处理

1.1.1 网格生成

OpenFOAM 采用三维笛卡尔坐标体系,并且所有的算例网格都是三维的。默认情况下,OpenFOAM在三个维度上求解算例。但是如果指定某些面的边界(例如垂直于第三个方向的平面)条件为“empty”,那么它就可以用来求解二维算例。

hex 后面是block 的各个顶点,然后是每个方向的网格数量

mapFields 把一个给定几何的场信息,映射到另一个几何的对应场。

在例子中,场被认为是相同的,因为被映射场和原始场的几何,边界类型和条件都是一样的。因此在执行mapFields 程序时,可以使用-consistent 附加命令选项。

mapFields 首先读取某个时间步的场信息,这通过被映射场算例的controlDict 中的startFrom/startTime(例如需要被映射的时间步)来指定,在这个算例中,把粗网格的最终结果映射到cavityFine 的细网格中,由于cavity 算例的最终结果存储在0.5 文件夹中,因此controlDict 文件中的startTime 应该设定为0.5,startFrom 设定为startTime。

现在这个算例就可以运行mapFields 了,键入mapFields -help 可以显示mapFields 的命令参数。可以看出,提供源算例文件的地址是必须的,另外我们还需要使用-consistent 选项,因此在cavityFine 终端里输入:

mapFields ../cavity -consistent

 

1.1.2 边界和初始条件

压力P

技术分享图片

 

 

dimensions

指定场的单位,此处为运动压力10,单位为m2s-2^

![ile:///C:\Users\Owner\AppData\Roaming\Tencent\Users\834816658\QQ\WinTemp\RichOle\3H}[D04N6(YQM{H)2]@}Z0T.png)

internalField

内部场可以采用一个值就可以描述的uniform(均一场);或者每个网格的数据都需要指定的nonuniform(非均一场)

boundaryField

对于cavity算例,边界场由walls组成,并分为两个patches:

(1) fixedWalls 用来指定固定边界,即cavity 几何的底部和侧面。

(2)movingWall cavity 几何的上部.作为壁面,压力边界条件均为zeroGradient,意味着压力的法向梯度为0

压力边界条件全部为zeroGradient,因此需要设置压力参考点和参考值。此处压力设置0,10,100均可。不可压缩流中关心的是相对压力而不是绝对压力。

初始场都设置为uniform。这里的压力为运动压力,作为不可压缩流,它的绝对值是没有意义的。因此设置其为uniform 0。这样比较简单

速度U

dimensions / internalField

内部场初始化为0,对于速度,其值为矢量。 即:uniform(0,0,0)。

boundaryField

速度场和压力场的frontAndBack 都为empty, 其它的patchs 均为fixedWalls,且指定为无滑移边界条件,因此为fixedValue,其值value uniform (0 0 0)。

假设顶部的壁面以每秒1 米的速度在x 方向移动,这是一个固定速度即fixedValue,其具体的值为uniform(1 0 0)。

技术分享图片

 

 

 

1.1.3 控制

 

在 controlDict 字典内可以对时间步、输入输出时间、场数据的读取和写入来进行控制。

运算结束的时候,我们希望能达到稳定的状态,即流体在空腔内循环。一个通用准则是, 层流下流体应该穿过(循环)计算域10 次。

 

Courant number(库郎数)

 

??t为时间步,|??|为某个网格单元内的速度矢量的模,??x为速度方向的网格长度。由于流体域内速度并不均一,为了保证库郎数在各处都小于1,依据最大速度和最小网格尺寸来计算库郎数,在保证其小于1 的前提下指定时间步。

在这个算例中网格大小是固定的,因此在顶盖附近,速度接近1m/s 的地方库郎数最大,网格大小为:

 

为了使库郎数在整个流体域都小于或等于1. 时间步必须小于或等于:

 

写入时间步

随着计算的进行,需要在某个固定的时间间隔下写入数据。以便在后处理中进行查看。对于如何对写

 

 

入时间步进行设定有很多选择,它可以通过writeControl 关键字来控制。在0.1s, 0.2s, …, 0.5s 写入结果。由于计算时间步为0.005s,因此需要每20 个时间步输出一次结果设定writeInterval 为20。

writeControl 中,每个固定timeStep 输出,我们也可以指定为runTime 来指定每多少个物理时间间隔来写结果文件

技术分享图片

 

 

1.1.4 离散方法和矩阵求解器设置

用户在system 下的fvScheme 文件中指定有限体积法的离散格式。

在system 文件夹下的fvSolution 文件下指定方程组矩阵求解器、残差以及其它算法控制。

 

fvSolution

PISO 子字典中的pRefCell 以及pRefValue

在一个封闭的不可压体系中,例如这个空腔,压力是相对的。跟绝对压力值来说,压力的相对范围比较重要。在类似的这种例子中,求解器通过pRefCell 以及pRefValue 来设置参考值。这个例子中都设置为0。改变其中任何一个值都会改变绝对压力场。但是不会改变相对压力场和速度场。

1.2 查看网格

1.3 运算

1.4 后处理

云图

矢量图

1.5 后台运行

 

后台程序的方式来运行icoFoam,并把输出信息输入到log 文件以便查看。在cavityFine 目录下,

icoFoam > log &
cat log

1.6 postProcess

OpenFoam--UserGuide--记录(一)

原文:https://www.cnblogs.com/Augustusben/p/14608259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!