On Wed, Sep 24, 2014 at 6:21 AM, anton <[email protected]> wrote: > > 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. >
Set the type to MATSHELL and set your apply function. You still should not need to change the pointer, exactly as Barry says above. Matt > Anton > > Barry >> >> Thanks, >>> Anton >>> >> > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
