The simulation stops without warning

Developer, I don’t quite understand why there is no error. Computations stop automatically.Can you see the problem there? Looking forward to your reply.

Hi. When seeking help please attach your project files. An easy way to do this is to the main menu and select “Submit bug report” then upload the resulting ZIP file here.

Looking at the output above, it looks like the error is “Extremely excessive overlap”,
after which there are a few NaN (Not a Number) values which indicate that somethign has gone wrong in a numerical calculation. But without your input files we can only guess what the problem is.

– Charles

Thank you!Looking forward to your reply! (59.0 KB)

I am able to reproduce this. It took about 2 hours of running to reach t=0.12 and the solver stopped running. As you said, no warning or errors are printed, which is unusual.

A core file was generated and looking with the debugger I see this:

core was generated by `/usr/lib/python-exec/python3.9/python -m mfixgui.pymfix 
-s -f /tmp/qian_binhui_'.

Program terminated with signal SIGFPE, Arithmetic exception.

#0  0x00007f34c1687775 in desgrid::iofpos (fpos=-1.1880057567121186e+121)
    at /home/cgw/Work/NETL/mfix/model/des/desgrid_mod.f:376

376	      iofpos = floor((fpos-dg_xstart)*dg_dxinv) + dg_istart1

(gdb) p fpos
$1 = -1.1880057567121186e+121

(gdb) p dg_xstart 
$2 = 0

(gdb) p dg_dxinv
$3 = 624.99999999999989

(gdb) p dg_istart1
$3 = 4

(gdb) p (fpos-dg_xstart)*dg_dxinv
$5 = -7.4250359794507399e+123

(gdb) p floor((fpos-dg_xstart)*dg_dxinv) + dg_istart1
$6 = -7.4250359794507399e+123

(gdb) p iofpos
$7 = {integer(kind=4) (real(kind=8))} 0x7f34c1687750 <desgrid::iofpos>

The variable fpos has gotten very large (-1e+121) and even though the floating-point expression on the right-hand side of line 376 is OK, I think the error happens when we try to assign that to an integer. I’m not sure exactly what caused this or why no error is printed. We will follow up on this next week.

Thanks for the report,

– Charles

Running it a second time, I find an error in a different location:

#0  0x00007f0aca1659d0 in usr_rates_des (np=13430, pm=1, ijk=187, des_rates=...)
    at /tmp/qian_binhui_first_2022-04-30T231736.132534/usr_rates_des.f:146

```(gdb) list
141	      !**********************************************************************!
142	      ! bio_oil --> 10.681 char  (kmol/s)
143	      !---------------------------------------------------------------------//
144	      IF(X_g(IJK,bio_oil) > c_Limiter) then
145	           DES_RATES(R_2) =1.00D5 * RO_g(IJK) * X_g(IJK,bio_oil) / Mw_g(bio_oil) * &
146	           EXP(1.08d5/8.314/xTg)
147	      else 
148	           DES_RATES(R_2) = ZERO
149	      ENDIF   
(gdb) p RO_g(IJK)
$5 = -7.1001054212268613e+298

As you can see, RO_g is huge and this is leading to an overflow condition. It is also negative, which does not make sense for a density.

Running agin with DEBUG mode enabled.

– Charles

Thank you so much! After your reminder, I found that a minus sign is missing inside the exp(). I wonder if this equation is correct for heterogeneous reactions?Can you give me some advice on how to modify it?

Sorry, I do not know what the correct equation is. Perhaps someone else on the forum has a comment or suggestion.

Thanks for the explanation!