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 -
SNES
contextmf_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