What dose this change mean?

Hi, everyone,

I am running a 3-D MFIX-TFM case with reactions. I noticed a change of output in the windows. As shown below, rows with leq_iksweep were inserted between two iterations of each time step suddenly, and did not disappeared after that.

Did you meet this change before?

What dose this change mean?

Time = 0.55673 Dt = 0.81000E-03
Nit P0 U0 V0 P1 U1 V1 Max res
1 6. 2.9E-02 2.6E-02 0. 3.3E-03 5.5E-03 P0
2 3. 1.7E-02 1.5E-02 0. 1.0E-03 2.7E-03 P0
3 2. 1.0E-02 9.2E-03 0. 6.9E-04 1.4E-03 P0

Integrating stiff chemistry…
DONE.
Minimum/Maximum number of steps over all cells: 3/3
Number of cells with Homogeneous/Heterogeneous reactions: 0/22326
Maximum number of integration attempts: 1
CPU Time Used: 0.0559 sec
Timestep walltime, fluid solver: 16.250 s
Time = 0.55754 Dt = 0.81000E-03
Nit P0 U0 V0 P1 U1 V1 Max res
1 7. 3.2E-02 2.8E-02 0. 3.3E-03 5.5E-03 P0
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
2 4. 1.9E-02 1.7E-02 0. 1.0E-03 2.7E-03 P0
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6
leq_iksweep 40 6
leq_iksweep 40 7
leq_iksweep 40 6

Integrating stiff chemistry…
DONE.
Minimum/Maximum number of steps over all cells: 3/3
Number of cells with Homogeneous/Heterogeneous reactions: 0/22326
Maximum number of integration attempts: 1
CPU Time Used: 0.0584 sec
Timestep walltime, fluid solver: 17.030 s

This message is a bit cryptic. It’s coming from this section in leqsol_mod.f

      CALL DGTSV(NEND-NSTART+1, 1, CC(NSTART+1), DD, EE, BB, NEND-NSTART+1, INFO
)

      IF (INFO.NE.0) THEN
         write(*,*) 'leq_iksweep',INFO, myPE
         IF(DMP_LOG)WRITE (UNIT_LOG,*) 'ROUTINE = ', ' IKSWEEP'
         RETURN
      ENDIF

DGTSV is a library routine that solves a tridiagonal matrix equation AX=Y for X. The nonzero return code for INFO means that A was a degenerate matrix.

In the current 21.2 version, we replaced DGTSV with a more efficient algorithm that runs up to 2x faster (modified Thomas algorithm). However with the new code, instead of this error message, we get a zero-division and the solver exits. We probably need to do something more to address this degenerate case.

– Charles