| #
bbc1464c
|
| 07-May-2021 |
Barry Smith <bsmith@mcs.anl.gov> |
Add support for using -snes_mf_operator with SNESSetPicard()
Applies Newton's method using matrix-free application of the true Jacobian, preconditioned by user provided Picard matrix
This involved
Add support for using -snes_mf_operator with SNESSetPicard()
Applies Newton's method using matrix-free application of the true Jacobian, preconditioned by user provided Picard matrix
This involved adding (*computemffunction)(SNES,Vec,Vec,void*); to be used by the MatCreateSNESMF() operator when it is set and routines to work with the new function.
The implementation requires maintaining a copy of the matrix that is filled by the users routine that computes the matrix at each matrix-vector product. The original matrix is used for constructing the preconditioner and therefor cannot be overwritten.
Also dropped the requirement that the user provide a right hand side function to SNESSetPicard()
Commit-type: feature, example /spend 8h Thanks-to: Saransh Saxena <saransh.saxena5571@gmail.com>
show more ...
|