[aspect-devel] Problem: Iterative advection solver does not converge

John Naliboff jbnaliboff at ucdavis.edu
Mon Jun 6 13:46:43 PDT 2016


Hi Felipe,

In general, it is best not to ‘force’ a solution to converge by decreasing the solver tolerances significantly. 

Personally, I never decrease the Linear solver tolerance below 1e-7 … I have used values between 1e-7 and 1e-9.

The nonlinear solver tolerance is a bit more tricky if you using highly non-linear constitutive relationships (i.e. strain-rate dependent viscosity, plasticity, etc).  In reproducing some published shear band (plasticity) models, I can only get the non-linear residual to converge down to 1e-5 or 1e-6 six if I’m lucky.

In general, convergence behavior may vary significantly from problem to problem.  If you are using a highly non-linear material model, you will need to try varying the convergence parameters to ensure your key findings are not highly dependent on these values (they may well be).

Does this help? 

Cheers,
John

*************************************************
Assistant Project Scientist, CIG
Earth & Planetary Sciences Dept., UC Davis





> On Jun 6, 2016, at 1:25 PM, FELIPE ORELLANA ROVIROSA <f_orellana at berkeley.edu> wrote:
> 
> 
>   Hi guys, 
> 
>    I still have a quick question:
> 
>    In your experience, what should be the typical values for the solver parameters
> 
>      Linear solver tolerance             ..not far from the default 1e-7 ?
> 
>      Max nonlinear iterations            (I have used 10,20, 100)?
> 
> Felipe
> 
> On Mon, Jun 6, 2016 at 1:11 PM, Wolfgang Bangerth <bangerth at tamu.edu <mailto:bangerth at tamu.edu>> wrote:
> 
> However, I think the definition of the residual may be a bit different than
> what I’m used to:
> r = || v_i - v_i-1  ||  / || v_i  ||
> where v_i is the current velocities and v_i-1 are the previous values.
> 
> The "residual" (literally: "what is left") in iterative solver methods is typically the quantity
>   r_i = A x_i - b
> (or the norm of this vector), where x_i is the solution vector in the i-th iteration. It can be "large" because it carries physical units. As a consequence, its numerical size is meaningless unless compared to, say, the norm of the right hand side itself.
> 
> For example, we typically terminate iterative solver if the condition
>   || r_i ||    <=    10^-6  || b ||
> is satisfied. What is relevant is not whether the numeric value on the left is large or small, but whether it is large or small compared to ||b||.
> 
> Does that help?
> Cheers
>  W.
> 
> 
> -- 
> ------------------------------------------------------------------------
> Wolfgang Bangerth               email:            bangerth at math.tamu.edu <mailto:bangerth at math.tamu.edu>
>                                 www: http://www.math.tamu.edu/~bangerth/ <http://www.math.tamu.edu/~bangerth/>
> 
> _______________________________________________
> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20160606/1cb6f98d/attachment-0001.html>


More information about the Aspect-devel mailing list