[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