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中文网

M

MingfengWang

@MingfengWang
关于
帖子
22
主题
4
群组
0
粉丝
0
关注
1

帖子

最新

  • 在运行过程中Courant Number突然变大很多倍导致模拟发散,这是为什么呢?
    M MingfengWang

    @李东岳

    李老师好,我的算例设置如下,也非常简单:

    1. 压力边界条件设置:
    boundaryField
    {
        inlet
        {
            type            fixedValue;
            value           uniform 0.0001;
        }
        outlet
        {
            type            fixedValue;
            value           uniform 0;
        }
        bottom
        {
            type            zeroGradient;
        }
        top
        {
            type            zeroGradient;
        }
        particles
        {
            type            zeroGradient;
        }
        leftCyclic
        {
            type            cyclic;
        }
        rightCyclic
        {
            type            cyclic;
        }
    }
    
    1. 速度边界条件设置:
    boundaryField
    {
        inlet
        {
            type            zeroGradient;
        }
        outlet
        {
            type            zeroGradient;
        }
        bottom
        {
            type            noSlip;
        }
        top
        {
            type            noSlip;
        }
        particles
        {
            type            noSlip;
        }
        leftCyclic
        {
            type            cyclic;
        }
        rightCyclic
        {
            type            cyclic;
        }
    }
    

    也就是rightCyclic和leftCyclic设置的是周期性边界条件,在inlet和outlet方向上由压力驱动,算例的计算域如下:
    dis.png

    李老师能不能给个debug的方向,现在比较迷茫,不知道从哪下手!

    谢谢李老师!


  • 在运行过程中Courant Number突然变大很多倍导致模拟发散,这是为什么呢?
    M MingfengWang

    @李东岳
    李老师,我搞错了!

    这个是原始时间步长0.00001,我把步长调整到0.000001后模拟的24小时后服务器自动停止了,模拟到了大概1.2还没有报错。

    我把网格大小调整到原来的2倍时,时间步长还是0.00001,模拟到了6.43259停止了

    Time = 6.43258
    
    Courant Number mean: 0.000543753 max: 6.7715
    smoothSolver:  Solving for Ux, Initial residual = 0.231482, Final residual = 9.69966e-06, No Iterations 126
    smoothSolver:  Solving for Uy, Initial residual = 0.25902, Final residual = 9.38213e-06, No Iterations 132
    smoothSolver:  Solving for Uz, Initial residual = 0.186149, Final residual = 9.45433e-06, No Iterations 103
    Pressure gradient source: uncorrected Ubar = 0.790879, pressure gradient = -71278.3
    GAMG:  Solving for p, Initial residual = 0.917227, Final residual = 0.0727314, No Iterations 3
    time step continuity errors : sum local = 0.000216653, global = 0.000125143, cumulative = 0.000121947
    Pressure gradient source: uncorrected Ubar = 0.842221, pressure gradient = -76413.3
    GAMG:  Solving for p, Initial residual = 0.0794726, Final residual = 9.42094e-07, No Iterations 11
    time step continuity errors : sum local = 1.40897e-08, global = 1.34162e-09, cumulative = 0.000121948
    Pressure gradient source: uncorrected Ubar = 0.882042, pressure gradient = -80396
    ExecutionTime = 17324 s  ClockTime = 28958 s
    
    Time = 6.43259
    
    Courant Number mean: 0.0154029 max: 158.928
    
    

    谢谢李老师!


  • 在运行过程中Courant Number突然变大很多倍导致模拟发散,这是为什么呢?
    M MingfengWang

    各位老师同学大家好,我现在在运行一个模拟,在模拟的过程中出现了以下报错:

    Time = 8.34459
    
    Courant Number mean: 0.00149812 max: 1.90051
    smoothSolver:  Solving for Ux, Initial residual = 0.0914128, Final residual = 4.03307e-06, No Iterations 6
    smoothSolver:  Solving for Uy, Initial residual = 0.116317, Final residual = 4.73709e-06, No Iterations 7
    smoothSolver:  Solving for Uz, Initial residual = 0.140183, Final residual = 4.1816e-06, No Iterations 8
    Pressure gradient source: uncorrected Ubar = 0.056814, pressure gradient = 1279.18
    GAMG:  Solving for p, Initial residual = 0.0866448, Final residual = 0.00785603, No Iterations 2
    time step continuity errors : sum local = 4.49765e-06, global = -3.85726e-06, cumulative = -9.48652e-06
    Pressure gradient source: uncorrected Ubar = 0.0571471, pressure gradient = 1245.86
    GAMG:  Solving for p, Initial residual = 0.0145691, Final residual = 7.22072e-07, No Iterations 10
    time step continuity errors : sum local = 4.85089e-10, global = -5.57637e-11, cumulative = -9.48658e-06
    Pressure gradient source: uncorrected Ubar = 0.0578682, pressure gradient = 1173.73
    ExecutionTime = 57314.4 s  ClockTime = 57674 s
    
    Time = 8.3446
    
    Courant Number mean: 0.00199659 max: 2.63028
    smoothSolver:  Solving for Ux, Initial residual = 0.117271, Final residual = 4.41292e+10, No Iterations 1000
    smoothSolver:  Solving for Uy, Initial residual = 0.151209, Final residual = 1.72604e+11, No Iterations 1000
    smoothSolver:  Solving for Uz, Initial residual = 0.196965, Final residual = 5.62502e+11, No Iterations 1000
    Pressure gradient source: uncorrected Ubar = 1.59814e+11, pressure gradient = -1.59872e+16
    GAMG:  Solving for p, Initial residual = 1, Final residual = 0.0855593, No Iterations 1
    time step continuity errors : sum local = 1.0959e+08, global = 6.17828e+07, cumulative = 6.17828e+07
    Pressure gradient source: uncorrected Ubar = 7.1484e+10, pressure gradient = -7.151e+15
    GAMG:  Solving for p, Initial residual = 0.491208, Final residual = 8.042e-07, No Iterations 13
    time step continuity errors : sum local = 1836.7, global = -208.498, cumulative = 6.17826e+07
    Pressure gradient source: uncorrected Ubar = -5.58949e+10, pressure gradient = 5.59152e+15
    ExecutionTime = 57314.8 s  ClockTime = 57674 s
    
    Time = 8.34461
    
    Courant Number mean: 2.96516e+09 max: 8.66454e+12
    
    

    Courant Number突然变大了很多倍导致模拟发散,这是什么原因呢?

    我在网上查到了造成这种问题的几种原因:

    1. 网格太小。但是我增大了网格后还是在这个时间点发散,所以应该不是网格大小的问题。
    2. 时间步长太大。我尝试减小为原来步长的1/100,结果还是发散。
    3. 边界条件的问题。以下是我的压力边界条件,但是不知道怎么调整,因为是按照论文上的边界条件设置的。
    boundaryField
    {
        inlet
        {
            type            fixedValue;
            value           uniform 0.0001;
    
        }
    
        outlet
        {
            type            fixedValue;
            value           uniform 0;
        }
    
        bottom
        {
            type            zeroGradient;
        }
        
        top
        {
            type            zeroGradient;
        }
    
        particles
        {
            type            zeroGradient;
        }
    
        leftCyclic
        {
            type            cyclic;
        }
    
        rightCyclic
        {
            type            cyclic;
        }
    }
    

    希望大家给出一些指导,非常感谢!


  • OpenFOAM周期边界条件
    M MingfengWang

    已解决,原因就是网格数量不完全相等!


  • OpenFOAM周期边界条件
    M MingfengWang

    求助帖,各位老师好,我在运行周期边界条件时出现错误,不知道该如何解决,希望得到各位老师的指导,非常感谢。

    模拟区域如下:
    fig2.png
    想在left和right面上设置为周期边界条件(cyclic AMI)。

    使用snappyHexMesh生成网格,但是在pisoFoam模拟时出现以下报错:

    --> FOAM FATAL ERROR: (openfoam-2306)
    Unable to set target face for source face 1181 with centre: (1e-09 0.351916 0.0148406)

    具体的log文件为:log.pisoFoam

    猜想:是不是因为网格数量不完全相等造成的呢?如果是,该如何解决呢?

    非常感谢!


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @李东岳 跟李老师汇报一下,pisoFoam可以使用fvOptions并且有了结果,非常感谢李老师!!!


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @学流体的小明 好的,非常感谢!


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @李东岳 谢谢李老师!是不是查看icoFoam.C代码中没有fvOptions这一项?


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @李东岳 谢谢李老师:140:


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @学流体的小明 这是我的邮箱mingfeng.wang@outlook.com,能不能单独交流一下,谢谢!


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @学流体的小明 非常感谢!

    1. 我是在constant文件夹下添加了fvOptions文件,但是没有得到像你列出的这样的输出,可能是我fvOptinos设置有问题?我再检查一下。
    2. 这个原理我去好好看一下,谢谢!
    3. 关于压差的方法,我也看到论坛上有讨论,我是按照论坛说的方法改的UEqn.H和pEqn.H,但是结果好想不太对,因为压力是集中到入口的一个点上而不是整个入口,这就很怪异,下面是图片:
      p.png

  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @李东岳 哇!李老师回复我了,谢谢李老师!!!我好好看看!!!


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    @学流体的小明 非常感谢您的回复!!!看到了李老师在CFD公众号推送了你的解决办法,膜拜!

    “icoFoam不能使用fvOptions“我好想是在cfd-online上看到的,但是现在找不到了......

    大佬你好,我现在有以下几个问题,不知道能否帮我解答一下:

    1. icoFoam在使用fvOptions时,需不需要修改icoFoam呢?或者在controlDict中添加如何调用的fvOptions呢?因为我使用了fvOptions,但是并没有什么作用!
    2. 在fvOptions中使用Ubar的原理是什么呢?在整个流场中添加一个平均速度驱动流体流动吗?但是我想要的是压力驱动,也就是在入口和出口处有一定的压差,两者有什么区别吗?
    3. 如果使用pGrad的话,是不是在动量预测方程和速度矫正方程中都加入源项pGrad?

    谢谢!!!


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    修改createField.H之后代码能运行了,但是不知运行的结果是否正确。具体的更新如下:

    volVectorField pGrad
    (
        IOobject
        (
            "pGrad",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::NO_WRITE
        ),
        mesh,
        dimensionedVector("pGrad", dimensionSet(0, 1, -2, 0, 0, 0, 0), vector(0.08, 0, 0))
    );
    

    该代码的作用就是个赋给"pGrad"这个变量单位,保证能够在动量预测方程中和其他项的单位保持一致。


  • OpenFOAM使用icoFoam周期边界条件时压力如何处理?
    M MingfengWang

    OpenFOAM中使用icoFoam求解水在方管中流动时,如果将出口和入口设置为cyclic也就是周期边界条件,压力该如何设置?

    我尝试了两种方法,但是都有各自的问题:

    尝试1:通过修改icoFoam,在动量预测方程中添加压力源项,具体如下:
    (1)在createField.H头文件中添加一个名为pGrad的矢量场,代码如下:

    volVectorField pGrad
    (
        IOobject
        (
            "pGrad",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::NO_WRITE
        ),
        mesh,
        vector(0.08, 0, 0)
    );
    

    (2)然后修改icoFoam.C中的动量预测方程,具体如下:

            if (piso.momentumPredictor())
            {
                solve(UEqn == -fvc::grad(p) - pGrad);
            }
    

    尝试2:使用fvOptions,但是和没使用时也没有什么区别,可能是我设置错误。具体代码如下:

    momentumSource
    {
        type        meanVelocityForce;
        active      yes;
    
        meanVelocityForceCoeffs
        {
            selectionMode       all;
    
            fields              (U);
            Ubar                (0.08 0 0); 
            relaxation          1.0;
        }
    

    我有看看到说icoFoam不能使用fvOptions,希望老师同学们解答!非常感谢!

    另外,想要学习OpenFOAM有没有什么系统路径和参考书?期待各位老师同学的解答,谢谢!


  • snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准!
    M MingfengWang

    @李东岳
    我测试了一下,在服务器上模拟时,当核心数为4、8时监控的内部面上的流量正常。但是,当核心数为16、32、64时监控的内部面上的流量出错,且核心数越多误差越大,最大误差在一个数量级。

    以上使用的监控方法为在controlDict文件中写入以下代码:

    flowRateFaceZone
    {
      type            surfaceFieldValue;
      libs            (fieldFunctionObjects);
      operation       sum;
      regionType      faceZone;
      name          middleFace;
      fields
        (
            phi
        );
      writeFields    false;
    }
    

    另外,我也尝试着使用另外一种方法,将flowRateFaceZone写入到controlDict中,具体如下:

    #includeFunc flowRateFaceZone(name=middleFace)

    结果还是不行,没有结果输出。

    最后,还使用了后处理命令 "postProcess -func "flowRateFaceZone(name=middleFace)",同样还是没有结果输出。

    求李老师指点,谢谢!


  • snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准!
    M MingfengWang

    @李东岳 而且这种情况只出现在服务器上,不知道为什么!
    我在自己笔记本上测试时,snappyHexMesh单核和并行的结果都对。但是,把相同的设置放到服务器上时,snappyHexMesh并行就会有问题。


  • snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准!
    M MingfengWang

    @李东岳 感谢李老师的回复!

    1. 监控方法:
    • 用topoSet建立一个内部面faceZone,该面垂直于流动方向,平行于出入口
    • 使用surfaceFieldValue监控,具体如下:
    flowRateFaceZone
    {
      type            surfaceFieldValue;
      libs            (fieldFunctionObjects);
    
      operation       sum;
      regionType      faceZone;
      name          middleFace;
    
      fields
        (
            phi
        );
      writeFields    false;
    }
    
    1. 误差
    • snappyHexMesh单核时,内部面的流量等于出入口的流量,为2.093200e-13 m3/s
    • snappyHexMesh并行时,内部面流量6.733410e-14 m3/s,出入口流量为2.093200e-13 m3/s
    • 误差较大,差了一个数量级

  • snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准!
    M MingfengWang

    各位老师同学好,我想通过topoSet建立faceZone监测内部面的流量,但是出现了以下问题:

    • 当snappyHexMesh不是并行时,对faceZone流量监测是准的,使用的脚本是:

    blockMesh
    surfaceFeatureExtract
    snappyHexMesh
    topoSet
    checkMesh
    decomposePar
    mpirun -np 32 icoFoam -paralle
    reconstructPar

    • 但是,当使用snappyHexMesh并行时,就会出现对faceZone流量监测不准的情况,此时使用的脚本是:

    blockMesh
    surfaceFeatureExtract
    decomposePar
    mpirun -np 32 snappyHexMesh -parallel
    reconstructParMesh -constant -noZero
    topoSet
    checkMesh
    rm -rf processor*
    decomposePar
    mpirun -np 32 icoFoam -parallel
    reconstructPar

    希望各位老师同学给点建议,谢谢🙏


  • 如何直接在linux下安装of
    M MingfengWang

    @Number44 报的错是flex包没有安装,我找了管理员帮我安装了,现在已经整好了,谢谢🙏

  • 登录

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