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
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
150
(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!