Hello, I am working on a
solid A + gas B → solid C + gas D reaction with the attached .zip file.
My goal is to just run the program to see the concentration evolution of each species.
So, I wrote a very simple usr_rates.f and it compiles successfully.
However, when I run the program, It says that it encountered an invalid memory reference error.
(It indicates that there is a problem with usr_rates.f and I don’t understand it)
I deleted any if - endif block to simplify the code.
Despite being the simplest modification, I don’t understand where the error is stemming from.
I guess this is due to the phases, but I am not sure if I have to use usr_rates_des.f file because the example for solid - fluid reaction was written in the usr_rates.f file in the User Guide.
Hi Jinny. In the zipfile you uploaded, I see that mfixsolver is a symbolic link to another directory. /home/jinny/FINAL_DATA/FIXED_rate/CASE12
So it looks like you may have been attempting to use a solver you compiled for a different case? Since there are Fortran files in this project directory, you need to build the solver to match these sources. I have no idea what is in FINAL_DATA/FIXED_rate/CASE12 so we can’t help you debug that.
However, building this solver for this case does result in a segfault as you said. If you may have gotten a core dump. The problem is here:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f377ee9e86f in usr_rates (ijk=376, rates=...) at /tmp/FIXED/usr_rates.f:41
41 ReactionRates(IJK, Reaction_1) = RATES(Reaction_1)
(gdb) print rates
$1 = <error reading variable>
(gdb) whatis rates
type = real(kind=8) (*)
(gdb) up
#1 0x00007f377f0860ea in rrates0 () at /home/cgw/Work/NETL/mfix/model/rrates0.f:181
181 CALL USR_RATES(IJK, RATES)
(gdb) whatis rates
type = real(kind=8) (0)
(gdb)
The array RATES is allocatable but has never been allocated.
This is because the variable nrr (number of reaction rates) is set to 0.
(Unfortunately this isn’t yet covered in the online manual, we need to add a few chapters! But the online tutorials show examples of creating and using VTK outputs)