当前位置: 首页 > news >正文

如何理解openfoam案例里面的blockMesh文件里面的simpleGrading

总结:

simpleGrading参数分为xyz三个方向。如果你想使得网格在某个方向上更密集,可以在simpleGrading中将该方向的渐变率设置为小于 1 .更稀疏则设置大于1.

一、案例

比如我这个爆炸案例:

对应的blockMeshDIct文件如下: 

// 定义划分的网络数目
u1 20;//100
u2 4;//20
u3 16; //80
v1 12;//60
v2 20;//100
w  16; //16;//160  // 3D d*32
//w 1;  // 2D// 定义划分的网络渐变率,分为xyz三个方向。如果你想使得网格在某个方向上更密集,可以在simpleGrading中将该方向的渐变率设置为小于 1 .
r1 0.25;  
r2 4;    //((0.5 0.5 $r1) (0.5 0.5 $r2)) 表示Z方向中间密集两遍稀疏,因为爆炸点在最中间//blocks中包含了五个长方体块,其中hex是一个构成长方体块的8个顶点,($u1 $v1 $w)代表xyz三个方向的网格,simpleGrading代表三个方向划分网格的渐变率。可以某个方向网格逐渐变密(值[0,1])或者变稀(值[1,无穷])
blocks
(hex  (0   1   5   4   12  13  17  16)($u1 $v1 $w)simpleGrading (0.4 3  ((0.5 0.5 $r1)(0.5 0.5 $r2))) hex  (2   3   7   6   14  15  19  18)($u3 $v1 $w)simpleGrading (4   3  ((0.5 0.5 $r1)(0.5 0.5 $r2)))hex  (4   5   9   8   16  17  21  20)($u1 $v2 $w)simpleGrading (0.4 3  ((0.5 0.5 $r1)(0.5 0.5 $r2)))hex  (5   6   10  9   17  18  22  21)($u2 $v2 $w)simpleGrading (1   3  ((0.5 0.5 $r1)(0.5 0.5 $r2)))hex  (6   7   11  10  18  19  23  22)($u3 $v2 $w)simpleGrading (4   3  ((0.5 0.5 $r1)(0.5 0.5 $r2)))
);

解析:

u,v,w:代表三个方向划分的网络数目

r1,r2:定义划分的网络渐变率。

blocks:中包含了五个长方体块,其中hex是一个构成长方体块的8个顶点,($u1 $v1 $w)代表xyz三个方向的网格,simpleGrading代表三个方向划分网格的渐变率。可以某个方向网格逐渐变密(值[0,1])或者变稀(值[1,无穷])

simpleGrading详解:

例子:simpleGrading (0.4 3 ((0.5 0.5 $r1)(0.5 0.5 $r2)))

simpleGrading参数分为xyz三个方向。如果你想使得网格在某个方向上更密集,可以在simpleGrading中将该方向的渐变率设置为小于 1 .更稀疏则设置大于1.

simpleGrading (0.4 3 ((0.5 0.5 $r1)(0.5 0.5 $r2))) 是 OpenFOAM 中定义网格渐变率的语法。它定义了每个方向上网格单元的变化比例。具体来说:

  • 0.4:沿 x 方向的网格渐变率。
  • 3:沿 y 方向的网格渐变率。
  • ((0.5 0.5 $r1)(0.5 0.5 $r2)):沿 z 方向的分段渐变率。

详细解析

  • 0.4沿 x 方向:网格单元从左到右逐渐变小,密度更高
  • 3沿 y 方向:网格单元从下到上逐渐变大,密度更低。
  • ((0.5 0.5 $r1)(0.5 0.5 $r2)))沿 z 方向:
    • 第一段占长度的一半,均匀分布,初始和末端的渐变率为 0.25(单个网格逐渐变小)。
    • 第二段占长度的一半,均匀分布,初始和末端的渐变率为 4(单个网格逐渐变大)。
    • 总结就是Z方向上两边网格稀疏,中间网格密集。(因为爆炸点在Z方向中间,需要希望格捕捉细小变化)

可以看出符合预期越靠近中间的弹性挡板和爆炸点,xyz三个方向的网格就越密

http://www.lryc.cn/news/419992.html

相关文章:

  • 算法竞赛的制胜法宝:被严重低估的位运算究竟有什么用?
  • Qt QTableWidget 去除序号列
  • 【C++】5.类和对象(3)
  • CTF-RCE
  • 谷歌账号登录时,多次验证后变成“您的计算机或网络可能在发送自动查询内容”,原因分析和解决建议
  • 【SpringMVC】详细介绍SpringMVC的执行流程
  • 工地云SaaS系统,通过物联网与可视化等先进技术的综合应用,搭建的智慧工地管理云平台源码
  • 使用自定义注解和AOP解决登录校验问题
  • 【数据结构初阶】队列
  • 《决胜B端 产品经理升级之路》 知识点总结
  • 2024年6月 青少年python一级等级考试真题试卷
  • TCFormer:通过标记聚类Transformer实现视觉识别
  • haproxy实现七层负载均衡详解(基本配置与算法)
  • 海量日志数据收集监控平台应该怎么设计和实现
  • Windows图形界面(GUI)-MFC-C/C++ - CSliderCtrl
  • 常见中间件漏洞复现之【WebLogic】!
  • Linux服务器中限制远程IP登录的深入指南
  • 卫星通信中的拥塞控制算法
  • 全网​​​​​​​​超详细haproxy七层代理
  • Docker日志文件全局配置
  • bia文件中码偏差对实时PPP解算分析
  • 探索list与iterator的区别及yield的用法
  • github技巧和bug解决方法短篇收集
  • 学习笔记五:在k8s中安装EFK组件(elasticsearch+fluentd+kibana)
  • Golang编译-如何忽略某些文件去编译
  • 有哪些适合中型企业的人力资源管理系统推荐?
  • 活动回顾|首次 Cloudberry Database Meetup · 北京站成功举办
  • C语言 软件设计的七大原则,及其应用案例
  • 初学嵌入式-C语言常犯错误详解
  • Golang 语法入门