petsc-3.13.6 2020-09-29
Report Typos and Errors

SNESSetUseMatrixFree

indicates that SNES should use matrix free finite difference matrix vector products internally to apply the Jacobian.

Synopsis

#include "petscsnes.h"  
PetscErrorCode  SNESSetUseMatrixFree(SNES snes,PetscBool mf_operator,PetscBool mf)
Collective on SNES

Input Parameters

snes - SNES context
mf_operator - use matrix-free only for the Amat used by SNESSetJacobian(), this means the user provided Pmat will continue to be used
mf - use matrix-free for both the Amat and Pmat used by SNESSetJacobian(), both the Amat and Pmat set in SNESSetJacobian() will be ignored

Options Database

-snes_mf - use matrix free for both the mat and pmat operator
-snes_mf_operator - use matrix free only for the mat operator
-snes_fd_color - compute the Jacobian via coloring and finite differences.
-snes_fd - compute the Jacobian via finite differences (slow)

Notes

SNES supports three approaches for computing (approximate) Jacobians: user provided via SNESSetJacobian(), matrix free, and computing explictly with finite differences and coloring using MatFDColoring. It is also possible to use automatic differentiation and the MatFDColoring object.

See Also

SNESGetUseMatrixFree(), MatCreateSNESMF(), SNESComputeJacobianDefaultColor()

Level

intermediate

Location

src/snes/interface/snes.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages