Barry Smith <[email protected]> writes:

>> On Apr 3, 2017, at 8:51 AM, Jed Brown <[email protected]> wrote:
>> 
>> Barry Smith <[email protected]> writes:
>> 
>>>   Jed,
>>> 
>>>    Here is the problem. 
>>> 
>>> https://bitbucket.org/petsc/petsc/branch/barry/fix/even-huger-flaw-in-ts
>> 
>> Hmm, when someone uses -snes_mf_operator, we really just need
>> SNESTSFormJacobian to ignore the Amat.  However, the user is allowed to
>> create a MatMFFD and have their TSRHSJacobian function use MatMFFD on
>> their RHSFunction.  That might even be more accurate, but would require
>> the shift/scale.  But I'm not aware of any way in which TS can
>> distinguish these cases.
>
>    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.

>
>
>
>
>> 
>> 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.)

Attachment: signature.asc
Description: PGP signature

Reply via email to