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. 关于wedge边界的使用

关于wedge边界的使用

已定时 已固定 已锁定 已移动 OpenFOAM
26 帖子 5 发布者 16.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • X 离线
    X 离线
    xuhuashi
    在 中回复了 韬智tz 最后由 编辑
    #5

    @韬智tz 你的blockMeshDict编写有问题,可以参考这个
    https://openfoamwiki.net/index.php/Main_ContribExamples/AxiSymmetric
    或者你可以用blockMesh先生成三维的,再借助MakeAxialMesh工具转换成楔形网格:
    https://openfoamwiki.net/index.php/Contrib/MakeAxialMesh

    韬 1 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 xuhuashi 最后由 编辑
    #6

    @xuhuashi 谢谢大佬!5°的楔形体弄出来了,那在这个计算域中怎么设置气泡场呢?我的blockMeshDict里面是这样的

    convertToMeters 1;
    
    vertices
    (
        (0 0 0)
        (0.023725 0.001035 0)
        (0.023725 0.001035 0.03) 
        (0 0 0.03)
        (0.023725 -0.001035 0) 
        (0.023725 -0.001035 0.03)
    );
    
    blocks
    (
        hex (0 4 1 0 3 5 2 3) (19  1 300) simpleGrading (1 1 1)
    );
    
    edges
    (
    );
    
    boundary
    (
         front
         { 
               type wedge;
               faces   
               (
                   (0 1 2 3)
               );
         }
    
         back
         { 
             type wedge;
               faces  
               (
                   (0 3 5 4)
               );
         }
    
         walls
         { 
               type wall;
               faces  
               (
                   (1 4 5 2)
                   (0 4 1 0)
                   (3 5 2 3)
               );
         }
    
         axis
         { 
               type empty;
               faces  
               ( 
                   (0 3 3 0)
               );
         }
    
    );
    
    mergePatchPairs
    ( 
    );
    

    setFieldsDict里面是这样的

    defaultFieldValues
    (
       volScalarFieldValue alpha.water 1
       volScalarFieldValue p_rgh 1e5
       volScalarFieldValue p 1e5
       volScalarFieldValue T 300
    );
    
    regions
    (
       sphereToCell
       {
           centre (0 0 0.015);
           radius 0.005;
           fieldValues
           (
               volScalarFieldValue alpha.water 0
               volScalarFieldValue p_rgh 1e6
               volScalarFieldValue p 1e6
               volScalarFieldValue T 578
           );
       }
       sphereToCell
       {
           centre (0 0 0.03);
           radius 0.005;
           fieldValues
           (
               volScalarFieldValue alpha.water 0
               volScalarFieldValue p_rgh 1e6
               volScalarFieldValue p 1e
               volScalarFieldValue T 578
           );
       }
       boxToCell
     {
           box (0 0 0.03) (0.03 0.03 0.06);
           fieldValues
           (
               volScalarFieldValue alpha.water 1
           );
       }
    );
    

    但是后处理中alpha.water图
    微信图片_20220324184007.jpg
    用contour截的图alpha.water 0.5的图是这样
    微信图片_20220324184012.jpg 。
    这里没有气泡的形状了都,不知道哪儿错了,请大佬指点一下!

    X 1 条回复 最后回复
  • X 离线
    X 离线
    xuhuashi
    在 中回复了 韬智tz 最后由 编辑
    #7

    @韬智tz 你的x方向网格太少了,需要加密一下。

    韬 1 条回复 最后回复
  • Y 离线
    Y 离线
    Yu_Tian
    在 中回复了 xuhuashi 最后由 编辑
    #8

    @xuhuashi 这个阵列成一个三维的功能太好了,终于找到了:xinxin:

    永远学习,永远进步

    Prometheus10P 1 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 xuhuashi 最后由 编辑
    #9

    @xuhuashi 大佬加密了网格,设置的气泡场形状可以了,但是用compressibleInterFoam算完之后出现了两个问题:
    1.出现如图片所示的错误
    微信图片_20220329144345.jpg
    2.就是算完之后没什么效果,就是气泡形状都没有变化。给您看下0文件里面的alpha.water文件怎么设置的,看下哪里设置错误了。

    dimensions      [0 0 0 0 0 0 0];
    internalField   uniform 0;
    
    boundaryField
    {
        back
        {
            type            wedge;
        }
    
        front
        {
            $back;
        }  
    
        walls
        {
            type            zeroGradient;
        }
    
        axis
        {
            type            empty;
        }
    
    }
    X 1 条回复 最后回复
  • X 离线
    X 离线
    xuhuashi
    在 中回复了 韬智tz 最后由 编辑
    #10

    @韬智tz 1. 浮点数溢出导致发散了。发散的问题可能有很多,比如网格质量不好,比如某个变量计算变化太大(例如负压负温)。你可以试试减小松弛因子,或者先用低阶的离散格式试试,或者给个合适一点的初始参数。
    2.气泡初始压力大于周围流体压力才会膨胀,你看看是不是气泡初始条件給错了,或者是不是气泡还没开始变化就已经发散了。

    韬 3 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 xuhuashi 最后由 编辑
    #11

    @xuhuashi 谢谢指点,我试试大佬的解决办法。

    1 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 xuhuashi 最后由 编辑
    #12

    @xuhuashi 按您的解决办法我加密了网格(直接在blockMeshDict调x,z方向的网格数),没有解决。
    松弛因子的话,我这个算例是OF自带的,fvSolution里面并没有设置relaxationFactor,是要在fvSolution里面加上松弛因子吗,我看tut里compressibleInterFoam那一类里面都设置为

    relaxationFactors 
    { 
         equations 
         { 
                 ".*"        1; 
         } 
    } 
    

    这个我不确定,所以问问您。
    由于是自带算例,离散格式是这样的,我也没改,您看怎么改能解决发散的问题呢。

    ddtSchemes
    {
        default         Euler;
    }
    
    gradSchemes 
    {
        default         Gauss linear;
    }
    
    divSchemes 
    {
        div(phi,alpha)  Gauss interfaceCompression vanLeer 1;
    
        div(rhoPhi,U)  Gauss upwind;
        div(rhoPhi,T)  Gauss upwind;
        div(rhoPhi,K)  Gauss upwind;
        div(phi,p)      Gauss upwind;
        div(phi,k)      Gauss upwind;
    
        div(((thermo:rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
    }
    
    laplacianSchemes 
    {
       default         Gauss linear uncorrected;
    }
    
    interpolationSchemes 
    {
        default         linear; 
    }
    
    snGradSchemes
    { 
        default         uncorrected;
    }
    1 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 xuhuashi 最后由 编辑
    #13

    @xuhuashi 我加了这个,结果能算,不指定α和α=1不是一样的效果吗?为什么能算了呀

    relaxationFactors 
    { 
          equations 
         { 
                 ".*"        1; 
         } 
    } 
    

    加了这个能算,但是结果还是气泡没有变化,我的初始压力是大于周围流体的,之后又加大了两倍,也没用。

    X 李东岳李 2 条回复 最后回复
  • X 离线
    X 离线
    xuhuashi
    在 中回复了 韬智tz 最后由 编辑
    #14

    @韬智tz 要不咱私聊吧,qq:1144231085

    韬 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    在 中回复了 韬智tz 最后由 李东岳 编辑
    #15

    @韬智tz $\alpha=1$收敛性更好。不指定alpha,可能会非对角占优。

    气泡初始压力大于周围流体压力才会膨胀,你看看是不是气泡初始条件給错了,或者是不是气泡还没开始变化就已经发散了。

    就像 @xuhuashi 大佬说的,看一下你的压力场,压力场也要setFields

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

    1 条回复 最后回复
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    在 中回复了 Yu_Tian 最后由 编辑
    #16

    @yu_tian 你也来了 老哥 咱俩又见面了 之前这玩意查了好久 一直不知道咋整:xinxin:

    李东岳李 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    在 中回复了 Prometheus10 最后由 编辑
    #17

    @prometheus10 你的ID让我想起了普罗米修斯

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

    Prometheus10P 1 条回复 最后回复
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    在 中回复了 李东岳 最后由 编辑
    #18

    @李东岳 东岳老师好~:xinxin:
    是的 我以前添加您微信的时候 ID也叫这个:xinxin:

    1 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 xuhuashi 最后由 编辑
    #19

    @xuhuashi 谢谢大佬指点,还想问下,楔形网格在指定区域加密用topoSet里面的source是用cylinderToCell,还是其他的呀。我这里用的cylinderToCell,但是出现下面的错误,请大佬看下!微信图片_20220405191857.jpg

    Prometheus10P 1 条回复 最后回复
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    在 中回复了 韬智tz 最后由 编辑
    #20

    @韬智tz 你好!韬智tz
    我用boxToCell 能加密成功
    不妨一试:

    actions
    (
        {
            name        c2;
            type        cellSet;
            action      new;
            source  boxToCell;
            box     (0 -0.01 0) (0.002 0.01 0.0075);
        }
    );
    
    韬 2 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 Prometheus10 最后由 编辑
    #21

    @prometheus10 谢谢,把区域选好了就直接在终端里输入topoSet,是吧,不用其他的操作了吧

    1 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 Prometheus10 最后由 编辑
    #22

    @prometheus10 你好,用box加密成功了,也能算了,但是结果中出现这种啮齿状的:
    微信图片_20220408154738.jpg
    这样太丑了,我觉得是网格问题,所以在同一个区域有加密了一次,出现了这样的网格:
    微信图片_20220408154543.jpg
    这里请教大佬两个问题:1.这种啮齿状是不是网格的问题。2.加密两次出现这种网格,怎么让他更好看。

    Prometheus10P 1 条回复 最后回复
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    在 中回复了 韬智tz 最后由 编辑
    #23

    @韬智tz
    你好!韬智tz
    在判断问题点之前,先咨询一下:

    你的命令顺序是怎么样的?
    是不是每次直接就接着做了refineMesh?
    还有加密的方向对不对?
    如果方便的话 给看一下代码和命令行

    韬 1 条回复 最后回复
  • 韬 离线
    韬 离线
    韬智tz
    在 中回复了 Prometheus10 最后由 编辑
    #24

    @prometheus10 就是先blockMesh,topoSet,两次refineMesh,然后setfields,之后就并行算了用的compressibleInterFoam。

    topoSetDict如下

    actions
    (
        {
            name    c0;
            type    cellSet;
            action  new;
            source  boxToCell;
            sourceInfo
            {
              box (0 -0.015 0.008) (0.005 0.015 0.015); 
            }
        }
    );
    

    refineMeshDict如下

    set             c0;
    
    coordinateSystem global;
    
    globalCoeffs
    {
       e1              (1 0 0);
       e2              (0 1 0);
       e3              (0 0 1);
    }
    
    directions      (e1 e3);
    
    useHexTopology  yes;
    
    geometricCut    no;
    
    writeMesh       no;
    Prometheus10P 1 条回复 最后回复

  • 登录

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