<div dir="ltr">Hello petsc's friends<div><br></div><div>I have a curiosity about a sentence in the user guide about CPR preconditioner:</div><div><i><br></i></div><div><i>"</i><i><span style="color:rgb(50,50,50);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px">The Constrained Pressure Preconditioner (CPR) can be implemented using </span><code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-size:13.125px;border-radius:0.25rem;padding:0.1rem 0.25rem"><span class="gmail-pre" style="box-sizing:border-box"><a href="https://petsc.org/release/manualpages/PC/PCCOMPOSITE/" style="box-sizing:border-box;background-color:transparent;text-decoration-line:none">PCCOMPOSITE</a></span></code><span style="color:rgb(50,50,50);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px"> with </span><code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-size:13.125px;border-radius:0.25rem;padding:0.1rem 0.25rem"><span class="gmail-pre" style="box-sizing:border-box"><a href="https://petsc.org/release/manualpages/PC/PCGALERKIN/" style="box-sizing:border-box;background-color:transparent;text-decoration-line:none">PCGALERKIN</a></span></code><span style="color:rgb(50,50,50);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px">. CPR first solves an </span></i></div><div><i><span class="gmail-math" style="box-sizing:border-box;display:inline-flex;max-width:100%;overflow:hidden;color:rgb(50,50,50);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px"><span style="box-sizing:border-box"><span class="gmail-katex" style="box-sizing:border-box;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:1.21em;line-height:1.2;font-family:KaTeX_Main,"Times New Roman",serif"><span class="gmail-katex-mathml" style="box-sizing:border-box;border:0px;height:1px;overflow:hidden;padding:0px;width:1px"></span><span class="gmail-katex-html" aria-hidden="true" style="box-sizing:border-box;border-color:currentcolor"><span class="gmail-base" style="box-sizing:border-box;border-color:currentcolor;width:min-content;display:inline-block"><span class="gmail-strut" style="box-sizing:border-box;border-color:currentcolor;display:inline-block;height:0.6833em"></span><span class="gmail-mord gmail-mathnormal" style="box-sizing:border-box;border-color:currentcolor;font-family:KaTeX_Math;margin-right:0.0077em">R</span><span class="gmail-mord gmail-mathnormal" style="box-sizing:border-box;border-color:currentcolor;font-family:KaTeX_Math">A</span><span class="gmail-mord gmail-mathnormal" style="box-sizing:border-box;border-color:currentcolor;font-family:KaTeX_Math;margin-right:0.1389em">P</span></span></span></span></span></span><span style="color:rgb(50,50,50);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px"> subsystem, updates the residual on all variables (</span><code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-size:13.125px;border-radius:0.25rem;padding:0.1rem 0.25rem"><span class="gmail-pre" style="box-sizing:border-box"><a href="https://petsc.org/release/manualpages/PC/PCCompositeSetType/" style="box-sizing:border-box;background-color:transparent;text-decoration-line:none">PCCompositeSetType</a>(pc,<a href="https://petsc.org/release/manualpages/PC/PCCompositeType/" style="box-sizing:border-box;background-color:transparent;text-decoration-line:none">PC_COMPOSITE_MULTIPLICATIVE</a>)</span></code><span style="color:rgb(50,50,50);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px">), and then applies a simple ILU like preconditioner on all the variables.</span></i><i style="color:rgb(50,50,50);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px">"</i></div><div><br></div><div>I am certainly lacking some background here, would you be able to explain me a bit better how this is working? Do you have a minimal working example in the tutorials? </div><div><br></div><div>Many thanks as always! :) </div></div>