[petsc-users] -snes_mf_operator yields "No support for this operation for this object type" in TS codes?
Barry Smith
bsmith at mcs.anl.gov
Mon Apr 3 16:26:53 CDT 2017
> On Apr 3, 2017, at 10:05 AM, Jed Brown <jed at jedbrown.org> wrote:
>
> Barry Smith <bsmith at mcs.anl.gov> writes:
>
>>
>> SNESGetUsingInternalMatMFFD(snes,&flg); Then you can get rid of the horrible
>>
>> PetscBool flg;
>> ierr = PetscObjectTypeCompare((PetscObject)A,MATMFFD,&flg);CHKERRQ(ierr);
>>
>> I had to add in two places. Still ugly but I think less buggy.
>
> Yeah, there are also MATMFFD checks in SNESComputeJacobian.
These are different in that, I think, the same code needs to be used regardless of whether the user
just used -snes_mf[*] or the user provided a matrix free matrix directly to the TS or SNES. So I don't think
these can be changed to call SNESGetUsingInternalMatMFFD().
>
>
>>
>>
>>
>>
>>>
>>> What if SNESComputeJacobian was aware of -snes_mf_operator and just
>>> passed Pmat in both slots? Or does the user sometimes need access to
>>> the MatMFFD created by -snes_mf_operator? (Seems like possibly, e.g.,
>>> to adjust differencing parameters.)
More information about the petsc-users
mailing list