With all FPE (overflow/zero-division) checks disabled (invalid operations will result in NaN or +/-Inf as appropriate, per IEEE754)
This is quite interesting - it took about 20 minutes to simulate 2 seconds, and there were no crashes, just some overlap is too big!
messages.
Thes disc-shaped particles are spinning very fast. As entertaining as it is to watch, I’m not sure how physical it is. It might be correct. Particles tend to find their happy place and hover there, spinning madly, but eventually they drift off or are hit by another particle.
If you look closely, going frame-by-frame, you can find a few things like this:
two particles have completely intersected in a physically impossible manner. This is perhaps to be expected, given the high spin rate - we might have just missed the collision between them. dt
is 0.01 sec, it’s possible that reducing max_dt
would help with these overlaps (at the cost of slowing down the simulation). But since FPE checks are disabled, this was non-fatal - the simulation continued regardless.
This tells me that perhaps we need to reconsider the way we handle FPE’s are handled in MFiX. Disabling them altogether seems unwise - but for sections of code like the SQP code where we know large values are common (due to corners and other singularities) it might be easier to disable FPE checks than to rewrite the code to avoid doing things like (huge_number) ** 2
- checking all the inputs to all calculations would be a lot of work and could also slow down the code substantially.
Or perhaps we could add a control to the Numerics pane to enable/disable the various type of FPE check.
Next things to try:
- Change shape exponents
- Add more particles