Use case for potential perturbation in static steps

I found this requested previously, and I think I have a use case. I have a unique system that involves a gasket-plastic-gasket sandwhich (more or less) that is compressed from above. It’s basically like a flange cover - but with a void space between two gaskets. When I try to solve just the complete system with contacts and both gaskets, the analysis is taking many many hours. But if I do a step where I compress only the lower, and displace the plastic part and upper gasket and cover into the lower, it solves the lower (correctly) in under 10 minutes. If I could then at the perturbation in a 2nd step, I could solve the upper. I want to then add bolt load holding it together in a 3rd step - since again, force control compressing 2 gaskets in series is a very challenging problem, and I’ve not been able to get it to converge. Solving all three together I personally think implausible. But step through, it seems far better, if I am making sense.

Here’s a picture of the 1/2 assembly I am dealing with. The two “gaskets” in this model are standins for the actual gasket, to simplify. The actual gasket is hyperelastic material, which I simulated first in an axisymmetry model for both upper and lower separately. I used the force vs. displacement result from that to build a plasticity curve and apply to a simpler 1st order model of a gasket that compresses the same way, but solves with far less complexity in contact (real is both hyperelastic, and round shape). This simulated gasket matches the force vs. displacement in the 3D model, and approximates the contact patch width. It won’t predict stress correctly in the gaskets of course, nor will it get stress right in the contact region, but neither of those is of concern to me. Yes, I know people will wonder why it’s like this - just trust me, there is a valid reason :wink: - you can’t see it from this screen grab (missing geometry).

Do you mean this: Perturbation parameter for the static step ?

It’s not that useful to be honest because it forces full linearity of a static step and subsequent steps are independend of each other. In Abaqus, it’s used mostly for linear load cases.

This sounds more like application for import functionality in Abaqus (transferring the deformed mesh with material state between the analyses). In CalculiX, you can only manually reuse the deformed meshes.

However, with multiple nonlinear general static steps (where the state of the model from the end of one step is used as the base state in the second step), boundary conditions and loads that can be activated/deactivated within each step and controlled by amplitudes, this should be doable. Especially since you can even activate and deactivate elements and contact pairs with the custom *MODEL CHANGE keyword.

Indeed, force control often leads to non-convergence of nonlinear analyses. So it’s advised to use displacement control instead whenever possible (you can always adjust it based on the reaction forces or follow it with force control step). For preload as well.

Do you mean this: Perturbation parameter for the static step ?

It’s not that useful to be honest because it forces full linearity of a static step and subsequent steps are independend of each other. In Abaqus, it’s used mostly for linear load cases.

Yes - that was the prior discussion/finding.

I didn’t realize linearity would be enforced. Interesting.

This sounds more like application for import functionality in Abaqus (transferring the deformed mesh with material state between the analyses). In CalculiX, you can only manually reuse the deformed meshes.

However, with multiple nonlinear general static steps (where the state of the model from the end of one step is used as the base state in the second step), boundary conditions and loads that can be activated/deactivated within each step and controlled by amplitudes, this should be doable. Especially since you can even activate and deactivate elements and contact pairs with the custom *MODEL CHANGE keyword.

Yes - this seems plausible. I do not have Abaqus, only around the periphery. In terms of commercial codes, my familiarity has always been with ANSYS, COSMOS (well today “Solidworks Simulation” or whatever they call it now), and long ago, EMRC-NISA, which I see is still around today as just NISA.

Is this a path now using Keywords I could take? the first delving into that has been this project with hyperelasticity definitions, so admittedly, I am really new to that.

Indeed, force control often leads to non-convergence of nonlinear analyses. So it’s advised to use displacement control instead whenever possible (you can always adjust it based on the reaction forces or follow it with force control step). For preload as well.

On force control … yes, we’ll aware of that and I usually do use displacement control. I have made force control work at times with small displacements, which is where I was coming from thinking about it as a 3rd step since the bulk of the displacement would be “baked in” already in the first two steps. But if not, I would resolve to hold down the two split surfaces, which is where the washer would contact the top face, and let it move elsewhere. I would have to forego the ability to look specifically at the screw however within the same analysis.

A giant challenge I am facing here is the parts are all plastic, and the screws are thread forming. There is very little to no guidance on flange gaskets and covers pre-load of fasteners for the joint in cases like this. ASME guidance is strong for UNC/UNF/etc fasteners to do this sort of joint, with metals, happy linear elastic materials. So if I cannot simulate the screw joint together with it, I’ll have to do that separately. That’s fine if I land there. Just basically making this up as I go :laughing:

Check this thread, it explains how multistep analyses work in Abaqus and CalculiX: Understanding multistep analyses

I would start from multiple nonlinear steps and amplitudes, then maybe try with *MODEL CHANGE. You can find more about it on the CalculiX forum, but the main source is, of course, CalculiX’s manual: https://www.dhondt.de/ccx_2.23.pdf#subsection.7.89

Of course, it might be best to try it all out on a highly simplified model first.

This is where the import feature could be really helpful, as you could even analyze parts independently and then assemble them, taking into account their existing deformation state. But without this feature, you have to keep everything in the same analysis and only deactivate/reactivate stuff as needed using keywords.

This is where the import feature could be really helpful, as you could even analyze parts independently and then assemble them, taking into account their existing deformation state. But without this feature, you have to keep everything in the same analysis and only deactivate/reactivate stuff as needed using keywords.

Thanks for all the tips! I see what you mean with the import ability - that would be super helpful. I did do a export mesh manually just with a cantilever so I could experiment with that. It doesn’t really work in terms of what I would need here, but it it is interesting. Losing the stress state, and prior deformation isn’t helpful, leaves a fair amount of manual steps. I suppose I could maybe deform the lower seal in contact, and then export/import and then do a pre-load application on the deformed “lower seal” so it’s at least got the force function, but is already “close” to final position. Perhaps that would work to get the 2nd step to converge.

But first I am going to try the activate - deactivate stuff with model change keyword. I am going to experiment with that with the same basic cantilever first (always do when learning new stuff).