IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> OpenFOAM之cavity算例 -> 正文阅读

[游戏开发]OpenFOAM之cavity算例

OpenFOAM用法

cavity算例(绝热二维方腔的不可压缩流算例)

复制路径下的cavity文件夹,并复制其所在路径。

mkdir openfoam_files
cd openfoam_files
cp -ar /opt/openfoam9/tutorials/incompressible/icoFoam/cavity/cavity .

在复制的cavity路径下运行以下命令进行处理

cd cavity
# 执行命令生成计算网格
blockMesh
# 在paraview中打开生成的网格(可选)
paraFoam
# 查看网格大小,几何尺寸和一些网格信息(可选)
checkMesh
# 调用求解器进行计算
icoFoam
touch mycavity.foam  # 也可以不生成改文件 直接求解器计算完运行paraFoam即可
# 启动paraview 将mycavity.foam文件导入 查看结果
paraview

在/system/controlDict中查看运用的什么求解器进行计算

icoFoam是不可压缩的牛顿流体层流的瞬态解算器

在这里插入图片描述

  • cavity目录最初包含以下子目录:0,constent,和system。运行之后,它输出0.1、0.2、0.3、0.4、0.5 文件
  • 0目录包含在这些时间步长的所有变量的值。一般是P和U,因此,0目录是初始条件。
  • constent目录包含运动学粘度的transportProperties字典,一般是一些常数。
  • system目录包含网格构建,运行控制设置、离散化方案和求解方案过程的设置。
  • icoFoam解决程序读取案例目录中的文件,并根据这些设置运行案例。

有一个速度恒为1的边界带动下面的流体进行运动。

查看压力场:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7xJFc0Ge-1649308286627)(OpenFOAM.assets/image-20220403224753345.png)]

p表示压强,表示上面有一层水在流动,从左往右流。空腔的左部顶端为低压区,右部顶端为高压区。

带原点的p对每个网格的压力场都进行了插值,这样压力场看起来是连续的。带方框的p,会显示每个网格的压力值,并且整个场的每个网格值并不是连续的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAjFDPTY-1649308286628)(OpenFOAM.assets/image-20220404165039755.png)]

U表示流速的分布

/system下的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AqxtLyO3-1649308286628)(OpenFOAM.assets/image-20220404170819537.png)]

/system/blockMeshDict

点信息定义的是上面的八个顶点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmwiEe9m-1649308286628)(OpenFOAM.assets/image-20220404123810318.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DCXiaEhc-1649308286628)(OpenFOAM.assets/image-20220404125311095.png)]

分区的定义:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WSL9pch4-1649308286628)(OpenFOAM.assets/image-20220404125538189.png)]

hex(0 1 2 3 4 5 6 7):表示8个顶点
(20 20 1):表示x方向划分20个网格 y方向20个  z方向1个
simpleGrading(1 1 1):表示网格单元的膨胀率
   	// 三个参数表示xyz轴方向上的网格膨胀比
   	// 大小表示某个轴的方向上最后一个网格与第一个网格的宽度比例  中间网格渐进增加

边界定义:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GadFUYGS-1649308286629)(OpenFOAM.assets/image-20220404165257226.png)]

movingWall:按照逆时针的顺序用点来定义一个面  (相当于入口边界,几何的上部)
fixedWalls:固定边界  (几何底部和侧面)
frontAndBack:定义的前后两个面

/system/controlDict

application:	所用的求解器

startFrom :		开始时间

StopAt:			停止时间

deltaT:			 计算的间隔时间

writeControl  timeStep :按照timeStep的方式输出

writeInterval   20: 写入间隔,如果计算间隔为1s则表示设置20s输出一次结果

purgeWrite: 若等于0则输出所有时刻的结果  若为n,只输出最后n步的结果
    
writePrecision  6  :表示写入精度为6位
    
writeCompression  off: 表示不对输出结果进行压缩   on表示压缩,一般对大型项目需要压缩
    
runTimeModifiable: 让每个时间步读取或者不读取所修改的字典文件

/system/fvSchemes

// 用来定义离散格式的求解方式的文件
ddtSchemes	: 对时间项的离散,采用欧拉方式
gradSchemes	: 对梯度项的离散
divSchemes	: 对对流项的离散
laplacianSchemes : 对拉普拉斯项的离散
interpolationSchemes : 从体到面的一个插值方法的选用
snGradSchemes : 面法向梯度的离散方法选择

/system/fvSolution

fvSolution中由两个部分组成:solvers(矩阵求解器)和求解器使用的算法

solvers表示矩阵求解器

p和U表示要求解的内容  压强和流速

solver表示矩阵求解器,下面对应的三个参数是矩阵求解器的参数  tolerance是求解的误差,relTol是相对误差

PISO是求解器使用的算法
下面包含算法的参数

/constant下的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GfiSoSIY-1649308286629)(OpenFOAM.assets/image-20220404211339445.png)]

polyMesh文件是通过blockMesh命令产生的,里面有一些关于几何体的信息(边界,面等)。

transportProperties是描述液体的物理特性的文件(其中参数nu是液体的运动粘度,值越大,流动性越差,水的运动粘度为 1 0 ? 6 10^{-6} 10?6)

本算例中雷诺数为10(设置的运动粘度为0.01 m 2 / s m^2/s m2/s),雷诺数如下定义
R e = d ∣ U ∣ ν Re = \frac{d|U|}{\nu} Re=νdU?
其中d和|U|分别是特征长度和速度, ν \nu ν是运动粘度。本算例中d为0.1m,|U|为1m/s,运动粘度为0.01 m 2 / s m^2/s m2/s,所以雷诺数为10。

雷诺数是一种用来表征流体流动情况的无量纲数。

雷诺数可以用来判别流动特性的依据,例如在管流中,雷诺数小于2300的流动时层流,雷诺数等于2300-4000为过渡状态,雷诺数大于4000时是湍流。

还需要设置时间步,即 δ T \delta T δT,当运行icoFoam的时候,为了达到数值稳定以及时间计算精度,库朗数应该小于1。每个网格的库朗数这样定义:
C o = δ t ∣ U ∣ δ x Co = \frac{\delta t |U|}{\delta x} Co=δxδtU?
二维中的定义:库朗数的物理意义就是时间步长内流体运动距离与矩形网格单位长度的比值

它可以被理解为:在给定时间步长和给定网格中,流体在网格中的运动距离。

上式中 δ t \delta t δt为时间步, ∣ U ∣ |U| U为某个玩个单元内的速度矢量的模, δ x \delta x δx为速度方向的网格长度

根据最大速度和最小网格尺寸来计算库朗数,在保证其小于1的前提下指定时间步。网格大小为:
δ x = d n = 0.1 20 = 0.005 m \delta x = \frac{d}{n} = \frac{0.1}{20} = 0.005m δx=nd?=200.1?=0.005m
n为网格大小,为了使库朗数在整个流体域都小于或等于1。时间步必须小于或等于:
δ t = C o δ x ∣ U ∣ = 1 ? 0.005 1 = 0.005 s \delta t = \frac{Co \delta x}{|U|} = \frac{1*0.005}{1} = 0.005s δt=UCoδx?=11?0.005?=0.005s

# 清理时间步的命令
foamListTimes -rm

通过水的流速场可以看出水的运动状态(只运行了10S的,并且网格细分为60 * 60 * 1,运动粘度改为水的运动粘度 1 0 ? 6 10^{-6} 10?6)

/0下的文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EtHHoYTj-1649308286629)(OpenFOAM.assets/image-20220405120258127.png)]
p是压力场 U是流速场

文件P的单位 m 2 / s 2 m^2/s^{2} m2/s2(运动压力):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WDVcNi93-1649308286629)(OpenFOAM.assets/image-20220405122005378.png)]
文件U的单位 m / s m/s m/s(流速):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B4eTOIkb-1649308286629)(OpenFOAM.assets/image-20220405122939674.png)]

dimensions为单位:中括号中的七个值对应下面表格七个值。

mol:摩尔应用于计算微粒的数量、物质的质量、气体的体积、溶液的浓度、但应过程的热量变化等。

内部均值场:设置为0(在压力场下内部压力设置为0,速度场则内部速度为0)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9R5zR4iQ-1649308286629)(OpenFOAM.assets/image-20220405123101091.png)]

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:49:29  更:2022-04-09 18:51:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 20:48:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码