Nonlinear solvers - SNES: Examples

The Scalable Nonlinear Equations Solvers (SNES) component provides an easy-to-use interface to Newton-based methods for solving systems of nonlinear equations. SNES users can set various algorithmic options at runtime via the options database (e.g., specifying a trust region method via -snes_type tr ). SNES internally employs KSP for the solution of its linear systems. SNES users can also set KSP options directly in application codes by first extracting the KSP context from the SNES context via SNESGetKSP() and then directly calling various KSP (and KSP and PC) routines (e.g., PCSetType() ).

Beginner - Basic usage
SNES SNESSetFromOptions SNES_CONVERGED_FNORM_RELATIVE
SNESConvergedReason SNESSetFunction SNES_CONVERGED_PNORM_RELATIVE
SNESCreate SNESSetJacobian SNES_DIVERGED_FNORM_NAN
SNESDefaultRhsBC SNESSolve SNES_DIVERGED_FUNCTION_COUNT
SNESDefaultSolutionBC SNESType SNES_DIVERGED_LOCAL_MIN
SNESDestroy SNESView SNES_DIVERGED_LS_FAILURE
SNESGetKSP SNES_CONERGED_ITERATING SNES_DIVERGED_MAX_IT
SNESLS SNES_CONVERGED_FNORM_ABS
Intermediate - Setting options for algorithms and data structures
DMMGSetSNESLocal SNESGetFunctionNorm SNESSetMonitor
SNESClearMonitor SNESGetIterationNumber SNESSetRatioMonitor
SNESConverged_LS SNESGetLineSearchParams SNESSetRhs
SNESConverged_TR SNESGetMaximumUnsuccessfulSteps SNESSetRhsBC
SNESDAComputeJacobianWithAdic SNESGetNumberLinearIterations SNESSetSolutionBC
SNESDAFormFunction SNESGetNumberUnsuccessfulSteps SNESSetTolerances
SNESDefaultComputeJacobian SNESGetTolerances SNESSetTrustRegionTolerance
SNESDefaultComputeJacobianColor SNESGetType SNESSetType
SNESDefaultMonitor SNESRatioMonitor SNESSetUpdate
SNESDefaultUpdate SNESSetApplicationContext SNESTR
SNESGetApplicationContext SNESSetConvergenceHistory SNESVecViewMonitor
SNESGetConvergedReason SNESSetLineSearchParams SNESVecViewResidualMonitor
SNESGetConvergenceHistory SNESSetMaximumUnsuccessfulSteps SNESVecViewUpdateMonitor
Advanced - Setting more advanced options and customization
DMMGSetSNES SNESGetSolutionUpdate SNESRegisterDynamic
SNESAppendOptionsPrefix SNESMatrixFreeMatCreate2 SNESSetConvergenceTest
SNESCubicLineSearch SNESNoLineSearch SNESSetLineSearch
SNESDefaultMatrixFreeSetParameters2 SNESNoLineSearchNoNorms SNESSetLineSearchCheck
SNESGetFunction SNESQuadraticLineSearch SNESSetOptionsPrefix
SNESGetJacobian SNESRegister SNESSetUp
SNESGetOptionsPrefix SNESRegisterAll SNES_KSP_SetConvergenceTestEW
SNESGetSolution SNESRegisterDestroy SNES_KSP_SetParametersEW
Developer - Interfaces intended primarily for library developers, not for typical applications programmers
MatSNESMFRegisterDynamic SNESComputeFunction SNESInitializePackage
SNESAddOptionsChecker SNESComputeJacobian

Table of Contents