<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br><div><blockquote type="cite"><div>On 13 May 2025, at 5:40 PM, Jed Brown <jed@jedbrown.org> wrote:</div><br class="Apple-interchange-newline"><div><meta charset="UTF-8"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">The preconditioned norm has units of state (like velocity and pressure) while the residual norm has units of residual. Note that both of these are dimensionally-inconsistent (they depend on the units/nondimensionalization you have chosen), and their relative scale also depends on units/nondimensionalization. So merely being "larger" doesn't mean the preconditioner isn't working. You'd need to assess whether the spectrum is better (of which, number of iterations to converge is a convenient surrogate and the thing you care about anyway).</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">I would caution not to infer too much from Stokes if your interest is turbulence. The time step size is important for turbulence and diffusion is only of the same scale as advection. For Stokes, one doesn't normally use PCD because the inverse-viscosity weighted mass matrix is a spectrally equivalent preconditioner (and simpler than PCD).</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"></div></blockquote><div><br></div><div>That being said, if you have something closer to your target discretization/geometry that you’d be willing to share, some of us (or at the very least, me) would be happy to have a look.</div><div>I understand you may not want to share either of these publicly if this is part of a closed-source topology optimization framework, in which case you can send stuff at <a href="mailto:petsc-maint@mcs.anl.gov">petsc-maint@mcs.anl.gov</a></div><div><br></div><div>Thanks,</div><div>Pierre</div><div><br></div><div>PS: I’ve tried some of my stuff on your problem (either monolithically or as part of PCFIELDSPLIT), they trivially solve it (even with a slightly refined geometry, notice the number of unknowns), but they have a high setup cost, and I can’t guarantee they’ll work for your final problem, as Jed mentioned.</div><div><div>DOFs: 2137103</div><div>    Residual norms for firedrake_0_ solve.</div><div>    0 KSP unpreconditioned resid norm 4.898001545440e-03 true resid norm 4.898001545440e-03 ||r(i)||/||b|| 1.000000000000e+00</div><div>    1 KSP unpreconditioned resid norm 4.897530535125e-03 true resid norm 4.897530535125e-03 ||r(i)||/||b|| 9.999038362258e-01</div><div>    2 KSP unpreconditioned resid norm 4.895485358665e-03 true resid norm 4.895485358665e-03 ||r(i)||/||b|| 9.994862829765e-01</div><div>    3 KSP unpreconditioned resid norm 4.892258200545e-03 true resid norm 4.892258200545e-03 ||r(i)||/||b|| 9.988274105589e-01</div><div>    4 KSP unpreconditioned resid norm 4.832684872769e-03 true resid norm 4.832684872769e-03 ||r(i)||/||b|| 9.866646279988e-01</div><div>    5 KSP unpreconditioned resid norm 3.484018420031e-03 true resid norm 3.484018420031e-03 ||r(i)||/||b|| 7.113142753650e-01</div><div>    6 KSP unpreconditioned resid norm 1.317379071184e-03 true resid norm 1.317379071184e-03 ||r(i)||/||b|| 2.689625674803e-01</div><div>    7 KSP unpreconditioned resid norm 2.393153081654e-04 true resid norm 2.393153081654e-04 ||r(i)||/||b|| 4.885978616895e-02</div><div>    8 KSP unpreconditioned resid norm 4.276785206897e-05 true resid norm 4.276785206898e-05 ||r(i)||/||b|| 8.731694278210e-03</div><div>    9 KSP unpreconditioned resid norm 7.000151646440e-06 true resid norm 7.000151646437e-06 ||r(i)||/||b|| 1.429185266990e-03</div><div>   10 KSP unpreconditioned resid norm 1.407327852370e-06 true resid norm 1.407327852358e-06 ||r(i)||/||b|| 2.873269514723e-04</div><div>   11 KSP unpreconditioned resid norm 2.223672507944e-07 true resid norm 2.223672507690e-07 ||r(i)||/||b|| 4.539958771063e-05</div><div>   12 KSP unpreconditioned resid norm 4.643025030927e-08 true resid norm 4.643025033995e-08 ||r(i)||/||b|| 9.479427458160e-06</div><div>   13 KSP unpreconditioned resid norm 9.835866346159e-09 true resid norm 9.835866346336e-09 ||r(i)||/||b|| 2.008138677599e-06</div><div>   14 KSP unpreconditioned resid norm 1.658715911665e-09 true resid norm 1.658715908692e-09 ||r(i)||/||b|| 3.386515690745e-07</div><div>   15 KSP unpreconditioned resid norm 3.674829203051e-10 true resid norm 3.674829226619e-10 ||r(i)||/||b|| 7.502711447776e-08</div><div>   16 KSP unpreconditioned resid norm 6.299503951584e-11 true resid norm 6.299505159177e-11 ||r(i)||/||b|| 1.286137846372e-08</div><div>   17 KSP unpreconditioned resid norm 1.078827517736e-11 true resid norm 1.078831394356e-11 ||r(i)||/||b|| 2.202595046872e-09</div><div>KSP final norm of residual 1.07883e-11</div></div><br><blockquote type="cite"><div><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Hardik Kothari <</span><a href="mailto:hardik.kothari@corintis.com" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">hardik.kothari@corintis.com</a><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">> writes:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">Dear Pierre, Dear PETSc team,<br><br>Thank you for your response.<br><br>In terms of geometry, we are moving toward more complex domains with more refined meshes that include multiple thin channels. We have been experimenting with the Stokes problem as a simplified case, but our main goal is to solve the high-Reynolds-number Navier–Stokes equations in these settings.<br><br>We are currently planning to utilize a multi-node CPU architecture.<br><br>For the Navier–Stokes system, we have experimented with both pressure-convection diffusion (PCD) and LSC preconditioners. In the thin channels, the PDC struggles to converge, and the LSC preconditioner is computationally slow, but it does converge eventually. Also, for both of these preconditioners for the thin channels, the norm of the preconditioned residual is much higher than the true residual norm, which likely indicates that neither preconditioner provides a sufficiently accurate approximation of the Schur complement.<br><br>I would appreciate any insights you may have for better preconditioning strategies.<br><br>Best regards,<br>Hardik<br><br><br><br>HARDIK KOTHARI<br><br><a href="mailto:hardik.kothari@corintis.com">hardik.kothari@corintis.com</a><<a href="mailto:hardik.kothari@corintis.com">mailto:hardik.kothari@corintis.com</a>><br><br>Corintis SA<br>EPFL Innovation Park Building C<br>1015 Lausanne<br><br><br><br>[<a href="https://urldefense.us/v3/__https://storcor.s3.eu-central-1.amazonaws.com/logos/Logo-black.png__;!!G_uCfscf7eWS!ZkgL3p_ykjNhChJT714e-SsEGf_se8P03ZonnBbsSYm4XLTWR5khwNuHfc88CuP0c57UyPwjOWYcyMKkTLcXKGkCewbGGmUO$">https://urldefense.us/v3/__https://storcor.s3.eu-central-1.amazonaws.com/logos/Logo-black.png__;!!G_uCfscf7eWS!ZkgL3p_ykjNhChJT714e-SsEGf_se8P03ZonnBbsSYm4XLTWR5khwNuHfc88CuP0c57UyPwjOWYcyMKkTLcXKGkCewbGGmUO$</a><span class="Apple-converted-space"> </span>]<br>Here at Corintis we care for your privacy. That is why we have taken appropriate measures to ensure that the data you have provided to us is always secure<br>From: Pierre Jolivet <<a href="mailto:pierre@joliv.et">pierre@joliv.et</a>><br>Date: Sunday, 11 May 2025 at 20:45<br>To: Hardik Kothari <<a href="mailto:hardik.kothari@corintis.com">hardik.kothari@corintis.com</a>><br>Cc:<span class="Apple-converted-space"> </span><a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a><span class="Apple-converted-space"> </span><<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>><br>Subject: Re: [petsc-users] Solving Stokes problem in high aspect ratio domains<br><br>You don't often get email from<span class="Apple-converted-space"> </span><a href="mailto:pierre@joliv.et">pierre@joliv.et</a>. Learn why this is important<<a href="https://urldefense.us/v3/__https://aka.ms/LearnAboutSenderIdentification__;!!G_uCfscf7eWS!ZkgL3p_ykjNhChJT714e-SsEGf_se8P03ZonnBbsSYm4XLTWR5khwNuHfc88CuP0c57UyPwjOWYcyMKkTLcXKGkCe1E-JiqZ$">https://urldefense.us/v3/__https://aka.ms/LearnAboutSenderIdentification__;!!G_uCfscf7eWS!ZkgL3p_ykjNhChJT714e-SsEGf_se8P03ZonnBbsSYm4XLTWR5khwNuHfc88CuP0c57UyPwjOWYcyMKkTLcXKGkCe1E-JiqZ$</a><span class="Apple-converted-space"> </span>><br><br>Do you want to refine the geometry or are you fine with the current one?<br>What kind of hardware are you planning on using (GPU, single-node…)?<br>Do you have a configuration for which LSC fails or does not give you good-enough performance?<br><br>Thanks,<br>Pierre<br><br><br>On 9 May 2025, at 9:08 PM, Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>> wrote:<br><br>Hi Hardik,<br><br>The domain shape is not critical but the element shapes are. Your 100:1 domain aspect ratio is bad if you have N^3 mesh and thus element aspect ratios of 100:1.<br>If that is the case then you probably want to look at semi-coarsening multigrid.<br><br>Mark<br><br>On Fri, May 9, 2025 at 9:55 AM Hardik Kothari <<a href="mailto:hardik.kothari@corintis.com">hardik.kothari@corintis.com</a><<a href="mailto:hardik.kothari@corintis.com">mailto:hardik.kothari@corintis.com</a>>> wrote:<br>Dear PETSc team,<br><br>We are solving the Stokes equations using PETSc (via Firedrake) on a highly anisotropic 3D domain (L_x=1, L_y=0.01, L_z=0.1).<br><br>In this setup, standard Schur complement preconditioners using a mass inverse for pressure struggle to converge. We could solve the problem with the LSC preconditioner (solver parameters are shown in the script).<br><br>We have the following questions:<br><br>*   Why standard preconditioners struggle in such domains?<br>*   Why is the preconditioned residual norm for the Schur complement system much higher than the true residual norm?<br>*   Would you recommend alternative or more robust preconditioners for such geometries?<br><br>Thank you for your help.<br><br>Best regards,<br>Hardik<br><br><br><br>HARDIK KOTHARI<br><br><a href="mailto:hardik.kothari@corintis.com">hardik.kothari@corintis.com</a><<a href="mailto:hardik.kothari@corintis.com">mailto:hardik.kothari@corintis.com</a>><br><br>Corintis SA<br>EPFL Innovation Park Building C<br>1015 Lausanne<br><br><br><br><br>[<a href="cid:~WRD0000.jpg">cid:~WRD0000.jpg</a>]<br><br>Here at Corintis we care for your privacy. That is why we have taken appropriate measures to ensure that the data you have provided to us is always secure</blockquote></div></blockquote></div><br></body></html>