[aspect-devel] New feature that helps with convergence issues due to viscosity jumps
Magali Billen
mibillen at ucdavis.edu
Mon Jun 25 03:48:10 PDT 2018
Hello Diogo,
Thanks for explaining, this makes sense. I will update to the new version and give this a try also.
Magali
> On Jun 25, 2018, at 7:02 AM, Diogo Louro Lourenco <dlourenco at ucdavis.edu> wrote:
>
> ASPECT uses the GMRES (Generalized minimal residual method) solver, which is an iterative method for the numerical solution of a non-symmetric system of linear equations. The method generates a sequence of orthogonal vectors and approximates the solution by the vector with minimal residual. Because this method works for non-symmetrical systems, all previously computed vectors in the orthogonal sequence have to be saved. This is a disadvantage because the amount of work and storage required per iteration rises rapidly and can make the cost prohibitive. This is the reason why Aspect uses a "restarted" version of the GMRES method. What does that mean?
>
> After a chosen number of iterations (our "GMRES solver restart length"), the accumulated data is cleared and the intermediate results are used as the initial data for the next "GMRES solver restart length" number of iterations. This procedure is repeated until convergence is achieved. But this leaves us with a difficulty: chose the appropriate value for "GMRES solver restart length". If the value is too small, the solver may fail to converge, as was happening in my case, because there was no "memory" of the previously computed attempted solutions. Increasing the value of the "GMRES solver restart length" solves this. But, as I mentioned before using a higher value for "GMRES solver restart length" involves more storage and work. So, this feature does not necessarily make the solver to converge more quickly, but it makes the solver to converge when it otherwise wouldn't.
>
> (I'm sure other people in the mailing list know much more about this than me, so they can complement my answer if they find necessary.)
>
> I'm not sure if using the Material averaging parameter on or off helps in all situations, sorry. In my case it helps, I am using "Material averaging = harmonic average".
>
> I think that in principle this new feature should help with your convergence problems due to strong viscosity gradients. Try it with a model where you don't get convergence and change the "GMRES solver restart length" to a higher value like 100 or 200. If it helps, you should get convergence and the model should run smoothly (although a bit slower).
>
> Hope this helps! Let me know if I can help further.
> Diogo
>
> On Sat, Jun 23, 2018 at 3:09 AM Magali Billen <mibillen at ucdavis.edu <mailto:mibillen at ucdavis.edu>> wrote:
> This sounds very interesting, can you explain in simple terms what this change does... that is why or how does it allow the solver to converge more quickly with strong viscosity jumps (or gradients?)?
>
> Also, do you recommend using this with the Material averaging parameter on or off ?
>
> I ask because i am currently building subduction models with strong viscosity gradients, and also have convergence challenges (although I am just at the beginning of trying different parameters, etc...)
>
> Sent from my iPhone
>
> > On Jun 23, 2018, at 1:14 AM, Diogo Louro Lourenco <dlourenco at ucdavis.edu <mailto:dlourenco at ucdavis.edu>> wrote:
> >
> > Hi all,
> >
> > There is a new feature in ASPECT that helps if you are experiencing solver convergence issues. I was having troubles with convergence due to viscosity jumps of 100x in the mid-mantle while using gplates to prescribe surface velocities. Even for (unrealistic) viscosity jumps of more than 1000x across the 660 km, ASPECT will still converge now. It should help too with other problems that involve localized viscosity jumps in the domain.
> >
> > To use it add "GMRES solver restart length" to the Solver parameters section in your .prm file. This is the number of iterations that define the GMRES solver restart length. The value used so far as default in ASPECT was 50 (still the default value if you don't change it). Using a value of 200 fixed my problem. You should keep in mind that the higher the value, the slower the simulation will become, because it increases the memory usage of the solver.
> >
> > Thanks to Rene for finding the solution to the problem!
> > Hope it helps those who run into the same issue!
> > Diogo
> > _______________________________________________
> > Aspect-devel mailing list
> > Aspect-devel at geodynamics.org <mailto:Aspect-devel at geodynamics.org>
> > http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel <http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel>
> _______________________________________________
> Aspect-devel mailing list
> Aspect-devel at geodynamics.org <mailto:Aspect-devel at geodynamics.org>
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel <http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel>_______________________________________________
> Aspect-devel mailing list
> Aspect-devel at geodynamics.org
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel
____________________________________________________________
Professor of Geophysics
Earth & Planetary Sciences Dept., UC Davis
Davis, CA 95616
2129 Earth & Physical Sciences Bldg.
Office Phone: (530) 752-4169
http://magalibillen.faculty.ucdavis.edu
Currently on Sabbatical at Munich University (LMU)
Department of Geophysics (PST + 9 hr)
Avoid implicit bias - check before you submit:
http://www.tomforth.co.uk/genderbias/
___________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20180625/6bcf03eb/attachment.html>
More information about the Aspect-devel
mailing list