Skip to content
  • 最新
  • Categories
  • 东岳流体
  • 随机看[请狂点我]
Skins
  • 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

  • Default (No Skin)
  • No Skin
Collapse
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 用snappyHexMeshDict生成周期性边界问题

用snappyHexMeshDict生成周期性边界问题

Scheduled Pinned Locked Moved OpenFOAM
17 Posts 5 Posters 13.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 李 Online
    李 Online
    李东岳 管理员
    wrote on Jul 10, 2019, 11:53 PM last edited by
    #4

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

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

    1 Reply Last reply
  • 莫 Offline
    莫 Offline
    莫晓柒
    wrote on Jul 11, 2019, 12:26 AM last edited by
    #5

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

    1 Reply Last reply
  • 李 Online
    李 Online
    李东岳 管理员
    wrote on Jul 11, 2019, 2:06 AM last edited by
    #6

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

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

    莫 1 Reply Last reply Jul 11, 2019, 8:32 AM
  • 莫 Offline
    莫 Offline
    莫晓柒
    wrote on Jul 11, 2019, 8:31 AM last edited by
    #7

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

    1 Reply Last reply
  • 莫 Offline
    莫 Offline
    莫晓柒
    replied to 李东岳 on Jul 11, 2019, 8:32 AM last edited by 李东岳 Jul 11, 2019, 5:38 PM
    #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 Reply Last reply
  • 莫 Offline
    莫 Offline
    莫晓柒
    wrote on Jul 11, 2019, 8:34 AM last edited by
    #9

    就会提示上述错误

    1 Reply Last reply
  • C Offline
    C Offline
    Calf.Z-DNS
    wrote on Nov 15, 2019, 1:57 AM last edited by
    #10

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

    does not match neighbour

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

    1 Reply Last reply
  • 李 Online
    李 Online
    李东岳 管理员
    wrote on Nov 15, 2019, 2:22 AM last edited by
    #11
    1. 要不用cyclicAMI

    2. 要么用手动

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

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

    C K 2 Replies Last reply Nov 15, 2019, 12:40 PM
  • C Offline
    C Offline
    Calf.Z-DNS
    replied to 李东岳 on Nov 15, 2019, 12:40 PM last edited by
    #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 Reply Last reply Mar 5, 2024, 12:37 PM
  • 李 Online
    李 Online
    李东岳 管理员
    wrote on Nov 15, 2019, 1:46 PM last edited by
    #13

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

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

    1 Reply Last reply
  • W wangfei9088 被引用 于这个主题 Jul 27, 2022, 4:18 PM
  • W wangfei9088 被引用 于这个主题 Jul 27, 2022, 4:20 PM
  • W wangfei9088 被引用 于这个主题 Jul 27, 2022, 4:20 PM
  • W wangfei9088 被引用 于这个主题 Jul 27, 2022, 4:22 PM
  • J Offline
    J Offline
    jinlinna
    replied to Calf.Z-DNS on Mar 5, 2024, 12:37 PM last edited by
    #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 Reply Last reply
  • K Offline
    K Offline
    kuangyonglin
    replied to 李东岳 on Jul 16, 2024, 1:08 PM last edited by
    #15

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

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

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

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

    e-mail: kuangyonglin@foxmail.com

    1 Reply Last reply
  • 李 Online
    李 Online
    李东岳 管理员
    wrote on Jul 16, 2024, 2:58 PM last edited by
    #16

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

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

    K 1 Reply Last reply Jul 17, 2024, 2:41 AM
  • K Offline
    K Offline
    kuangyonglin
    replied to 李东岳 on Jul 17, 2024, 2:41 AM last edited by
    #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 Reply Last reply
Jul 10, 2019, 12:34 AM

13/17

Nov 15, 2019, 1:46 PM

4 unread
Jul 17, 2024, 2:41 AM
  • Login

  • Login or register to search.
13 out of 17
  • First post
    13/17
    Last post
0
  • 最新
  • Categories
  • 东岳流体
  • 随机看[请狂点我]