Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. openfoam中如何用blockMesh将一个六面体块切分成两部分加密?

openfoam中如何用blockMesh将一个六面体块切分成两部分加密?

已定时 已固定 已锁定 已移动 OpenFOAM
2 帖子 2 发布者 679 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 流 离线
    流 离线
    流星飞宏
    写于 最后由 李东岳 编辑
    #1

    cdc55d2b-44d3-422d-b228-f51416d7d378-无标题.png

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      blockMeshDict;
    }
    
    // 全局设置
    convertToMeters 1;
    
    // 顶点定义
    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)
        // 添加新的顶点用于切分
        (0 0 0.5)
        (1 0 0.5)
        (1 1 0.5)
        (0 1 0.5)
    );
    
    // 块定义(切分成两个块)
    blocks
    (
        hex (0 1 2 3 8 9 10 11) (20 20 10) simpleGrading (1 1 1) // 下面的块
        hex (8 9 10 11 4 5 6 7) (40 40 10) simpleGrading (1 1 1) // 上面的块
    );
    
    // 边界定义
    boundary
    (
        front
        {
            type patch;
            faces
            (
                (4 5 6 7)
            );
        }
        back
        {
            type patch;
            faces
            (
                (0 1 2 3)
            );
        }
        left
        {
            type patch;
            faces
            (
                (0 4 7 3)
            );
        }
        right
        {
            type patch;
            faces
            (
                (1 2 6 5)
            );
        }
        bottom
        {
            type patch;
            faces
            (
                (0 1 5 4)
                (8 9 5 4)
            );
        }
        top
        {
            type patch;
            faces
            (
                (3 2 6 7)
                (11 10 6 7)
            );
        }
        middle // 添加中间的边界
        {
            type patch;
            faces
            (
                (8 9 10 11)
            );
        }
    );
    
    // 网格划分方法
    mergePatchPairs
    (
    );
    
    

    这样多定义出4个顶点(8 9 10 11),但是运行blockMesh的时候报错,如下:(以icoFoam中cavity算例为基础)
    --> FOAM FATAL ERROR:
    face 0 in patch 2 does not have neighbour cell face: 4(0 4 7 3)
    大家之道该怎么调节吗?


    具体想实现的功能就是在计算的时候输出一个平面的速度,想用functionObject功能,但是需要指定一个面,所以上述想在画网格的时候把面指定出来。

    1 条回复 最后回复
  • 广 离线
    广 离线
    广义胖鱼
    写于 最后由 编辑
    #2

    首先中间的这个面似乎不应该这样加,因为boundary目录里定义的应该都是边界,但多出来的这个面是在计算域内的,并不是边界,我觉得可以使用Sample或者facezone
    其次这个报错应该是因为定义的这个面实际上跨越了两个面,实际上应该像这个“top”或者“bottom”一样把两个面分开来声明,应该就不会有问题

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]