OpenFOAM 构建二维贴体网格

OpenFOAM二维贴体网格生成

OpenFOAM是面向3D问题模拟的开源工具,所以如果想要完成2D问题的不规则几何形状模拟,需要通过以下步骤(以不规则平板应力分析为例):

图1 不规则几何形状 case.stl

1. 将平板的.stl几何文件导入OpenFOAM接口(case/constant/polyMesh/triSurface文件夹),作初步网格剖分,需要注意的有以下三点:

(1)在背景网格控制文件case/system/blockMeshDict中应当包裹住内部几何 case.stl:

scale   1;
vertices  // 背景网格(box)的8个顶点
(
    (0  0    0)
    (1  0    0)
    (1  0.2  0)
    (0  0.2  0)
    (0  0    0.01)
    (1  0    0.01)
    (1  0.2  0.01)
    (0  0.2  0.01)
);
blocks
(
    hex (0 1 2 3 4 5 6 7) (20 4 1) simpleGrading (1 1 1) // 本例中,问题设定为x-y平面的二维仿真分析,所以z方向给定一层网格
);

(2)背景网格的6个边界面同样应当在blockMeshDict中定义,注意Front和Back面类型定义为empty:

boundary
(
    top
    {
        type patch;
        faces
        (
            (3 7 6 2)
        );
    }
    bottom
    {
        type patch;
        faces
        (
            (1 5 4 0)
        );
    }

(3)在网格贴合控制文件case/system/snappyHexMeshDict中不应再指定任何边界类型:

refinementSurfaces
    {
        test
        {
            // Surface-wise min and max refinement level
            level (3 4);
        }
}

同样在snappyHexMesh控制文件中,采样点在内部不规则轮廓的外部

locationInMesh (0.5 0.1 0.005);

2. 网格二维化转换

(1)定义网格二维化控制文件case/system/extrudeMeshDict

constructFrom patch;
sourceCase ".";
// 起始面和终止面,即子步骤二中blockMeshDict中定义的empty类型边界面
sourcePatches (Front);
exposedPatchName Back;
// 是否反向
flipNormals true;

extrudeModel        linearNormal;
nLayers             1;
expansionRatio      1.0;
// 定义拉伸厚度
linearNormalCoeffs
{ thickness       0.01; }
mergeFaces false;   //true;
mergeTol 0;

(2)定义边界面生成文件case/system/createPatchDict

patches
(
   {
        // 新的边界面命名
        name front;
        // 边界面类型
        patchInfo
        { type empty; }

        constructFrom patches;
        // 原来的边界面名称
        patches (Front);
    }
    {
        name back;
        patchInfo
        { type empty; }
        constructFrom patches;
        patches (Back);
    }
);

上述所有控制文件定义完成之后,执行以下流程:

blockMesh
snappyHexMesh -overwrite
extrudeMesh
createPatch -overwrite

使用者可以用foamToVTK指令,用paraview软件查看生成的是否是自己需要的二维贴体网格:
网格正视图
并且从俯视图可以看到z方向的网格层数为1:
网格俯视图
至此,三维贴体网格向二维贴体网格的转换完成。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值