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. rhoCentralFoam发散,出现Negative Initial Temperature

rhoCentralFoam发散,出现Negative Initial Temperature

已定时 已固定 已锁定 已移动 OpenFOAM
18 帖子 4 发布者 13.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月26日 07:23 最后由 RebelYoung 编辑 2020年7月26日 15:25
    #1

    计算目的:计算跨声速外流,先尝试简单模型计算,尝试使用rhoCentralFoam求解器。

    算例外形 球
    直径 0.002m。
    边界条件 自由流
    来流速度 1到250m/s均有计算
    压强 6.0e4 Pa
    温度 270K
    流体类型 标准气体

    网格为非结构,prism附面层。
    条件根据rhoC的tutorials算例修改。

    首先说一下在rhoC的tutorials算例发现的几个现象:

    1. 所有rhoC的tutorials算例均为laminar。
    2. 所有rhoC的tutorials算例计算中输出的:
    diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
    diagonal:  Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
    diagonal:  Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0
    diagonal:  Solving for rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
    

    残差始终为0。和我计算中一致,不知道这是什么问题。
    3. 有些算例为了控制Mach数,速度温度都设置的很低,看似是低速但是马赫数很高。但是这些算例中的rho/rhoU/rhoE的残差也始终是0。

    rcf_sphere算例(提取码: b7h6)出现的问题:Negative Initial Temperature

    报错如下:

    --> FOAM FATAL ERROR: 
    Negative initial temperature T0: -10272.9
    
        From function Foam::scalar Foam::species::thermo<Thermo, Type>::T(Foam::scalar, Foam::scalar, Foam::scalar, Foam::scalar (Foam::species::thermo<Thermo, Type>::*)(Foam::scalar, Foam::scalar) const, Foam::scalar (Foam::species::thermo<Thermo, Type>::*)(Foam::scalar, Foam::scalar) const, Foam::scalar (Foam::species::thermo<Thermo, Type>::*)(Foam::scalar) const, bool) const [with Thermo = Foam::hConstThermo<Foam::perfectGas<Foam::specie> >; Type = Foam::sensibleInternalEnergy; Foam::scalar = double; Foam::species::thermo<Thermo, Type> = Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy>]
        in file /home/rebel/OpenFOAM/OpenFOAM-7/src/thermophysicalModels/specie/lnInclude/thermoI.H at line 56.
    
    FOAM aborting
    
    #0  Foam::error::printStack(Foam::Ostream&) at ??:?
    #1  Foam::error::abort() at ??:?
    #2  Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy>::T(double, double, double, double (Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy>::*)(double, double) const, double (Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy>::*)(double, double) const, double (Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy>::*)(double) const, bool) const at ??:?
    #3  Foam::hePsiThermo<Foam::psiThermo, Foam::pureMixture<Foam::constTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > >::calculate() at ??:?
    #4  Foam::hePsiThermo<Foam::psiThermo, Foam::pureMixture<Foam::constTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > >::correct() at ??:?
    #5  ? in "/home/rebel/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/rhoCentralFoam"
    #6  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
    #7  ? in "/home/rebel/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/rhoCentralFoam"
    
    

    该错误往往发生在计算几十到一百个时间步后出现,根据残差可以发现和算例的区别是,每步的initial residuals都比final residuals大,而tutorials算例都是减小的,符合收敛的趋势。
    但是,奇怪的是每一步的初始残差又总是只有10^-7^量级,也并不是很大。迭代后往往上升两个量级。。
    其中内能e的上升比较明显,能从10^-9^上升到10^-5^。
    所以光看残差趋势是预想不到某一步的直接发散。

    之后增加minMax函数监视,发现在接近发散的几个时间步,最大内能和温度都会陡增。从约200K增加到2000多K。
    但是由于时间步长太短,几十步发散的情况下,可视化后处理看不出什么道道。球表面像长痘痘一样出现一些高温点。这是说明附面层网格出毛病了??
    Alt
    总的来说,应该就是能量方程发散,出现非物理的内能/温度。

    另外,fvOptions限制器已经加了,不过没起作用。。。。

    请问这个负初始温度到底是啥?以及解决办法。

    谢谢谢!

    还有两个小个问题是,
    1.上面报错的一堆“#::???” ,这堆报错信息到底能看出啥呀?这里面的问号是我电脑乱码了吗?
    2.为什么同样laminar,同样的求解器,在不同算例里fvsolution中设置的量不同呢?
    我是根据obliqueShock算例修改的,只是改了polyMesh和0文件下边界条件。可是运行报错e未定义,但是原算例本来就没有哇。

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月26日 07:26 最后由 编辑
    #2

    算例文件在文中已经贴出

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月27日 08:23 最后由 编辑
    #3

    尝试画粗网格计算正方体外流,结果确实可以计算,deltat=10^-7算到0.05s,未出现以上问题。
    对应精细网格,计算到300个时间步,又出现了温度陡增的发散问题。
    efine.png
    细网格内能残差
    erough.png
    粗网格内能残差

    两个算例的迭代中能量残差都是initial residual< final residual,不过粗网格没有发散。
    在这些rhoC算例中计算发现,温度压强都有“龟派气功”的特效。。。前缘驻点附近形成的高压会脱体。。。后缘驻点类似。。。
    42859ea4-a17d-4f10-aa93-9c0c217cd5b3-image.png 3592857d-f578-4ccb-993d-3c1f763ce5e0-image.png 50a66c9f-63c9-43a5-a7f6-fae25627dc1f-image.png 1cf20ea8-0423-4fc7-8085-518815d39b06-image.png
    到最后消失了。。。

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2020年7月27日 09:10 最后由 编辑
    #4

    你上传的速度边界条件是1m/s?

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

    R 2 条回复 最后回复 2020年7月29日 02:27
  • R 离线
    R 离线
    RebelYoung
    在 2020年7月29日 02:27 中回复了 李东岳 最后由 编辑
    #5

    @东岳 是的哇

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    在 2020年7月29日 02:29 中回复了 李东岳 最后由 编辑
    #6

    @东岳 我其他的边界条件pT都是一样的,控制雷诺数,计算了不同的速度。因为是层流,所以上传的是最小速度1m/s的。

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2020年7月29日 10:06 最后由 编辑
    #7

    不能用rhoCentralFoam算低音速流动,这个速度太低了

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

    R 2 条回复 最后回复 2020年7月29日 13:47
  • R 离线
    R 离线
    RebelYoung
    在 2020年7月29日 13:47 中回复了 李东岳 最后由 编辑
    #8

    @东岳 那么高速导致雷诺数量级太大,层流模型还能算么?

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月29日 13:48 最后由 编辑
    #9

    https://www.cfd-china.com/topic/1737/可压缩求解器为什么密度残差一直为0-迭代步也一直是0

    这里面回答了rho,rhoE,rhoU残差为0的原因。

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    在 2020年7月29日 14:23 中回复了 李东岳 最后由 编辑
    #10

    @东岳 重新试了一下250m/s,相当于0.83Ma,算了20步就出现负初始温度的问题

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2020年7月30日 00:56 最后由 编辑
    #11

    @RebelYoung 网格是否可以使用六面体网格?

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

    R 1 条回复 最后回复 2020年7月30日 01:24
  • R 离线
    R 离线
    RebelYoung
    在 2020年7月30日 01:24 中回复了 李东岳 最后由 编辑
    #12

    @东岳 我是用pointwise画了导出的,这个球比较难画:136: ,
    我的另一个简单算例cube (提取码: ywvc)是有附面层的全结构网格,上传的设置是初始条件是类似rhoS的0012算例的freestream type。
    来流速度30m/s,就是上面贴图的龟派气功的结果,在几百步后也会发散,出现负温度。

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年7月30日 04:37 最后由 编辑
    #13

    rcf_cube_250.png
    250m/s的cube,60步出现negative initial temperature。

    # Field minima and maxima
    # Time        	field         	min           	location(min) 	max           	location(max) 
    3.57143e-05   	T             	1.454278e+02	(1.646393e-02 1.393888e-19 -1.709886e-18)	3.108947e+02	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.57143e-05   	e             	1.043157e+05	(1.646393e-02 1.393888e-19 -1.709886e-18)	2.230054e+05	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.64286e-05   	T             	1.335562e+02	(5.517241e-03 1.105814e-02 1.105814e-02)	3.098790e+02	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.64286e-05   	e             	9.580017e+04	(5.517241e-03 1.105814e-02 1.105814e-02)	2.222768e+05	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.71429e-05   	T             	2.917792e+01	(6.206897e-03 1.105814e-02 1.105814e-02)	3.078215e+02	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.71429e-05   	e             	2.092939e+04	(6.206897e-03 1.105814e-02 1.105814e-02)	2.208010e+05	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.58333e-05   	T             	1.400088e+02	(5.517241e-03 1.105814e-02 1.179091e-02)	3.108729e+02	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.58333e-05   	e             	1.004286e+05	(5.517241e-03 1.105814e-02 1.179091e-02)	2.229898e+05	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.65278e-05   	T             	6.218740e+01	(5.517241e-03 1.105814e-02 1.105814e-02)	3.097428e+02	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    3.65278e-05   	e             	4.460715e+04	(5.517241e-03 1.105814e-02 1.105814e-02)	2.221792e+05	(-1.646393e-02 1.393888e-19 -1.725321e-18)
    

    最后几步的温度最值,最后两步Tmin下降一个量级。

    1 条回复 最后回复
  • R 离线
    R 离线
    RebelYoung
    写于2020年8月4日 08:19 最后由 编辑
    #14

    沉了么。。?有大佬试试我的算例了么?

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2020年8月5日 12:53 最后由 编辑
    #15

    周末我下载你结构网格的试试

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

    1 条回复 最后回复
  • T 离线
    T 离线
    Tens 神
    写于2021年8月11日 13:49 最后由 编辑
    #16

    不知道题主有没有解决,最近也碰到Negative Initial Temperature T0的问题

    李 1 条回复 最后回复 2021年8月18日 08:30
  • 李 离线
    李 离线
    李东岳 管理员
    在 2021年8月18日 08:30 中回复了 Tens 最后由 编辑
    #17

    @tens 这个是一种发散的表象。但是不是特别好处理,原因有很多,也不太好找是哪个。openfoam里面用了一种limit来强制处理,但有的时候也不能保证没有负温度出现。只能继续深入debug

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

    1 条回复 最后回复
  • 酱 离线
    酱 离线
    酱爆鸡丁
    写于2021年12月8日 03:59 最后由 编辑
    #18

    lz解决了吗?我也遇到同样的问题了,高压气流冲击真空环境,使用rhoCentralFoam,算了一段时间之后就出现negative initial temperature t0,改了好久,可以推迟出现的时间,但总会出现,不知道怎么弄了

    1 条回复 最后回复
2020年7月26日 07:23

10/18

2020年7月29日 14:23

未读 8
2021年12月8日 03:59
  • 登录

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