<div dir="ltr"><div dir="ltr">On Thu, Oct 3, 2019 at 6:34 PM Salazar De Troya, Miguel via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div lang="EN-US">
<div class="gmail-m_4161025182230522211WordSection1">
<p class="MsoNormal"><span style="font-size:11pt">I am trying to solve the Stokes equation with the Brinkman term to simulate a solid material. My intention is to implement the preconditioner in this paper:
<a href="https://onlinelibrary.wiley.com/doi/epdf/10.1002/fld.426section%202.6" target="_blank">https://onlinelibrary.wiley.com/doi/epdf/10.1002/fld.426</a> (section 2.6) </span></p></div></div></blockquote><div><br></div><div>Link does not work for me.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_4161025182230522211WordSection1"><p class="MsoNormal"><span style="font-size:11pt">where they solve for the velocity and substitute that expression in the pressure equation. They end up
solving a system of the type B K^-1 B^T, i.e. the Schur complement of the problem. For this system of equations, they argue that the preconditioner in page 11 is perfect for a given constant Brinkman penalty term.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">Because I am solving for velocity and pressure without doing any substitution, I thought I could use a PC fieldsplit type Schur (full factorization)</span></p></div></div></blockquote><div><br></div><div>Yes, this will form the exact factorization and a matrix-free form of the Schur complement.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_4161025182230522211WordSection1"><p class="MsoNormal"><span style="font-size:11pt"> and provide the preconditioner in the paper to solve the
Schur complement.</span></p></div></div></blockquote><div><br></div><div>Yes, you can provide a user-defined PC for the Schur complement.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_4161025182230522211WordSection1"><p class="MsoNormal"><span style="font-size:11pt"> My question is, should I provide this preconditioner through PCFieldSplitSetSchurPre or through fieldsplit_1_pc_type (probably through the Firedrake interface as in
<a href="https://www.firedrakeproject.org/demos/stokes.py.html" target="_blank">https://www.firedrakeproject.org/demos/stokes.py.html</a>) ?</span></p></div></div></blockquote><div><br></div><div>The name PCFieldSplitSetSchurPre seems to be very misleading. You do not use it to provide a _preconditioner_. You use it to determine<br></div><div>the _preconditioning matrix_ from which the actual preconditioner is built. The preconditioner itself is defined using -fieldpslit_1_pc_type.</div><div>Since I do not know what the preconditioner looks like, I cannot say what preconditioner matrix you would want. Since Firedrake can construct</div><div>any operator for you, you might not care about the matrix we pass to you.</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_4161025182230522211WordSection1">
<p class="MsoNormal"><span style="font-size:11pt">Thanks<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">Miguel<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Consolas;color:black">Miguel A. Salazar de Troya</span><span style="font-size:10.5pt;color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Consolas;color:black">Postdoctoral Researcher, Lawrence Livermore National Laboratory</span><span style="font-size:10.5pt;color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Consolas;color:black">B141</span><span style="font-size:10.5pt;color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Consolas;color:black">Rm: 1085-5</span><span style="font-size:10.5pt;color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Consolas;color:black">Ph: 1(925) 422-6411</span><u></u><u></u></p>
</div>
</div>
</div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>