I am trying to restart a dynamic structural simulation in CalculiX, but the results upon restart do not agree with a non-restart run. For example, running for 20 steps as the “correct” solution, then running for 10 steps, and restarting to run for 10 more. I have tried combinations of (*DYNAMIC,DIRECT), (*DYNAMIC,DIRECT,EXPLICIT), NLGEOM, constant *CLOAD, and variable *CLOAD amplitude. I get the same results across multiple CCX versions (CCX_2.10, CCX_2.11, and CCX_2.16).

The restart itself does not fail, but it does produce a result inconsistent with the non-restart “correct” solution (i.e. y-displacement of node 2302 at t=0.02 should be 9.644763E-02 but if restarted at t=0.01 and run to 0.02 gives 9.644786E-02).

Hi @vollmerb, the numbers seem pretty close for a numerical solution. Assuming the non-restart is correct, then is a relative error in the displacement of about 2.385E-4%.

Hi @jbr , I agree the error is small and possibly negligible in some cases (other setups I have tried gave ~0.05% error). However if the restart is implemented correctly I would expect exact agreement between the two. This leads me to think either I am applying the restart incorrectly or there is a bug in the CCX restart feature.

Update: There is a bug in the CCX restart feature where the acceleration going into the prediction() step is incorrect on a restart. I was able to fix this by adding acceleration read/write to the restarts and replacing acceleration and velocity before the prediction evaluation (on the first iteration only). The velocities need to be replaced due to a results evaluation on restart which is not present in a non-restarted continued iteration.