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. 用snappyHexMeshDict生成周期性边界问题

用snappyHexMeshDict生成周期性边界问题

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

    你的周期性边界看起来在sector4.stl上,我没这么做过,不过snappyHexMesh是自动划分网格,我预感它不会respect周期边界严格的点对应,可能做出来的网格不能用

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • 莫 离线
    莫 离线
    莫晓柒
    写于 最后由 编辑
    #5

    所以应该怎么做呢,直接在block Mesh里定义吗?这样就要用block Mesh生成一个扇形域?

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #6

    最好用blockMesh做好周期边界,然后别碰它,周期边界点对应非常严格

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    莫 1 条回复 最后回复
  • 莫 离线
    莫 离线
    莫晓柒
    写于 最后由 编辑
    #7

    我也试过用blockMesh生成,可是我就是没想到办法可以不碰它,因为我要算的是螺旋桨,要做一个单通道的计算域,这样螺旋桨(及其旋转域)的两边都会和我的计算域两边的周期性边界重合,这样用snappyHexMesh生成网格的时候两边就会有切割和对齐的操作,就会产生不匹配。试了好几次都提示不匹配。

    1 条回复 最后回复
  • 莫 离线
    莫 离线
    莫晓柒
    在 中回复了 李东岳 最后由 李东岳 编辑
    #8

    @东岳

    --> FOAM FATAL ERROR: 
    face 5120 area does not match neighbour by 2.02625% -- possible face ordering problem.
    patch:cyclic1 my area:6.14979e-05 neighbour area:6.02643e-05 matching tolerance:0.0001
    Mesh face:3995462 fc:(0.0020217 0.0037764 5.81648)
    Neighbour fc:(-0.00217946 0.00377493 5.81651)
    If you are certain your matching is correct you can increase the 'matchTolerance' setting in the patch dictionary in the boundary file.
    Rerun with cyclic debug flag set for more information.
    
        From function void Foam::cyclicPolyPatch::calcTransforms(const primitivePatch&, const pointField&, const vectorField&, const pointField&, const vectorField&)
        in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 212.
    
    FOAM exiting
    
    
    1 条回复 最后回复
  • 莫 离线
    莫 离线
    莫晓柒
    写于 最后由 编辑
    #9

    就会提示上述错误

    1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    写于 最后由 编辑
    #10

    @莫晓柒 在 用snappyHexMeshDict生成周期性边界问题 中说:

    does not match neighbour

    我用fluent3DMeshToFoam转化成OpenFOAM的网格的时候也遇到了does not match neighbour这个问题;我是手动改成cyclic边界的,貌似是要用createPatch的方法?

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #11
    1. 要不用cyclicAMI

    2. 要么用手动

    3. 要么createPatch,把matchTolerance放的特别大

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    C K 2 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #12

    @东岳 谢谢东岳老师
    我在cfd-online上面找到一种方法:
    下面是原文:
    “I encountered the same problem and I could solve it by defining rotational periodicity and then by declaring the corresponding vertices in ICEM as periodic. Then Right Click on Faces in the Blocking tree -> Periodic Faces -> ensure that really every periodic face is colored accordingly. createPatch went fine after this procedure.” ---by Fabian E.
    然后我勾选了ICEM里面blocking里的faces的Periodic,再导入openfoam,发现就不会出现上述错误。
    但我不太清楚为何这样会消除错误?

    J 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #13

    ICEM里面的periodic执行非常严格的标准,它使得block的vertices严格的一一对应,如果能用ICEM做并附加periodic操作,尽可能用ICEM做

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • W wangfei9088 被引用 于这个主题
  • W wangfei9088 被引用 于这个主题
  • W wangfei9088 被引用 于这个主题
  • W wangfei9088 被引用 于这个主题
  • J 离线
    J 离线
    jinlinna
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #14

    @Calf-Z-DNS 在 用snappyHexMeshDict生成周期性边界问题 中说:

    @东岳 谢谢东岳老师
    我在cfd-online上面找到一种方法:
    下面是原文:
    “I encountered the same problem and I could solve it by defining rotational periodicity and then by declaring the corresponding vertices in ICEM as periodic. Then Right Click on Faces in the Blocking tree -> Periodic Faces -> ensure that really every periodic face is colored accordingly. createPatch went fine after this procedure.” ---by Fabian E.
    然后我勾选了ICEM里面blocking里的faces的Periodic,再导入openfoam,发现就不会出现上述错误。
    但我不太清楚为何这样会消除错误?

    请问同学可以告知是怎么设置的吗,icem里面有face pericdic吗?我这里只设置了点对称

    1 条回复 最后回复
  • K 离线
    K 离线
    kuangyonglin
    在 中回复了 李东岳 最后由 编辑
    #15

    将 matchTolerance 放的特别大能够让仿真跑起来,但是计算结果显示两边周期面上的压力分布不是一样,如图所示是不同时间步,两周期面上的平均压力,其中有一面的平均压力稳定高于另一面的压力

    不知道是求解器的问题还是这里设置的问题

    有朋友遇见过类似情况吗?

    1f74bd10-5520-47ab-a580-00b3a2d87eb8-image.png

    e-mail: kuangyonglin@foxmail.com

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #16

    对一个网格,如果 matchTolerance 特别小的时候,有这个问题么

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    K 1 条回复 最后回复
  • K 离线
    K 离线
    kuangyonglin
    在 中回复了 李东岳 最后由 编辑
    #17

    @李东岳 网格是用fluentMeshing画的,严格按照周期性边界设置的,导入OpenFOAM之后,当matchTolerance很小的时候,使用createPatch设置周期性边界的时候会报错,

    以下是 createPatch 代码

    patches
    (
        {
            name cyclic1;
            patchInfo
            {
                type cyclic;
                neighbourPatch cyclic2;
                transform rotational;
                rotationAxis (0 0 1);
                rotationCentre (0 0 0);
                matchTolerance 1e10;
            }
            constructFrom patches;
            patches (cyclic_1);
            set f0;
        }
        {
            name cyclic2;
            patchInfo
            {
                type cyclic;
                neighbourPatch cyclic1;
                transform rotational;
                rotationAxis (0 0 1);
                rotationCentre (0 0 0);
                matchTolerance 1e10;
            }
            constructFrom patches;
            patches (cyclic_2);
            set f0;
        }
    );
    

    以下是报错信息

    --> FOAM FATAL ERROR: 
    More than one patch accessing the same transform but not of the same sign.
    patch:cyclic2 transform:0 sign:1  current transforms:1(1)
    
        From function Foam::label Foam::globalIndexAndTransform::addToTransformIndex(Foam::label, Foam::label, bool, Foam::scalar) const
        in file lnInclude/globalIndexAndTransformI.H at line 210.
    FOAM exiting
    

    e-mail: kuangyonglin@foxmail.com

    1 条回复 最后回复

  • 登录

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