<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 29, 2021, at 11:59 AM, Marco Cisternino <<a href="mailto:marco.cisternino@optimad.it" class="">marco.cisternino@optimad.it</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)" class="">
<style class=""><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->

<div lang="IT" link="blue" vlink="purple" style="word-wrap:break-word" class="">
<div class="WordSection1"><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">For sake of completeness, explicitly building the null space using a vector per sub-domain make s the CFD runs using BCGS and GMRES more stable, but still slower than FGMRES.<br class=""></span></p></div></div></div></blockquote><div><br class=""></div>  Something is strange. Please run with -ksp_view and send the output on the solver details.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div lang="IT" link="blue" vlink="purple" style="word-wrap:break-word" class=""><div class="WordSection1"><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">
I had divergence using BCGS and GMRES setting the null space with only one constant.<o:p class=""></o:p></span></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">Thanks<o:p class=""></o:p></span></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class=""><o:p class=""> </o:p></span></p>
<div class=""><p class="MsoNormal">Marco Cisternino <o:p class=""></o:p></p>
</div><p class="MsoNormal"><span style="mso-fareast-language:EN-US" class=""><o:p class=""> </o:p></span></p>
<div class="">
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm" class=""><p class="MsoNormal"><b class=""><span lang="EN-US" class="">From:</span></b><span lang="EN-US" class=""> Marco Cisternino
<br class="">
<b class="">Sent:</b> mercoledì 29 settembre 2021 17:54<br class="">
<b class="">To:</b> Barry Smith <<a href="mailto:bsmith@petsc.dev" class="">bsmith@petsc.dev</a>><br class="">
<b class="">Cc:</b> <a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a><br class="">
<b class="">Subject:</b> RE: [petsc-users] Disconnected domains and Poisson equation<o:p class=""></o:p></span></p>
</div>
</div><p class="MsoNormal"><o:p class=""> </o:p></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">Thank you Barry for the quick reply.<o:p class=""></o:p></span></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">About the null space: I already tried what you suggest, building 2 Vec (constants) with 0 and 1 chosen by sub-domain, normalizing them and setting the null space like this<o:p class=""></o:p></span></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_FALSE,nconstants,constants,&nullspace);<o:p class=""></o:p></span></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">The solution is slightly different in values but it is still different in the two sub-domains.<o:p class=""></o:p></span></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class="">About the solver: I tried BCGS, GMRES and FGMRES. The linear system is a pressure system in a navier-stokes solver and only solving with FGMRES makes the CFD stable, with BCGS and GMRES
 the CFD solution diverges. Moreover, in the same case but with a single domain, CFD solution is stable using all the solvers, but FGMRES converges in much less iterations than the others.<o:p class=""></o:p></span></p><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class=""><o:p class=""> </o:p></span></p>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">Marco Cisternino <o:p class=""></o:p></span></p>
</div><p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US" class=""><o:p class=""> </o:p></span></p>
<div class="">
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm" class=""><p class="MsoNormal"><b class=""><span lang="EN-US" class="">From:</span></b><span lang="EN-US" class=""> Barry Smith <<a href="mailto:bsmith@petsc.dev" class="">bsmith@petsc.dev</a>>
<br class="">
<b class="">Sent:</b> mercoledì 29 settembre 2021 15:59<br class="">
<b class="">To:</b> Marco Cisternino <<a href="mailto:marco.cisternino@optimad.it" class="">marco.cisternino@optimad.it</a>><br class="">
<b class="">Cc:</b> <a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a><br class="">
<b class="">Subject:</b> Re: [petsc-users] Disconnected domains and Poisson equation<o:p class=""></o:p></span></p>
</div>
</div><p class="MsoNormal"><o:p class=""> </o:p></p>
<div class=""><p class="MsoNormal"><o:p class=""> </o:p></p>
</div><p class="MsoNormal">  The problem actually has a two dimensional null space; constant on each domain but possibly different constants. I think you need to build the MatNullSpace by explicitly constructing two vectors, one with 0 on one domain and constant
 value on the other and one with 0 on the other domain and constant on the first. <o:p class=""></o:p></p>
<div class=""><p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class=""><p class="MsoNormal">   Separate note: why use FGMRES instead of just GMRES? If the problem is linear and the preconditioner is linear (no GMRES inside the smoother) then you can just use GMRES and it will save a little space/work and be conceptually clearer.<o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class=""><p class="MsoNormal">  Barry<o:p class=""></o:p></p>
<div class=""><p class="MsoNormal" style="margin-bottom:12.0pt"><o:p class=""> </o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class="">
<div class=""><p class="MsoNormal">On Sep 29, 2021, at 8:46 AM, Marco Cisternino <<a href="mailto:marco.cisternino@optimad.it" class="">marco.cisternino@optimad.it</a>> wrote:<o:p class=""></o:p></p>
</div><p class="MsoNormal"><o:p class=""> </o:p></p>
<div class="">
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">Good morning,</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">I want to solve the Poisson equation on a 3D domain with 2 non-connected sub-domains.</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">I am using FGMRES+GAMG and I have no problem if the two sub-domains see a Dirichlet boundary condition each.</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">On the same domain I would like to solve the Poisson equation imposing periodic boundary condition in one direction and homogenous Neumann boundary conditions in the other two directions. The two sub-domains are symmetric
 with respect to the separation between them and the operator discretization and the right hand side are symmetric as well. It would be nice to have the same solution in both the sub-domains.</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">Setting the null space to the constant, the solver converges to a solution having the same gradients in both sub-domains but different values.</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">Am I doing some wrong with the null space? I’m not setting a block matrix (one block for each sub-domain), should I?</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">I tested the null space against the matrix using MatNullSpaceTest and the answer is true. Can I do something more to have a symmetric solution as outcome of the solver?</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">Thank you in advance for any comments and hints.</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class=""> </span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">Best regards,</span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class=""> </span><o:p class=""></o:p></p>
</div>
<div class=""><p class="MsoNormal"><span lang="EN-GB" class="">Marco Cisternino</span><o:p class=""></o:p></p>
</div>
</div>
</blockquote>
</div><p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
</div>
</div>

</div></blockquote></div><br class=""></body></html>