Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3155

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

$
0
0

理解OpenFOAM案例中的blockMesh文件里的simpleGrading

在OpenFOAM中,blockMesh是用于生成计算网格的重要工具。blockMesh文件中定义了计算域的几何形状和网格划分。simpleGrading是其中一个关键参数,用于控制网格的非均匀分布。本文将详细解释 simpleGrading的含义及其在网格生成中的作用。

一、blockMesh文件结构

在开始讨论 simpleGrading之前,了解 blockMesh文件的基本结构是必要的。blockMesh文件主要包括以下几个部分:

  1. vertices:定义计算域的顶点。
  2. blocks:定义网格块及其划分方式。
  3. edges:定义曲线边(可选)。
  4. boundary:定义边界条件。
  5. mergePatchPairs:定义需要合并的边界对(可选)。

二、blocks部分中的simpleGrading

blocks部分定义了每个网格块的顶点索引、网格单元划分和网格分布方式。具体格式如下:

blocks
(
    hex (0 1 2 3 4 5 6 7) (nx ny nz) simpleGrading (gx gy gz)
);
  • hex:表示六面体网格块。
  • (0 1 2 3 4 5 6 7):定义了网格块的八个顶点。
  • (nx ny nz):定义了网格块在x、y、z方向的划分单元数。
  • simpleGrading (gx gy gz):定义了网格在x、y、z方向的分布方式。

三、理解simpleGrading参数

simpleGrading的参数是一个包含三个值的向量,分别对应x、y、z方向。这些值控制着网格的拉伸和压缩情况。具体解释如下:

  1. gx, gy, gz:分别表示x、y、z方向的拉伸系数。如果值为1,表示该方向上网格均匀分布。如果值大于1,表示网格沿该方向从一端逐渐变密集。如果值小于1,表示网格沿该方向从一端逐渐变稀疏。

示例1:

simpleGrading (1 1 1)

表示x、y、z方向的网格均匀分布。

示例2:

simpleGrading (2 1 0.5)

表示x方向从一端到另一端网格逐渐变密集,z方向从一端到另一端网格逐渐变稀疏,y方向网格均匀分布。

四、simpleGrading的应用示例

以下是一个具体的blockMesh文件示例:

vertices
(
    (0 0 0)
    (1 0 0)
    (1 1 0)
    (0 1 0)
    (0 0 1)
    (1 0 1)
    (1 1 1)
    (0 1 1)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (2 1 0.5)
);

edges
(
);

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

mergePatchPairs
(
);

解释:

  • vertices部分定义了一个单位立方体的八个顶点。
  • blocks部分定义了一个六面体网格块,划分为10x10x10个单元,并且x方向的网格从一端到另一端逐渐变密集(2),z方向的网格从一端到另一端逐渐变稀疏(0.5),y方向网格均匀分布(1)。

思维导图

graph TD;
    A[blockMesh文件结构] --> B[vertices]
    A --> C[blocks]
    A --> D[edges]
    A --> E[boundary]
    A --> F[mergePatchPairs]
    C --> G[simpleGrading]
    G --> H[gx, gy, gz解释]
    H --> I[示例1: 均匀分布]
    H --> J[示例2: 非均匀分布]

分析说明表

参数描述示例值
hex定义一个六面体网格块hex (0 1 2 3 4 5 6 7)
(nx ny nz)定义网格块在x、y、z方向的划分单元数(10 10 10)
simpleGrading (gx gy gz)定义网格在x、y、z方向的分布方式(2 1 0.5)
gx, gy, gz拉伸系数,控制网格在相应方向的密集或稀疏程度gx=2, gy=1, gz=0.5

总结

在OpenFOAM的blockMesh文件中,simpleGrading参数用于控制网格的非均匀分布,通过调整x、y、z方向的拉伸系数,可以精确地控制网格的密集和稀疏程度。这对于模拟中需要高精度的区域提供了灵活性。在实际应用中,合理设置 simpleGrading参数,可以优化计算资源,提高模拟精度。


Viewing all articles
Browse latest Browse all 3155

Latest Images

Trending Articles