[aspect-devel] New feature that helps with convergence issues due to viscosity jumps
Diogo Louro Lourenco
dlourenco at ucdavis.edu
Sun Jun 24 22:02:14 PDT 2018
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> 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>
> 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
> > 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20180624/7ff5c921/attachment.html>
More information about the Aspect-devel
mailing list