Run with -info ; it prints lots of stuff but you can grep for PCSetUp  and 
you'll see a message such as 

Setting up PC for first time

Leaving PC with identical preconditioner since operator is unchanged

Setting up PC with different nonzero pattern\n");CHKERRQ(ierr);

Setting up PC with same nonzero pattern

or 

Leaving PC with identical preconditioner since reuse preconditioner is set



> On Jul 9, 2015, at 2:45 PM, Michele Rosso <[email protected]> wrote:
> 
> Barry,
> 
> thanks you for your help.
> Is there a database options that allows me to check weather PC has been 
> recomputed or kept the same?
> 
> Thanks,
> Michele 
> 
> 
> On Thu, 2015-07-09 at 14:43 -0500, Barry Smith wrote:
>>    By default in the last two PETSc releases KSP automatically updates the 
>> preconditioner whenever the matrix you set with KSPSetOperators() has been 
>> changed. That is you have to do nothing and PETSc will recompute the 
>> preconditioner as needed. If you wish to keep the same preconditioner even 
>> though the matrix has changed then you can use 
>> KSPSetReusePreconditioner(ksp,PETSC_TRUE) and it will keep using the same 
>> preconditioner until you call KSPSetReusePreconditioner(ksp,PETSC_FALSE) 
>> which will switch back to the default mode.
>> 
>>   You only need to destroy the KSP or call KSPReset() when you change the 
>> size of the vectors or matrices.
>> 
>>   Barry
>> 
>> 
>> > On Jul 9, 2015, at 12:20 PM, Michele Rosso <[email protected]> wrote:
>> > 
>> > Hi,
>> > 
>> > I need to recompute the preconditioner every once in a while. So far I do 
>> > this "manually", i.e. I destroy ksp and re-create and reset it whenever 
>> > needed. 
>> > I am wondering if there is a cleaner way of doing this via a PETSc 
>> > function. I found KSPreset but there are no examples about it so I am not 
>> > sure it is what I am looking for.
>> > Could you help please?
>> > 
>> > 
>> > Thanks,
>> > Michele
>> 
>> 
>> 
> 

Reply via email to