5.2背景网格(blockMesh)

背景网格(blockMesh)功能简介

blockMesh是结构化的六面体网格生成器。一般用于生成简单几何模型的结构网格,随着几何图形复杂性的增加,需要设置参数的工作量也会大幅增加。通常处理复杂模型时,其作为snappyhexmesh软件的背景网格生成工具使用。

参数文件路径为system/blockMeshDict。建议使用一个通用模板,使用时只需修改指定参数。当然也可以使用m4或则Python脚本自动化生成。执行blockMesh命令时依赖文件openfoam中controlDict文件,blockMesh目前不支持并行运行。

每个block包含8个point和12个edges,它们的编码顺序如下图所示:

图1. Block构造示意图

blockMeshDict文件包含convertToMeters、vertices、blocks、edges、patches和mergePatchPairs六部分,相关说明如下表所示。

表1. BlockMesh主要参数列表参数名描述示例

convertToMeters点坐标缩放比0.001

vertices点坐标(单位:m)(0 0 0)

edges常用于描述圆与样条曲线圆:arc 1 4 (0.939 0.342 -0.5)

block“block”信息列表,包含点标签有序列表与网格划分信息等点标签列表:hex (0 1 2 3 4 5 6 7) 网格划分信息:(10 10 1) 各方向网格膨胀比:simpleGrading (1 1 1)

patches面列表symmetryPlane base( (0 1 2 3) )

mergePatchPairs要合并的面列表

背景网格(blockMesh)参数简介

convertToMeters参数定义

用于定义几何的尺寸缩放系数,其缩放系数应用于所有坐标轴,几何单位为米。

convertToMeters 1.0;

vertices参数定义

点参数中列出block中包含的所有点坐标,点序号从0开始。

vertices

(

(0 0 0) //点序号为0

(1 0 0) //点序号为1

...

);

edges参数定义

该部分用于定义几何边参数,如果所有的边都是直边则不需要指定参数(如下示例1)。用户可以下表所列参数定义特定曲线。

表2. Edges主要类型列表

可选曲线类型描述格式

arc圆弧arc V1 V2 (p1i p1j p1k )

spline样条曲线spline V1 V2 ((p1i p1j p1k) (p21i p2j p2k) …)

polyLine折线polySpline V1 V2 ((p1i p1j p1k) (p21i p2j p2k) …)

BSplineB样条曲线BSpline V1 V2 ((p1i p1j p1k) (p21i p2j p2k) …)

line直线—

上表中v1和v2指定边的起始、终止端点编号。直线是边生成的默认设置,不需要用户进行参数设置。Arc圆弧中需要用户指定第三点坐标,软件依据起点v1和终点v2采用三点绘制圆弧。polyLine折线中需要用户指定多组坐标(注意点的顺序),软件用直线连接端点及其它指定坐标。spline样条曲线定义一条通过端点和指定坐标点序列的样条曲线。

示例1:采用默认直线,命令输入:

edges

(

);

图2. Line直线边网格展示

示例2:圆弧acr曲线参数设置。其端点坐标分别为v1 (-1 -1 -1)、v2 (5 -1 -1)、v4 (-1 -1 5)、v5 (5 -1 5),参数命令输入如下:

edges

(

arc 0 1 (2 -2 -1)

arc 4 5 (2 -2 5)

);

效果图:

图3. Acr圆弧边网格展示

示例3:圆弧Spline曲线参数设置。其端点坐标分别为v1 (-1 -1 -1)、v2 (5 -1 -1)、v4 (-1 -1 5)、v5 (5 -1 5),参数命令输入如下:

edges

(

Spline 0 1((1 -0.5 -1)

(3 -0.5 -1))

);

效果图:

图4. Spline曲线边网格展示

示例4:圆弧Polyline曲线参数设置。其端点坐标分别为v1 (-1 -1 -1)、v2 (5 -1 -1)、v4 (-1 -1 5)、v5 (5 -1 5),参数命令输入如下:

edges

(

polyLine 0 1((1 -0.5 -1)

(3 -2 -1))

polyLine 4 5((1 -0.5 5)

(3 -2 5))

);

效果图:

图5. Polyline曲线边网格展示

示例5:圆弧BSpline曲线参数设置。其端点坐标分别为v1 (-1 -1 -1)、v2 (5 -1 -1)、v4 (-1 -1 5)、v5 (5 -1 5),参数命令输入如下:

edges

(

BSpline 0 1((1 0 -1)

(3 -2 -1))

BSpline 4 5((1 0 5)

(3 -2 5))

);

效果图:

图6. BSpline曲线边网格展示

Blocks参数定义

Blcoks参数设置包含hex和simpleGrading (如下命令输入示例)。hex后的第一个()内指定该block所需的8个点的序号,并按照block编码序列图中所示排列。第二个()用于定义xyz方向的网格划分数目(如下示例1)。simpleGrading后()用于定义xyz方向上,端点0处网格尺寸与端点1处网格尺寸间膨胀比(如下示例2),定义如下图SimpleGrading参数说明图中所示。

图7. SimpleGrading参数说明

命令输入示例:

blocks

(

hex (0 1 4 3 9 10 13 12) (5 5 5) simpleGrading (1 1 1)

);

示例1:不同网格划分等份对比

x方向网格划分数目分别为5、10,网格生成如下。

网格划分参数(5 5 5)

网格划分参数(10 10 10)

图8. 不同网格划分等份对比图

示例2:x方向不同网格膨胀比对比

膨胀比为x方向设置0.5,参数设置为simpleGrading(0.5 1 1),生成网格图如下所示:

图9. X方向网格膨胀比为0.5

膨胀比为x方向设置为2,参数设置为simpleGrading(2 1 1),生成网格图如下所示:

图10. X方向网格膨胀比为2

boundary参数定义

该部分用于定义网格边界的名称与边界类型,以及每个面的顶点编号列表(编号顺序满足右手准则)。当然用户也可以在仿真阶段使用createPatchDict文件对网格边界名称与类型进行更改。

命令输入示例如下:

boundary

(

top

{

type wall;

faces

(

(3 7 6 2)

);

}

...

)

用户可自定义的边界的名称(如示例中“top”)。可通过参数type指定边界类型,边界类型包括:壁面(wall)、对称平面(symmetryPlane)、周期性边界(cyclic )、不一致的周期性边界(cyclicAMI)、二维轴对称边界(wedge)、2D边界(empty)。

使用一些特定边界类型时,需留意其使用场景及关联文件。例如:cyclic和cyclicAMI边界类型需在仿真求解时使用“neighbourPatch”指定网格匹配的交界面;目前Openfoam只支持三维网格计算,若用户想计算二维问题,可将三维计算域中的两侧壁面都设置为empty边界,以此作为二维计算边界。

faces参数指定了构成边界面的点的顺序。如下图中“(3 7 6 2)”表示由点3、7、6、2定义面信息(如下图中的上表面),其符合右手定则。

图11. Face构造示意图

mergePatchPairs参数定义

blockMesh允许用户使用多个block来创建网格。在包含多个block的情况下,需要处理各个block间连接问题。其有两种合并方式:

1、面匹配:

要求需合并的block A与block B中,交接面patch A1、patch B1的顶点是完全相同的。当通过面匹配来连接blocks时,用户不需要定义mergePatchPairs内参数。blockMesh会自动将这两个patch匹配成内部面,如下例所示:

mergePatchPairs

(

);

2、面融合:

两个block中的两个patch存在映射关系,不要求顶点完全相同。融合规则如下:

1)主面masterPatch保持不动,其上所有点坐标不做更改。

2)若主面masterPatch与副面slavePatch之间是存在间隙,则将副面slavePatch投影到主面masterPatch上,以满足面融合要求。

3)通过最小公差值调整副面上的节点的位置,提高主面与副面之间节点匹配度,以清除小于最小公差的细微边;

4)当主、副面间部分重叠时(如下图),重叠部分会成为内部面,不重叠的部分依然为外部面,需要定义边界条件;

5)如果副面slavePatch完全融合进主面中,则副面将会被移除。

图12. 面重叠示意图

当通过面融合来连接blocks时,需要在mergePatchPairs参数中定义要融合的两个patch,如下例所示:

mergePatchPairs

(

()

);

python网格划分_五、网格划分篇-SnappyHexMesh(之二)相关推荐

  1. 多麦克风做拾音的波束_乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评...

    原标题:乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评 乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评 20 ...

  2. python 柱状图 间距_专题第18篇:Python 绘图入门

    我的施工之路 1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编程风格专题7函数使用8面向对象编程(上篇)9面向对象编程(下篇)10十大数据结构11包和模块使用总结12Python正则专 ...

  3. 两台思科交换机vlan划分_华为交换机划分vlan及vlanIP地址的设置

    如果这篇文章对您有帮助,请关注并点赞,感谢您的支持,如果还有其他问题,请私信给我 Vlan(Virtual Local Area Network)翻译成中文名为虚拟局域网,在网络管理中,vlan的划分 ...

  4. python 数据分析库_五个 Python 常用数据分析库

    前言 Python 是常用是数据分析工具,常用的数据分析库有很多,下面主要介绍如下五个分析库:NumPy.Pandas.SciPy.StatsModels.Matplotlib. NumPy 是一个非 ...

  5. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17) Appium是一个开 ...

  6. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15) adb(Androi ...

  7. python 编程效率_五个Python编程Tips,帮你提高编码效率

    无论你是一位高级的AI工程师还是学生,你都会在工作或学习过程中需要用到 Python.自 1991 年首次发布后,Python 很快就成为了程序员和技术人员最喜欢的语言.作为一种拥有相对简单语法的高级 ...

  8. python分类汇总_数据分析番外篇13_利用Python实现分类汇总

    自己建立了一个数据分析兴趣小组群,在分享了一篇有关Python的介绍后,这两天大家的学习热情高涨,于是纷纷将自己的问题扔到群里诱使大家来解决,比如:如何代码实现去除文本里面的多余空格,如何将一个27万 ...

  9. python数据储存_五种使用python储存数据的方式

    在python编程开发中,总是不可避免的遇到数据储存的问题,下面就介绍python与几种数据储存方式交互的方法. json文件 json是一种轻量级的数据交换格式.采用完全独立于编程语言的文本格式来存 ...

最新文章

  1. Imagination 推新款GPU IP,首次实现桌面级光线追踪效果
  2. 冰刃——IceSword
  3. 双色球得一些基础分析[sql]
  4. 特斯拉最安全的车_特斯拉现在是最受欢迎的租车选择
  5. java学习(47):带参无返回
  6. Codeforces ----- Kefa and Dishes [状压dp]
  7. 前端程序员:月薪 5K 到 5 万
  8. 适用于苹果Mac的 5 个最佳 SSH 客户端软件
  9. element-ui局部区域loading效果
  10. UEFI开发,记录第一场胜利——调用一个自己编写的protocol
  11. QProcess实现进程通信
  12. 组合优化问题MATLAB程序,组合优化问题(一).ppt
  13. 如何查html病毒svchost.exe,网站快照劫持又一例:svchost.exe病毒快照劫持的解决办法...
  14. 为什么摇滚的人害羞_并非每个人都需要成为摇滚明星
  15. javascript大全
  16. 网易云音乐小程序 笔记
  17. 外卖CPS小程序推广系统外卖侠探探外卖优惠券源码开后台及搭建一条龙
  18. 排序算法——希尔排序
  19. 创建一个整型变量toes,并将toes设置为10.
  20. 全球名校AI课程库(44)| 慕尼黑工大 · 计算机视觉深度学习进阶课『Advanced Deep Learning for Computer Vision』

热门文章

  1. A可向容器中放甲乙两种物品,B只取甲种物品,C只取乙种物品,A每次只放一种物用品PV原理实现进程A、B、C 3个并行进程的同步
  2. 锁算力显卡影响深度学习吗?
  3. android 自动挂断,android实现接通和挂断电话
  4. C++检测内存泄漏方法
  5. 【交叉编译】海思平台和安霸平台交叉编译
  6. R语言抓取暴风魔镜评论数据并绘制各省市购买量热力图
  7. 【资源】年底送你一套编程视频(含源码)
  8. 潭州教育学python_潭州教育-Python学习笔记@基础讲解作业1
  9. 零基础抖音电商主播培训计划直播脚本话术大全范文ppt模板
  10. 关于电脑使用墨墨背单词使用键盘操作问题