[petsc-users] Questions on CPR preconditioner

Matthew Knepley knepley at gmail.com
Sun Jun 25 08:25:08 CDT 2023


On Sun, Jun 25, 2023 at 9:21 AM Edoardo alinovi <edoardo.alinovi at gmail.com>
wrote:

> Hello petsc's friends
>
> I have a curiosity about a sentence in the user guide about CPR
> preconditioner:
>
> *"**The Constrained Pressure Preconditioner (CPR) can be implemented
> using PCCOMPOSITE
> <https://petsc.org/release/manualpages/PC/PCCOMPOSITE/> with PCGALERKIN
> <https://petsc.org/release/manualpages/PC/PCGALERKIN/>. CPR first solves
> an *
> *RAP subsystem, updates the residual on all variables (PCCompositeSetType
> <https://petsc.org/release/manualpages/PC/PCCompositeSetType/>(pc,PC_COMPOSITE_MULTIPLICATIVE
> <https://petsc.org/release/manualpages/PC/PCCompositeType/>)), and then
> applies a simple ILU like preconditioner on all the variables.**"*
>
> I am certainly lacking some background here, would you be able to
> explain me a bit better how this is working?
>

First, you select out some (linear combination of a) subset of the
unknowns, this is the action of R. Then you solve that system and
projection the results back to the full space (solve RAP). After that, you
use
a simple ILU on the whole system, presumably because after that a
diagonal-like PC is good.


> Do you have a minimal working example in the tutorials?
>

I do not know. I think Barry implemented this.

  Thanks,

     Matt


> Many thanks as always! :)
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230625/58efc1cd/attachment.html>


More information about the petsc-users mailing list