SNESSetUseMatrixFree#
indicates that SNES should use matrix-free finite difference matrix-vector products to apply the Jacobian.
Synopsis#
#include "petscsnes.h"
PetscErrorCode SNESSetUseMatrixFree(SNES snes, PetscBool mf_operator, PetscBool mf)
Logically Collective
Input Parameters#
snes -
SNEScontextmf_operator - use matrix-free only for the Amat used by
SNESSetJacobian(), this means the user provided Pmat will continue to be usedmf - use matrix-free for both the Amat and Pmat used by
SNESSetJacobian(), both the Amat and Pmat set inSNESSetJacobian()will be ignored. With this option no matrix-element based preconditioners can be used in the linear solve since the matrix won’t be explicitly available
Options Database Keys#
-snes_mf_operator - use matrix-free only for the mat operator
-snes_mf - use matrix-free for both the mat and pmat operator
-snes_fd_color - compute the Jacobian via coloring and finite differences.
-snes_fd - compute the Jacobian via finite differences (slow)
Note#
SNES supports three approaches for computing (approximate) Jacobians: user provided via SNESSetJacobian(), matrix-free using MatCreateSNESMF(),
and computing explicitly with
finite differences and coloring using MatFDColoring. It is also possible to use automatic differentiation and the MatFDColoring object.
See Also#
SNES: Nonlinear Solvers, SNES, SNESGetUseMatrixFree(), MatCreateSNESMF(), SNESComputeJacobianDefaultColor(), MatFDColoring
Level#
intermediate
Location#
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages