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, 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()
Level#
intermediate
Location#
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages