#include "petscsnes.h" PetscErrorCode SNESDefaultMatrixFreeCreate2(SNES snes,Vec x,Mat *J)
J(u)*a = [J(u+h*a) - J(u)]/h,
where by default
h = error_rel*u'a/||a||^2 if |u'a| > umin*||a||_{1}
= error_rel*umin*sign(u'a)*||a||_{1}/||a||^2 otherwise
where
error_rel = square root of relative error in
function evaluation
umin = minimum iterate parameter
Alternatively, the differencing parameter, h, can be set using
Jorge's nifty new strategy if one specifies the option
-snes_mf_jorge
The user can set these parameters via MatMFFDSetFunctionError(). See Users-Manual: ch_snes for details
The user should call MatDestroy() when finished with the matrix-free matrix context.
-snes_mf_err <error_rel>
-snes_mf_unim <umin>
-snes_mf_compute_err
-snes_mf_freq_err <freq>
-snes_mf_jorge