Accessing the explicit solver

Hello, I’m an experienced Abaqus user and have started having a play with Calculix. I want to try to run a wave propagation model using the explicit solver. I’ve used *STEP, DYNAMIC, EXPLICIT and it runs but it’s very slow (about 25 times slower than it would have been with the Abaqus explicit solver).

Is there any way to check if Calculix is actually using the explicit solver?

1 Like


when the explicit solver is called, it shows an estimated stable time increment employed. This can be a check to verify that the explicit solver is running. To my understanding, the explicit solution is still not optimized. Some parts of the postprocessing are not parallel and some checks, as the energy balance checks, are done per each time step. This affects the performance of the actual implementation.


Thanks very much for the reply. It did select a time increment so I guess it’s just slower then.

I also tried to set a time increment myself using the DIRECT option but it seemed to just pick its own anyway. Any idea on how to correct that?

1 Like

If I remember correctly, if the DIRECT parameter is not having effect, then is likely it is not recognized by the explicit solver in the actual implementation. The selected time step is already close to the theoretical linear maximum stable time increment, so values bigger than that are likely to be unstable.

I have a catch 22 problem now. I’ve found that an older version (2.8p2) does recognise the DIRECT option and runs the model ok but only when I reduce the time increment. The more recent versions don’t allow me to do this as they don’t seem to recognise the DIRECT option. Can anyone fix this? I’d also like to try some of the other solvers to see if I can get better calculation times (e.g. Spooles) but I can’t find a way to do this with the older 2.8p2 version.

Yes, I think at v2.9 the function was deprecated. I am not sure if the linear solvers will have a significant effect, since the solution is vector based, as it diagonalized the mass matrix and there is no need of using a linear solver, at least for the time integration. Compiling it with MKL certainly is much more performant overall, but the difference is more dramatic when it calls the MKL PARDISO instead of Spooles for lienar systems, which are not used in the explicit solution AFAIK.

If v2.8 is crashing but seems to do what you need, I would try to compile it. In Linux is straightforward, and if you are under a Debian based distro (like Ubuntu or Mint) can be even easier by calling the dependencies from the OS rather than installing them yourself.

Hello there. Just as a check. Have you picked your time step using the Courant’s number? Explicit analyses are conditionally stable. Cheers.

1 Like

Hi there, yes it is, together with additional factors to account for non-smooth nonlinearities.

I have used Courant’s number to calculate the time increment and it was also smaller than the one selected by Calculix so I don’t think it is that causing the problem.

Thanks, that is useful to know. I’m using windows at the moment and whilst I’m an experienced FE analyst, I’m a total noob when it comes to things like compiling. Do you know if there is any step by step guide anywhere for how to do it with windows?