[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