[petsc-users] SNESSetJacobian

Matthew Knepley knepley at gmail.com
Wed Sep 24 05:48:15 CDT 2014

On Wed, Sep 24, 2014 at 6:21 AM, anton <popov at uni-mainz.de> wrote:

> On 09/23/2014 06:11 PM, Barry Smith wrote:
>> On Sep 23, 2014, at 9:50 AM, anton <popov at uni-mainz.de> 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.


> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140924/0a32415c/attachment.html>

More information about the petsc-users mailing list