petsc-master 2017-01-16
Report Typos and Errors


Either calls the user-provided solution routine provided with SNESSetNGS() or does a finite difference secant approximation using coloring.

Options Database

-snes_ngs_sweeps - Number of sweeps of GS to apply
-snes_ngs_atol - Absolute residual tolerance for GS iteration
-snes_ngs_rtol - Relative residual tolerance for GS iteration
-snes_ngs_stol - Absolute update tolerance for GS iteration
-snes_ngs_max_it - Maximum number of sweeps of GS to apply
-snes_ngs_secant - Use pointwise secant local Jacobian approximation with coloring instead of user provided Gauss-Seidel routine, this is used by default if no user provided Gauss-Seidel routine is available. Requires either that a DM that can compute a coloring is available or a Jacobian sparse matrix is provided (from which to get the coloring).
-snes_ngs_secant_h - Differencing parameter for secant approximation
-snes_ngs_secant_mat_coloring - Use the graph coloring of the Jacobian for the secant GS even if a DM is available.


the Gauss-Seidel smoother is inherited through composition. If a solver has been created with SNESGetPC(), it will have its parent's Gauss-Seidel routine associated with it.


1. -Peter R. Brune, Matthew G. Knepley, Barry F. Smith, and Xuemin Tu, "Composing Scalable Nonlinear Algebraic Solvers", SIAM Review, 57(4), 2015

See Also

SNESCreate(), SNES, SNESSetType(), SNESSetNGS(), SNESType (for list of available types), SNESNGSSetSweeps(), SNESNGSSetTolerances()

Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages