-
Notifications
You must be signed in to change notification settings - Fork 237
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solution divergence between different combinations of linear and nonlinear solver schemes #6046
Comments
I am not quite sure I follow. I would pick a nonlinear solver tolerance that is accurate enough for your problem (if all schemes converge to 1e-12 nonlinear tolerance, I expect all solutions to be close to each other). After you pick your solver scheme and solver tolerance, you are free to choose a linear solver tolerance that a) makes it converge and b) gives a fast time to solution. |
Update results for when iterated Advection and Stokes is still producing effectively the same solution, while the Newton solver is still diverging between solver tolerances and setup for this problem. The next step is to simplify the problem a bit (use a single seed versus random seeds), as the the brick benchmark did show convergence between the four cases. @MFraters @anne-glerum - I wonder if the divergence is due to the Newton solver using the reference strain as the first guess during each time step, rather than the velocity field from the last time step? |
@naliboff I agree with the speculation:
The figure above shows the return mapping procedure on where However, at the first time step the initial guess is greatly deviated from the true solution, and I think this also explains why the Newton solver performs better with VEP models: when elasticity is included, plastic yielding does not occur at the first time step in most cases (or only occurs at a few points), so |
Leaving aside the previous comment, I recommend an alternative method to initialize the plastic strain on particles. Here is my plugin: However, in order to make this plugin work, I have to modify several lines in ASPECT: the function |
I do not see a reason why the function has to be connected to the signal. I think we implemented this at a time when the particle handler was rarely used, and only seen as one of the possible postprocessors, so we didnt think it to be appropriate to put the call into the main simulator class. This has changed since then, and particle worlds are now owned by the simulator directly. So in short, I would support removing the use of the signal, and instead calling Another option would be of course to modify the particle plugin initialization to allow your routine as one of the options (computing a random value per cell and then applying that to the particles as initial strain). Then you wouldnt need to make any change outside the particle plugin. |
@YiminJin - Thanks for the explanation above regarding the Newton method and divergence that can potentially arise from the first guess of the strain rate. Indeed it makes much more sense now why the Newton solver performs much better with VEP models. As you noted, the last series of models is so sensitive to the initial strain rate due the element-scale randomization of the initial plastic strain. Let's discuss further with @MFraters and others to sort out a path forward. Thank you again for laying out the helpful diagrams and equations! |
This post is a follow-up from a related series of issues and pull requests (#4370, #4563, #6002) that discuss solver failure or solution divergence for different combinations linear (
AMG
,GMG
) and nonlinear (iterated Stokes
,iterated Newton Stokes
, etc) solvers.@anne-glerum, @egpuckett, and previously discussed these results a few weeks ago.
As a starting point, I first ran a modified version of
benchmarks/viscoelastic_plastic_shear_bands/kaus_2010/kaus_2010_extension.prm
with elasticity removed and other updates to the solver parameters based on recent testing. One examples of this PRM is attached.This model was run for 0.01 Myr (100 time steps) was run for the following four parameter combinations:
Nonlinear solver tolerance = 1e-5
, zero traction surface (no mesh deformation)Nonlinear solver tolerance = 1e-7
, zero traction surface (no mesh deformation)Nonlinear solver tolerance = 1e-5
, free surface (mesh deformation)Nonlinear solver tolerance = 1e-7
, free surface (mesh deformation)For each of the four parameter combinations above, the following four solver combinations were tested:
Stokes solver type = block AMG
,Nonlinear solver scheme = single Advection, iterated Stokes
Stokes solver type= block GMG
,Nonlinear solver scheme = single Advection, iterated Stokes
Stokes solver type= block AMG
,Nonlinear solver scheme = single Advection and iterated Newton Stokes
Stokes solver type= block GMG
,Nonlinear solver scheme = single Advection and iterated Newton Stokes
At time = 0, the solutions (strain rate) are qualitatively very similar for a nonlinear solver tolerance of 1e-5 and zero traction surface or free surface:
Zero Traction Surface, t=0, Nonlinear Solver Tolerance = 1e-5
Free Surface, t=0 Myr, Nonlinear Solver Tolerance = 1e-5*
From t=0 to t=0.1 Myr, the two models (
block AMG
versusblock GMG
) usingsingle Advection, Iterated Stokes
still have qualitatively similar solutions, while the models usingsingle Advection, iterated Newton Stokes
diverge:Zero Traction Surface, t=0.1 Myr, Nonlinear Solver Tolerance = 1e-5
Free Surface, t=0.1 Myr, Nonlinear Solver Tolerance = 1e-5*
Making the nonlinear solver tolerance stricter (1e-7) leads to qualitatively similar strain rate fields for both the zero traction and free surface cases:
Zero Traction Surface, t=0.1 Myr, Nonlinear Solver Tolerance = 1e-7
Free Surface, t=0.1 Myr, Nonlinear Solver Tolerance = 1e-7*
Notably, the results for the case of
Nonlinear solver scheme = single Advection, iterated Stokes
and aNonlinear solver tolerance = 1e-5
or1e-7
show little divergence.Initial conclusions: For the same linear solver tolerance, a stricter nonlinear solver tolerance is needed for
iterated Newton Stokes
(and presumablyiterated defect correction Stokes
) related toiterated Stokes
.Next Steps:
@MFraters @bangerth @YiminJin @tjhei - This may be of interest.
Example PRM File:
kaus_2010_extension_gmg_iterated-newton-stokes.prm.txt
The text was updated successfully, but these errors were encountered: