rhoCentralFoam发散,出现Negative Initial Temperature



  • 计算目的:计算跨声速外流,先尝试简单模型计算,尝试使用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未定义,但是原算例本来就没有哇。



  • 算例文件在文中已经贴出



  • 尝试画粗网格计算正方体外流,结果确实可以计算,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
    到最后消失了。。。



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



  • @东岳 是的哇



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



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



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





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



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



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



  • 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)
    

    最后几步的温度最值,最后两步$T_{min}$下降一个量级。



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



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


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2