[petsc-users] Preconditioning Matrix-free SNES, preconditioner update, PCView

Juris Vencels juris.vencels at gmail.com
Wed Apr 1 17:09:28 CDT 2015


On 03/31/2015 08:26 PM, Barry Smith wrote:
>    No, the model is that each time the matrix changes the PCSetUp is called automatically and so is a shell set up if you have provided it, so you need to change your PCShellSetUp() function so that it can be called repeatedly for each new matrix and call
>
>> >call PCShellSetApply(pc,PCShellSetUp,ierr)
> when you create the Shell PC.
>
>    Then make a test run in the debugger to make sure that your setup is being called each time the matrix changes.
>

It works, thank you!

>    Note: also if you are using ILU preconditioning, you do not need to use PCSHELL, you can just use PCSetType(pc,PCILU) or -pc_type ilu.

I am confused about this, I am using matrix-free SNES and Manual Section 
5.5. says:

> The matrix-free variant is allowed only when the linear systems are 
> solved by an it-
> erative method in combination with no preconditioning (PCNONE or 
> -pc_type none), a user-provided
> preconditioner matrix, or a user-provided preconditioner shell 
> (PCSHELL, discussed in Section 4.4); ...

PETSc has function "PCShellSetApply " which sets routine to use as 
preconditioner.
How can I set a routine if I do not use PCSHELL? There is no such 
function as " PCSetApply" anymore.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150401/55673462/attachment.html>


More information about the petsc-users mailing list