I’m currently working on simulating an impact test using explicit dynamics. I decided to start off with simple simulation of a cube running into a larger block and bouncing off but I can’t seem to get this one to work. It runs without an issue in Abaqus but I need to switch to CalculiX. Here’s a picture of the successful Abaqus simulation:
The red block is given an initial velocity directed towards the large block, it runs into it and then bounces off. I have a surface to surface contact defined between the two blocks and the simulation will run for a few increments but then experiences a segmentation fault error. Using gdb I found that the segmentation fault is occuring in near3d.f (where I think CalculiX is trying to determine which elements are in contact). Has anyone experienced this before/ has any suggestions? Any help would be greatly appreciated.
Also, I am running this in ccx_2.17.
If you want to look at the input file, here’s a link to it:
When does it stop? When the block hit the other block or also earlier?
Have you tried to use a finer mesh or to decrease the time step size?
Try with “NODE TO SURFACE”:
The only output I was seeing is :
maximal possible contact elements =
Where the segmentation fault occured during iinc=11. The block is nearly touching right at the beginning, so it’s likely stopping right when contact is made. I’ll give mesh refinement a shot, but this is just a simple example I used to recreate the error. The actual model I am working on has quite a fine mesh and also gives the error. I’ll let you know if it improves it though.
Thank you both all for the help. @rafal.brzegowy , What did you change in the input file to get Node to Surface to work?
I defined a node surface on the small block but still got a segmentation fault during a call to near3d.f. It ran for much longer this time, and made contact with the large block, but still eventually failed.
Here a link to an updated input file of your model. I slightly modified your file regarding boundary conditions to further simplify the model. I ran it on Windows with ccx 2.17 which took around 10 min.
2 observations with my ccx run made further evaluation of the results more complex than it should have been:
- On Windows the .sta file was not populated to show the increments.
- writing the .frd file Calculix does not seem to consider TIME POINTS options. Regardless what I specify for *EL FILE or *NODE FILE the frd file size is always the same.
Thanks so much @johanngil , you’re updated .inp file runs as expected on my machine as well. To recap some of the changes (for others who may come across this), they are:
- For *SURFACE BEHAVIOR, use pressure-overclosure=LINEAR rather than =HARD, and specify the linear stiffness K
- For *Dynamic, specify ALPHA=-0.33 (increasing numerical dampening I guess)
- For *Contact Pair, use type=NODE TO SURFACE
As for the TIMEPOINTS option in the *EL FILE or *NODE FILE card, I haven’t ever gotten it to work with Dynamic explicit either, but using the parameter ‘frequency=100’ only writes every 100th increment, which reduces the file size. I haven’t yet implemented these changes in my larger contact problem, but hopefully they do the trick.