[CIG-SHORT] Linear Convergence Using SNES
Matthew Knepley
knepley at mcs.anl.gov
Tue Sep 18 11:55:26 PDT 2012
On Tue, Sep 18, 2012 at 1:30 PM, Jeffrey Thompson <jeffremt at caltech.edu>wrote:
> Hi Cig-Short,
>
> I'm having an issue where I'm only able to achieve a slow rate of linear
> convergence using the nonlinear solver, resulting in prohibitively long run
> times. I've attached a tarball with the relevant configuration, mesh, and
> spatialdb files to run my problem.
>
> The gist of the problem I'm trying run is an extension of the dyke-opening
> example in the manual, with a horizontal opening under the action of a
> constant pressure (normal traction) distribution between a viscoelastic and
> elastic layer. This is a two dimensional model. I'm using the following
> preconditioner scheme to insure rapid convergence of the linear solver (1-2
> iterations):
>
> [pylithapp.petsc]
> ksp_rtol = 1.0e-15
> pc_type = lu
> sub_pc_factor_shift_positive_definite = 0
> sub_pc_factor_shift_nonzero =
>
> fs_pc_type = fieldsplit
> fs_pc_fieldsplit_real_diagonal = true
> fs_pc_fieldsplit_type = schur
> fs_pc_fieldsplit_schur_factorization_type = full
>
> fs_fieldsplit_0_pc_type = lu
> fs_fieldsplit_0_ksp_type = preonly
> fs_fieldsplit_1_pc_type = jacobi
> fs_fieldsplit_1_ksp_type = gmres
> fs_fieldsplit_1_ksp_rtol = 1.0e-15
> fs_fieldsplit_2_pc_type = jacobi
> fs_fieldsplit_2_ksp_type = gmres
> fs_fieldsplit_2_ksp_rtol = 1.0e-15
> fs_fieldsplit_3_pc_type = jacobi
> fs_fieldsplit_3_ksp_type = gmres
> fs_fieldsplit_3_ksp_rtol = 1.0e-15
>
> log_summary = true
> ksp_max_it = 100
> ksp_gmres_restart = 50
> ksp_converged_reason = true
>
> snes_ls_monitor = true
> snes_rtol = 1.0e-8
> snes_atol = 1.0e-7
> snes_max_it = 10000
> snes_monitor = true
> snes_converged_reason = true
>
> However, as I mentioned earlier, the SNES residual only drops linearly
> with the default solving scheme past the first SNES iteration. I've tried
> using different
If you run it all the way to completion and never see superlinearity, this
usually means the Jacobian is singular at the solution.
> PETSc options for SNES, but none of the scheme I've tried had better
> results (and many were worse or never converged). To summarize these
> attempts:
> NGMRES: did not converge (residual remained constant)
> NCG: Tried the 5 different flavours, all either diverged or never
> converged (bounced between a few residuals)
> other LINESEARCH options: none were as good as the default behavior
>
This is not surprising. They are intended to be used in conjunction with
Newton. Alone they tend to be worse.
> I've also tried different non-dimensionalization options and found a set
> that gives the optimal initial residual (i.e., the lowest value of SNES
> residual number 0). It seems like for this problem, only the
> nondimensional length-scale directly impacts the SNES residual.
>
> The result of all of this is that I currently need around 800-1000
> non-linear iterations to converge on a single time-step at best. I have a
> feeling that I must be doing something wrong, but I can't tell if this is a
> solver issue or some other type of problem (bad mesh, poorly defined
> boundary conditions, etc). Any advice would be appreciated!
>
I will run the problem myself.
Matt
>
> Thanks for the help!
> Jeff Thompson
> Caltech Seismolab
>
>
>
> _______________________________________________
> CIG-SHORT mailing list
> CIG-SHORT at geodynamics.org
> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://geodynamics.org/pipermail/cig-short/attachments/20120918/4cf842b0/attachment.htm
More information about the CIG-SHORT
mailing list