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. pimple算法非定常计算时残差持续增加最终发散如何解决?

pimple算法非定常计算时残差持续增加最终发散如何解决?

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

    最近使用rhoPimpleFoam算一个翼型的气动特性,总是在算很长时间后突然发散,发现p和e的残差在不断增加最后导致发散
    0_1543632265578_Screenshot from 2018-12-01 10-38-49.png
    我计算时取的时间步长基本让最大库郎数稳定在80以下,pimple设置如下:

     73 PIMPLE
     74 {
     75     momentumPredictor yes;
     76     nOuterCorrectors 15;
     77     nCorrectors     4;
     78     nNonOrthogonalCorrectors 1;
     79     rhoMin          0.1;
     80     rhoMax          5.0;
     81     pMinFactor      0.5;
     82     pMaxFactor      2.0;
     83 
     84 }
    
    

    空间和时间离散格式如下

     18 ddtSchemes
     19 {
     20     default         backward;
     21 }
     22 
     23 gradSchemes
     24 {
     25     default         Gauss linear;
     26     limited         cellLimited Gauss linear 1;
     27     grad(U)         $limited;
     28     grad(k)         $limited;
     29     grad(kU)        $limited;
     30     grad(omega)     $limited;
     31     grad(omegaU)    $limited;
     32 }
    
     33
     34 divSchemes
     35 {
     36     default         none;
     37     div(phi,U)      Gauss linearUpwind limited;
     38 
     39     turbulence      Gauss linearUpwind limited;
     40     energy          Gauss linearUpwind limited;
     41 
     42     div(phi,k)      $turbulence;  
     43     div(phi,kU)     $turbulence;
     44     div(phi,omega)  $turbulence;
     45     div(phi,omegaU) $turbulence;
     46 
     47     div(phi,e)      $energy;
     48     div(phi,h)      $energy;
     49     div(phi,K)      $energy;
     50     div(phi,Ekp)    $energy;
     51 
     52     div(phiv,p)     Gauss upwind;
     53     div((phi|interpolate(rho)),p)   Gauss upwind;
     54 
     55     div(phi,ReThetat)  $turbulence;
     56     div(phi,gammaInt)  $turbulence;
     57 
     58     div(B)          Gauss linear;
     59     div(meshPhi,p)  Gauss linear;
     60 
     61     div((nuEff*dev2(T(grad(U))))) Gauss linear;
     62     div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
     63     div(nonlinearStress) Gauss linear;
     64 
    }
    

    网格是blockMesh做的,比较简单,因为要保证边界层密度所以纵横比比较大。请问导致发散的主要原因是什么?什么方法可以改善?我个人不希望再降低时间步长,因为目前已经很小了,采用pimple算法也是由于它能够在较大的库郎数下计算。谢谢各位!~

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

    很难判断出问题的所在...
    虽然我对你的case比较感兴趣,如果网格数量小可以上传一下我试试,不过我比较忙可能下周才能给你回复

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

    1 条回复 最后回复
  • S 离线
    S 离线
    Static
    写于 最后由 编辑
    #3

    @东岳 东岳老师,问题已解决。非定常计算一开始要求时间步长要比较小,先得到一个较稳定的流场,在别的求解器里可能会先用稳态求解器算一个初场。而我上面的算例一开始时间步长较大,到后面越来越不稳定最终发散。开始用变时间步长让对应的库郎数从1以下慢慢增加即可。

    1 条回复 最后回复

  • 登录

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