Replies: 1 comment 3 replies
|
I use I must admit as a previous abaqus user I am spoiled by the features there with a bunch of parameters to tweak the simulation. |
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
While working on material-triggered timestep reduction, I came across the
DIVERCONTbehavior and was curious about how people use it. Changing its behavior slightly would make the necessary code for timestep adaptation due to other reasons (e.g. on material request) a lot cleaner, since they could use the same common mechanism.Here is a small summary of what the
DIVERCONTparameter does for the new solid time integration and whether the corresponding code is covered by tests.DIVERCONToptionstop(default)continuecontinue. For example, thecontact2D_patch_linstatic_new_struct.4C.jsontest (which even has theminimallabel, usesMAXITER: 1andcontinue.repeat_stephalve_stepNUMSTEP/step_endparameter.adapt_stephalve_step, but also checks for possible increase after hardcoded number of 4 steps. Increase is only actually done if the number of remaining steps is even.rand_adapt_steprand_adapt_step_ele_errrand_adapt_steprepeat_simulationstop, but doesn't throw immediately. Instead, delegates abortion to the timeloop.adapt_penaltycontactOn top of that, the timestep reduction is currently done inside
solve(), which returns something called a convergence status. However, this return value is currently ignored by many partitioned solvers, namely:ehl,fsi,pasi,poroelast,porofluid_pressure_based_elast(_scatra),ssi,tsi. This is potentially very dangerous, since the solid timestep can fall out of sync with the timestep of the other field, or, ifrepeat_simulationis used, the simulation goes on even though the solid integration failed. I am definitely planning on changing this along the way.My suggestion would be to only keep
stopas default,adapt_stepwith a separate input for more control on how the timestep is changed, and maybecontinue(but with reduced test coverage). But I would be interested to know if anyone is actively using any of the other options.All reactions