We occasionally have a situation where a flexible film needs to buckle as part of the loading. See figure. As the film passes through the buckling, the run will often diverge. If the “pop” succeeds, the run will once again be stable and the run will finish without issue.
A trick we use is to put a very low stiffness contact pair across both sides of the film to a dummy structure. The film will get caught in the very low stiffness springs, which can be enough to keep it from diverging. This will sometimes work, but it is not completely reliable and is not always convenient. I have linked a sample model. If you run as is, it should crash at t=0.02. Uncomment the contact commands and it will run to t=1.0.
I’d like to figure out a way to put in some “inertia relief” into the system, a feature available in some codes, that essentially puts a small stiffness against the motion of each cell. It is essentially faking a dynamic inertial reaction without the overhead of a full time-based transient. Since CCX does not have this feature, I’m looking for an alternative. Dumb tricks are always welcome!
If the load/force history is not important (flexible film probably means an elastic deformation) one possibility would be to prescribe a displacement boundary condition in the middle of the film to move it past the buckling point in the first step. Also include the load in the first step. Then add a second step and remove the boundary condition but keep the load. You should get a static equilibrium as the result which should be the same as without the boundary condition.
I really should check this group more often! Thanks for the tip Matej, we actually use a technique similar to what you are describing now. There is an “arc-length” convergence method that Guido was intending to put in place for converging problems like this, and he shared a paper on the method. We were hoping to make a user mod to Calculix but other things have pushed this back. If we do , we’ll share!
CalculiX doesn’t have an arc-length (Riks) solver implemented but the dynamic analysis should help you solve some buckling problems since inertia will stabilize the solution.
Apart from that, it’s better to use displacement control whenever possible.
We’ve been down the path of using dynamic analysis for these problems - it creates another set of issues entirely
When we are in this situation, it is precisely because we can’t rely on displacement control. That’s why we were hopeful that the Riks would do the trick. We have the math, and the talent to implement it, just missing the time! In the mean time I get to watch other solvers inflate parachutes with no headaches, but I’m hoping we’ll get there eventually!
It would be great to have the Riks solver implemented in CalculiX (in fact it’s one of the most missing functionalities in this software). But if it can’t be done yet then maybe at least adding automatic stabilization (damping factors that can be adjusted) for regular static analyses would be possible. Such a feature is very useful for all kinds of instabilities, not necessarily related to buckling.