[CIG-SHORT] petsc convergence

Brad Aagaard baagaard at usgs.gov
Thu Mar 28 08:49:17 PDT 2013


Surendra,

Your tolerances won't work for a friction problem. Because friction 
problems require detecting the onset of slip, you need to force absolute 
convergence (i.e., use very SNES and KSP relative tolerances such as 
1.0e-20). The KSP absolute tolerance should be about 1 order of 
magnitude smaller than the friction zero tolerance (value used to detect 
slip versus roundoff errrors close to zero) and about 2 orders of 
magnitude smaller than the SNES absolute tolerance.

With implicit time stepping, friction involves an inner solve, which has 
its own solver parameters. This solve involves a small number of DOF, so 
ASM should work fine in this inner solve, but it is not the default 
PETSc preconditioner.

See examples/3d/hex8/step14.cfg for details. Note the tolerances in this 
particular example may be much smaller than what you need. I recommend 
experimenting with them to get the largest values that yield accurate 
results for your problem.

Brad

On 3/28/13 6:39 AM, Matthew Knepley wrote:
> On Thu, Mar 28, 2013 at 11:53 AM, <surendra at caltech.edu
> <mailto:surendra at caltech.edu>> wrote:
>
>     Hi Matt,
>
>     I have a 2D plane strain simulation of a plate that isn't
>     converging.  I thought you might know what could be happening.
>
>     Attached are 'false' and 'log' files.  Petsc setting are pasted
>     below.  I ran it on Mac OSX pylith version 1.8.0 binary.
>
>     I usually run dynamic friction problem that do not require
>     (explicit) petsc but this time I need to run a quasi-static problem
>     with implicit.  Any suggestions on what I could try?
>
>     Thanks,
>     Surendra
>
>     --
>
>     [pylithapp.petsc]
>
>     # Preconditioner settings.
>     pc_type = asm
>     sub_pc_factor_shift_type = nonzero
>
>     # Convergence parameters.
>     ksp_rtol = 1.0e-8
>     ksp_atol = 1.0e-12
>     ksp_max_it = 300
>     ksp_gmres_restart = 50
>
>     # Linear solver monitoring options.
>     ksp_monitor = false
>     ksp_view = false
>     ksp_converged_reason = true
>
>     # Nonlinear solver monitoring options.
>     snes_rtol = 1.0e-8
>     snes_atol = 1.0e-12
>     snes_max_it = 100
>     snes_monitor = false
>
>
> This puts the monitor information in the file 'false' which is weird.
> Just leave it true.
>
> ASM is a terrible preconditioner. Use the AMG options we showed in the
> tutorial and
> you will get good convergence.
>
>    Thanks,
>
>       Matt
>
>     snes_view = false
>     snes_converged_reason = true
>
>     # PETSc summary -- useful for performance information.
>     #log_summary = true
>
>     # Uncomment to launch gdb when starting PyLith.
>     # start_in_debugger = true
>
>
>
>
>
>
>
> --
> 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
>
>
> _______________________________________________
> CIG-SHORT mailing list
> CIG-SHORT at geodynamics.org
> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>



More information about the CIG-SHORT mailing list