CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    rhoCentralFoam发散,出现Negative Initial Temperature

    OpenFOAM
    4
    18
    3212
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • R
      RebelYoung 最后由 RebelYoung 编辑

      计算目的:计算跨声速外流,先尝试简单模型计算,尝试使用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
        RebelYoung 最后由 编辑

        算例文件在文中已经贴出

        1 条回复 最后回复 回复 引用
        • R
          RebelYoung 最后由 编辑

          尝试画粗网格计算正方体外流,结果确实可以计算,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 条回复 最后回复 回复 引用
          • 李东岳
            李东岳 管理员 最后由 编辑

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

            线上CFD课程开始报名:http://www.dyfluid.com/class.html

            CFD高性能服务器 http://dyfluid.com/servers.html

            R 2 条回复 最后回复 回复 引用
            • R
              RebelYoung @李东岳 最后由 编辑

              @东岳 是的哇

              1 条回复 最后回复 回复 引用
              • R
                RebelYoung @李东岳 最后由 编辑

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

                1 条回复 最后回复 回复 引用
                • 李东岳
                  李东岳 管理员 最后由 编辑

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

                  线上CFD课程开始报名:http://www.dyfluid.com/class.html

                  CFD高性能服务器 http://dyfluid.com/servers.html

                  R 2 条回复 最后回复 回复 引用
                  • R
                    RebelYoung @李东岳 最后由 编辑

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

                    1 条回复 最后回复 回复 引用
                    • R
                      RebelYoung 最后由 编辑

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

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

                      1 条回复 最后回复 回复 引用
                      • R
                        RebelYoung @李东岳 最后由 编辑

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

                        1 条回复 最后回复 回复 引用
                        • 李东岳
                          李东岳 管理员 最后由 编辑

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

                          线上CFD课程开始报名:http://www.dyfluid.com/class.html

                          CFD高性能服务器 http://dyfluid.com/servers.html

                          R 1 条回复 最后回复 回复 引用
                          • R
                            RebelYoung @李东岳 最后由 编辑

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

                            1 条回复 最后回复 回复 引用
                            • R
                              RebelYoung 最后由 编辑

                              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}$下降一个量级。

                              1 条回复 最后回复 回复 引用
                              • R
                                RebelYoung 最后由 编辑

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

                                1 条回复 最后回复 回复 引用
                                • 李东岳
                                  李东岳 管理员 最后由 编辑

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

                                  线上CFD课程开始报名:http://www.dyfluid.com/class.html

                                  CFD高性能服务器 http://dyfluid.com/servers.html

                                  1 条回复 最后回复 回复 引用
                                  • T
                                    Tens 讲师 最后由 编辑

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

                                    李东岳 1 条回复 最后回复 回复 引用
                                    • 李东岳
                                      李东岳 管理员 @Tens 最后由 编辑

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

                                      线上CFD课程开始报名:http://www.dyfluid.com/class.html

                                      CFD高性能服务器 http://dyfluid.com/servers.html

                                      1 条回复 最后回复 回复 引用
                                      • 酱
                                        酱爆鸡丁 最后由 编辑

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

                                        1 条回复 最后回复 回复 引用
                                        • First post
                                          Last post