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.)
signature.asc
Description: PGP signature
