On 09/23/2014 06:11 PM, Barry Smith wrote:
On Sep 23, 2014, at 9:50 AM, anton <[email protected]> wrote:
Starting from version 3.5 the matrix parameters in SNESSetJacobian are no
longer pointers, hence my question:
What is the most appropriate place to call SNESSetJacobian if I need to change
the Jacobian during solution?
What about FormFunction?
Could you please explain why you need to change the Mat? Our hope was that
people would not need to change it. Note that you can change the type of a
matrix at any time. So for example inside your FormJacobian you can have code
like MatSetType(J,MATAIJ) this wipes out the old matrix data structure and
gives you an empty matrix of the new type ready to be preallocated and then
filled. Let us know what you need.
How should a user switch from assembled to a matrix-free Jacobian (for
example) within one run? Simplest is resetting SNES altogether, I guess.
Anton
Barry
Thanks,
Anton