Francesc Levrero-Florencio <francesc.levrero-floren...@ansys.com> writes:
> Hi Jed, > > Thanks for the answer. > > We do have a monolithic arc-length implementation based on the TS/SNES logic, > but we are also exploring having a custom SNESSHELL because the arc-length > logic is substantially more complex than that of traditional load-controlled > continuation methods. It works quite well, the only "issue" is its > initiation; we are currently performing load-control (or displacement loading > as you mentioned) in the first time increment. Besides load-control and > arc-length control, what other continuation methods would you suggest > exploring? Those are the main ones, and they're all simple expressions for the constraint condition that you have to handle for arc-length methods, thus suitable to make extensible. Wriggers' book has a nice discussion and table. I imagine we'll get some more experience with the tradeoffs after I add it to SNES. > The test problem we are dealing with assumes plasticity but with small > strains so we will not see any snap-throughs, snap-backs or similar. TSBEULER > works quite well for this specific case and converges in a few time steps > within around 5-10 SNES iterations per time step. What PETSc functions do you > suggest exploring for implementing the TS time step extension control you > mentioned? Check out src/ts/adapt/impls/ for the current implementations. > Since you mentioned -ts_theta_initial_guess_extrapolate, is it worth using it > in highly nonlinear mechanical problems (such as plasticity)? It sounds quite > useful if it consistently reduces SNES iterations by one per time step, as > each linear solve is quite expensive for large problems. I found sometimes it overshoots and thus causes problems, so effectiveness was problem-dependent. It's just a run-time flag so check it out. I'm curious if you have experience using BFGS with Jacobian scaling (either a V-cycle or a sparse direct solve) instead of Newton. You can try it using -snes_type qn -snes_qn_scale_type jacobian. This can greatly reduce the number of assemblies and preconditioner setups, and we find it also reduces total number of V-cycles so is effective even with our matrix-free p-MG (which are very fast and have much lower setup costs, https://arxiv.org/abs/2204.01722).