Why is there a floating-point exception?

Hello, researchers! I am simulating the particle fall process (pure granular flow), but the following error occurs, what causes this? How can I fix this?


1.zip (3.9 MB)

I tried again, and when the particle collision model is Hertzian, I get a floating-point exception error (see the figure below for the relevant settings). However, when the collision model is Linear spring-dashpot, the model can be computed normally(see the figure below for the relevant settings). What is the reason for this?


The FPE is happening at line 104 of des_time_march.f in the function des_time_init

    87	! JFD: Update DTSOLID
    88	      CALL UPDATE_DTSOLID
    89	
    90	      DTSOLID_TMP = DTSOLID
    91	      TMP_WALL = WALL_TIME()
    92	
    93	! Initialize time stepping variables for coupled gas/solids simulations.
    94	      IF(DES_CONTINUUM_COUPLED) THEN
    95	         IF(DT.GE.DTSOLID) THEN
    96	            FACTOR = CEILING(real(DT/DTSOLID))
    97	         ELSE
    98	            FACTOR = 1
    99	            DTSOLID = DT
   100	         ENDIF
   101	
   102	! Initialize time stepping variable for pure granular simulations.
   103	      ELSE
   104	         FACTOR = CEILING(real((TSTOP-TIME)/DTSOLID))
   105	         DT = DTSOLID
   106	         CALL OUTPUT_MANAGER(.FALSE., .FALSE.)
   107	      ENDIF   ! end if/else (des_continuum_coupled)

the variable DTSOLID is not initialized correctly in this case and is leading to a zero-division error. @jeff.dietiker any comment?

The issue is the solids time step is very small (DTSOLID= 3.7643107441497341E-008) and you are solving for 100 seconds, so the number of DEM iterations turns out to be FACTOR = 2,656,528,825, which is larger that the max integer we can store.

It is also unlikely you will finish the simulation if you had a decent amount of particles in the system.
You can decrease the Young’s modulus, this will also decrease the solids time step. However, you should test with a final simulation time of say 1 second with particles in the system to see if this is even doable with DEM.

I tried as you said, it is worked. Thank you!