网格添加全选_cfmesh划分网格

本文介绍了如何使用Onshape建模并配合cfmesh工具进行非均匀网格划分,特别是在处理H型管道的局部网格加密问题上。由于Onshape最小单位为毫米,对于纳米级别管道建模不便,故采取先建模再在OpenFOAM中缩放的方法。详细步骤包括:在Onshape绘制平面图,拉伸为曲面,导出STL模型,使用cfmesh生成.fms文件,定义meshDict字典,修改边界名称,最终通过cfmesh生成纳米级别网格。
摘要由CSDN通过智能技术生成

843b9d325b4bc47db39760bcc4da8756.png

使用Gmsh为H型管道划分网格时,发现网格加密之后计算非常慢,考虑使用局部网格加密的方法划分网格,查看教程发现Gmsh划分非均匀网格的时候比较麻烦,而且发现onshape配和cfmesh使用起来很方便,因此尝试使用Onshape建模用cfmesh来划分网格和局部加密。但是onshape建模的时候最小的尺寸单位为毫米,如果要为纳米级别的管道直接建模实现不了,因为onshape不能无限放大,如下图,画出来的图形看不到,无法完成后面的的修剪等建模操作,因此先建模然后在openFoam里面划分网格后用transformPoint命令缩放。(这里设置的onshape尺度为mm)

dbc7741009bad48ecb5fdd11dde42242.png

先画好平面图

fc6cf0d3621f1f290595a8bae3f91293.png

因为我们需要的是二维的模型,拉伸时选“曲面”。

1cb49728139ba8d60b5af331ac8dabcf.png

得到

ddbf239a66cb1888131057d1c10b588b.png

接着就可以导出模型,全选模型然后鼠标右键选导出。弹出以下框,选择二进制、STL格式和单位。

5d110fe768a1670ea90fdd43a19815a4.png

将.stl文件拷贝到算例文件夹里面。

在终端输入以下代码(需要在ubantu里面下载cfmesh,根据多次尝试,发现在很多网络下载不了的情况下,用手机联通卡开热点下载有奇效)

surfaceAutoPatch E.stl Ohmic.stl 150  //E.stl 是在onshape导出的文件名  Ohmic.stl是导进openFoam里面想要的名字,可以任意给   150表示面与面之间的角度<150°的patch 分开成独立的patch

d7f3b13ed68faef1b25538b85b853b04.png

打开paraview 打开Ohmic.stl文件就可以看到模型了

573dd1e4301d6551171e19788cd6f3bc.png

生成.fms文件,输入

surfaceToFMS Ohmic.stl

33d57e1f1e7d5e75789a6265f5942a11.png

参考上面paraview里面的模型,看.fms文件,根据paraview里面图形的patch的颜色,判断patch0是哪个面、patch1是哪个面(深蓝色为0、接着是1 以此类推)

043a9167f53fe92eec70ee6dffab48af.png
修改前

e1a1274d294f13dc408c817b8af3704c.png
修改后

需要注意的是,以上修改的名称不能重复(通过在名称后面添加1、2 如walls1、walls2),若重复,paraview识别不了全部相同名称的面。

在system里面添加meshDict字典,定义为:

maxCellSize     5;       //网格尺寸
​
surfaceFile  "Ohmic.fms";
objectRefinements          //局部网格细化
{
    boxExample  
    {
    type    box;          //以一个六面体的形式框选需要细化的区域
    cellSize    1;        //细化的网格尺寸
    centre      (0 0 5);  //六面体中心点
    lengthX     110;      //六面体X方向长度
    lengthY     200;      //六面体Y方向长度
    lengthZ     10;       //六面体Z方向长度

在终端输入:

cartesian2DMesh

079bef214ec9a2402ebec763e69112e9.png

生成polyMesh文件夹,解压里面的boundary文件,查看里面的empty对应的名称是否需要修改(一般需要修改empty边界的名称例如:frontAndBack,为了与0文件夹中字典的名称对应)

7c562a9967614101b3edf40fde57289e.png
修改前

7e225c00f7b34ff07470866699670180.png
修改后

还需要注意的是0文件夹里面的字典也需要修改,这就是cfmesh不够方便的地方,它不会将同样的名称归类到一起,而且面的名字也不能重复(通过在名称后面添加1、2 如walls1、walls2),则0文件夹里面字典的内容中命名也要对应修改为.fms文件中对应的名字,如

7c72a24b5626ed427708a1d03787419b.png
paraFoam

9f3cb5cb1f6aab0daf7dc591ca89ecca.png

可以看到生成网格成功了,但是生成的模型和网格是mm尺度的,还需要缩小,输入终端下列命令得到nm级别的。

transformPoints -scale '(0.000001 0.000001 0.000001)'//表示xyz方向都×0.000001

e0dcb72150d00348a2d41c7676c0bdf5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值