Can't get simple explicit dynamics impact analysis to work


I’m struggling with explicit dynamics analyses. They either take hours to solve with very coarse meshes (even with mass scaling) or fail due to the limitations of this procedure. I decided to simulate something really simple that should work even with the current state of explicit dynamics in CalculiX (I do a lot of those analyses in Abaqus and they work so smoothly there that I may just be too harsh for CalculiX implementation). I chose a rectangular bar impact on a rigid wall. I started with a 2D (plane stress) model first but rigid body constraint can’t work there (Rigid body constraint doesn't work with shell, axisymmetric and plane stress/strain elements in explicit dynamics · Issue #59 · Dhondtguido/CalculiX · GitHub) so I just applied a material with 2 orders of magnitude higher Young’s modulus to that wall. However, the bar doesn’t move at all under the initial velocity. I removed the wall and it turned out that initial velocity doesn’t work here. Any ideas about what can be wrong ? Is that a bug that you can confirm ?

Then I switched to 3D and now the initial velocity works but contact doesn’t:

Mesh refinement didn’t help and I want to keep the mesh coarse for now to reduce the calculation time as much as possible.

Maybe you will have some ideas how to make this model work. It seems to be the only way to show the current capabilities of explicit dynamics in CalculiX. I will be grateful for any help.

I uploaded the files here: Dropbox - Simple impact ccx - Simplify your life

This file works and could be a starting point to torture the bar, comments, find bugs, improve , check accuracy…

I just have 16Gb on this Laptop and I’m running while doing other things so I can’t increase stiffness or refine .

I also think like you that there is a bug in Prepomax dealing with the Initial velocity. (Sorry if not, still getting used to it) . I wrote velocity with custom cards.
Increasing initial velocity and adjusting parameters accordingly one can also see the bar buckling due to the compression. (More interesting).

-It has crash twice when attempting to select nodes (All).
-Analysis process is fast (30 sec ) but Prepomax Struggles opening results and freezes when saving the results.
File is not so big (200 Mb). I have change settings so results are not saved in the pmx but then I lose the results?¿?.¿How could I recover the results in Prepomax?
-Requiring CDIS, CSTR doesn’t work.

Softer Impact no Buckling

I managed to impose initial velocity to 3D shells . :blush: It kind of a weird way but it works.
Contact too. Just need to clean and move to 2D everything. Pending to check if it deliver the right numbers.

Impact 3DShells

1 Like

This is the 2D Explicit Dynamic impact.

Now I understand why explicit is so hard to learn. It’s not difficult, it’s boooooring. Each run takes so long. :sweat_smile: (Not this one. File is as small as posible. Total CalculiX Time: 45 sec)

Warning. This seems useful not only for Dynamics. Master and Slave Shouldn’t have the same thickness to make the contact work. Seems like the nodes on the edges do not properly contact and in linear, shell elements,……… that’s the only nodes they have!!!. Poissson can make the slave to expand and mess the contact.
Contact stiffness should be as small as possible to speed up the calculation.
Rigid body doesn’t work. I think the problem is that node’s shells can’t drilling in plane. ¿it would mean Rot node can’t move in z direction?. But z doesn’t exist. I don’t understand Prepomax GUI or ccx when it allows for Rz constrain in 2D analysis.
Prepomax is still too slow when loading and inspecting the results. It’s strange because it solves very fast and CAD moves very quick. Postprocesor could be improved, 100% for sure.
Initial Velocity on shells works but tricky.

Impact 2DShells

Ok, it turns out that it’s necessary to create an arbitrarily named node-based surface for the bar based on the node set used for the initial condition to make it work in 2D (due to expansion issues):

bar, 1, -5000

Now I just have to figure out the parameters allowing for a reasonable runtime and accuracy of the contact force with my data (it’s Abaqus benchmark model). But at least I don’t have to use 3D so it shouldn’t take that long.

When I asked Guido about rigid body in axisymmetric explicit dynamics models, he said:

A rigid body condition is nonlinear due to the rotation. Axisymmetric elements are expanded and therefore, linear equations are introduced between the two sides of the 2-degree segment. Therefore, linear and nonlinear equations will depend on each other. I do not recall any more why it is not allowed in an explicit dynamic calculation, however, it may not be easy to remove this limitation. Increasing the E-modulus of the rigid body may be an option, however, it will decrease the time step (unless you fix the minimum allowed time step).

It must be the same with plane stress/strain and shells.

It’s because you have:

*Output, Frequency=1

It should be 100 or 1000 in explicit dynamics due to a large number of increments.

1 Like

I would avoid increasing unnecesarly the contact or material stiffness of the system at any price.
Do you have the reference of the ABQUS benchmark model to see how do they approach the problem?.

They use 2D truss elements for the bar and a single 1D rigid element (with fixed ref node) for the wall but such elements are not supported in CalculiX.

Btw. rigid bodies in Abaqus don’t influence the stable time increment. I wonder if it’s also the case in CalculiX.