<head><!-- BaNnErBlUrFlE-HeAdEr-start -->
<style>
  #pfptBanner9zy07l1 { all: revert !important; display: block !important; 
    visibility: visible !important; opacity: 1 !important; 
    background-color: #D0D8DC !important; 
    max-width: none !important; max-height: none !important }
  .pfptPrimaryButton9zy07l1:hover, .pfptPrimaryButton9zy07l1:focus {
    background-color: #b4c1c7 !important; }
  .pfptPrimaryButton9zy07l1:active {
    background-color: #90a4ae !important; }
</style>

<!-- BaNnErBlUrFlE-HeAdEr-end -->
</head><!-- BaNnErBlUrFlE-BoDy-start -->
<!-- Preheader Text : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">
 Yes, easy to solve. It is a kind of Lapalcian that comes up in graph algorithms. You mentioned problems with pinned points, with zero displacement. Conceptually you want to create A'A without any modification for pinned points. Then remove
</div>
<!-- Preheader Text : END -->

<!-- Email Banner : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerStart</div>

<!--[if ((ie)|(mso))]>
  <table border="0" cellspacing="0" cellpadding="0" width="100%" style="padding: 16px 0px 16px 0px; direction: ltr" ><tr><td>
    <table border="0" cellspacing="0" cellpadding="0" style="padding: 0px 10px 5px 6px; width: 100%; border-radius:4px; border-top:4px solid #90a4ae;background-color:#D0D8DC;"><tr><td valign="top">
      <table align="left" border="0" cellspacing="0" cellpadding="0" style="padding: 4px 8px 4px 8px">
        <tr><td style="color:#000000; font-family: 'Arial', sans-serif; font-weight:bold; font-size:14px; direction: ltr">
          This Message Is From an External Sender
        </td></tr>
        <tr><td style="color:#000000; font-weight:normal; font-family: 'Arial', sans-serif; font-size:12px; direction: ltr">
          This message came from outside your organization.
        </td></tr>

      </table>

    </td></tr></table>
  </td></tr></table>
<![endif]-->

<![if !((ie)|(mso))]>
  <div dir="ltr"  id="pfptBanner9zy07l1" style="all: revert !important; display:block !important; text-align: left !important; margin:16px 0px 16px 0px !important; padding:8px 16px 8px 16px !important; border-radius: 4px !important; min-width: 200px !important; background-color: #D0D8DC !important; background-color: #D0D8DC; border-top: 4px solid #90a4ae !important; border-top: 4px solid #90a4ae;">
    <div id="pfptBanner9zy07l1" style="all: unset !important; float:left !important; display:block !important; margin: 0px 0px 1px 0px !important; max-width: 600px !important;">
      <div id="pfptBanner9zy07l1" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #D0D8DC !important; color:#000000 !important; color:#000000; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-weight:bold !important; font-weight:bold; font-size:14px !important; line-height:18px !important; line-height:18px">
        This Message Is From an External Sender
      </div>
      <div id="pfptBanner9zy07l1" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #D0D8DC !important; color:#000000 !important; color:#000000; font-weight:normal; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-size:12px !important; line-height:18px !important; line-height:18px; margin-top:2px !important;">
This message came from outside your organization.
      </div>

    </div>

    <div style="clear: both !important; display: block !important; visibility: hidden !important; line-height: 0 !important; font-size: 0.01px !important; height: 0px"> </div>
  </div>
<![endif]>

<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerEnd</div>
<!-- Email Banner : END -->

<!-- BaNnErBlUrFlE-BoDy-end -->
<div dir="ltr">Yes, easy to solve. It is a kind of Lapalcian that comes up in graph algorithms.<div><br></div><div>You mentioned problems with pinned points, with zero displacement. </div><div>Conceptually you want to create A'A without any modification for pinned points. Then remove the rows and columns associated with pinned points.</div><div>A'A has a null space, but your method requires pinning and that will remove the null space, so I don't think you need to worry about that.<br></div><div><br></div><div>Mark</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 7, 2024 at 10:30 AM Pierre Jolivet <<a href="mailto:pierre@joliv.et">pierre@joliv.et</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg4720589087681393490">

<div style="font-size:1px;color:rgb(255,255,255);line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;display:none">
 OK, it’s very trivial to solve with algebraic solvers. If you are willing to share larger test cases, maybe then some issue will arise (please do not attach them to your mail, send a URL, if you cannot and must attach it to your mail, switch
</div>



<div style="font-size:1px;color:rgb(255,255,255);line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;display:none">ZjQcmQRYFpfptBannerStart</div>



<u></u>
  <div dir="ltr" id="m_4720589087681393490pfptBanner7msfn5h" style="display:block;text-align:left;margin:16px 0px;padding:8px 16px;border-radius:4px;min-width:200px;background-color:rgb(208,216,220);border-top:4px solid rgb(144,164,174)">
    <div id="m_4720589087681393490pfptBanner7msfn5h" style="float:left;display:block;margin:0px 0px 1px;max-width:600px">
      <div id="m_4720589087681393490pfptBanner7msfn5h" style="display:block;background-color:rgb(208,216,220);color:rgb(0,0,0);font-family:Arial,sans-serif;font-weight:bold;font-size:14px;line-height:18px">
        This Message Is From an External Sender
      </div>
      <div id="m_4720589087681393490pfptBanner7msfn5h" style="font-weight:normal;display:block;background-color:rgb(208,216,220);color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:12px;line-height:18px;margin-top:2px">
This message came from outside your organization.
      </div>

    </div>

    <div style="height:0px;clear:both;display:block;line-height:0;font-size:0.01px"> </div>
  </div>
<u></u>

<div style="font-size:1px;color:rgb(255,255,255);line-height:1px;height:0px;max-height:0px;opacity:0;overflow:hidden;display:none">ZjQcmQRYFpfptBannerEnd</div>







<div>OK, it’s very trivial to solve with algebraic solvers.<div>If you are willing to share larger test cases, maybe then some issue will arise (please do not attach them to your mail, send a URL, if you cannot and must attach it to your mail, switch to the following mailing list: <a href="mailto:petsc-maint@mcs.anl.gov" target="_blank">petsc-maint@mcs.anl.gov</a>)</div><div><br></div><div>Thanks,</div><div>Pierre</div><div><br></div><div><div><div>$ mpirun -n 8 ./sparse_ls -mat_name /tmp/system/matdump_step00010000_dir0.bin -options_file gmres.rc -pc_type hypre -options_left 0</div><div>  0 KSP Residual norm 3.453633143461e+01</div><div>  1 KSP Residual norm 1.454005637026e+00</div><div>  2 KSP Residual norm 7.254564223178e-02</div><div>  3 KSP Residual norm 2.595967767025e-03</div><div>  4 KSP Residual norm 8.616844003887e-05</div><div>  5 KSP Residual norm 2.519788767995e-06</div><div>  6 KSP Residual norm 6.830984907384e-08</div><div>  Linear solve converged due to CONVERGED_RTOL iterations 6</div><div>||A^T(Ax-b)|| / ||Ax-b|| = 0.000000 / 17.017700 = 0.000000</div><div>$ mpirun -n 8 ./sparse_ls -mat_name /tmp/system/matdump_step00010000_dir0.bin -options_file gmres.rc -pc_type gamg -options_left 0</div><div>  0 KSP Residual norm 3.453633143461e+01</div><div>  1 KSP Residual norm 9.410331701775e+00</div><div>  2 KSP Residual norm 7.249670993944e-01</div><div>  3 KSP Residual norm 8.415995591379e-02</div><div>  4 KSP Residual norm 8.230048116783e-03</div><div>  5 KSP Residual norm 8.200299281980e-04</div><div>  6 KSP Residual norm 8.332302028270e-05</div><div>  7 KSP Residual norm 9.103576883087e-06</div><div>  8 KSP Residual norm 8.837914581158e-07</div><div>  9 KSP Residual norm 8.295880033739e-08</div><div>  Linear solve converged due to CONVERGED_RTOL iterations 9</div><div>||A^T(Ax-b)|| / ||Ax-b|| = 0.000000 / 17.017700 = 0.000000</div><div>$ mpirun -n 8 ./sparse_ls -mat_name /tmp/system/matdump_step00010000_dir0.bin -options_file gmres.rc -pc_type hpddm -options_left 0</div><div>  0 KSP Residual norm 3.453633143461e+01</div><div>  1 KSP Residual norm 4.455259710220e+00</div><div>  2 KSP Residual norm 1.190904699181e-01</div><div>  3 KSP Residual norm 5.220970280301e-03</div><div>  4 KSP Residual norm 6.214389182723e-05</div><div>  5 KSP Residual norm 1.693927074022e-06</div><div>  6 KSP Residual norm 3.700055659502e-08</div><div>  Linear solve converged due to CONVERGED_RTOL iterations 6</div><div>||A^T(Ax-b)|| / ||Ax-b|| = 0.000000 / 17.017700 = 0.000000</div><div><br></div><div><br><blockquote type="cite"><div>On 7 May 2024, at 2:50 PM, Seiz,Marco <<a href="mailto:marco@kit.ac.jp" target="_blank">marco@kit.ac.jp</a>> wrote:</div><br><div><div dir="ltr" id="m_4720589087681393490pfptBannerfq8cy01" style="writing-mode:revert;color:revert;font-family:revert;font-feature-settings:revert;font-kerning:revert;font-size:revert;font-stretch:revert;font-variant-alternates:revert;font-variant-caps:revert;font-variant-east-asian:revert;font-variant-ligatures:revert;font-variant-numeric:revert;font-weight:revert;text-orientation:revert;zoom:revert;letter-spacing:revert;background-blend-mode:revert;background-image:revert;background-position:revert;background-repeat:revert;background-size:revert;border-collapse:revert;box-sizing:revert;break-after:revert;break-before:revert;break-inside:revert;caption-side:revert;clear:revert;columns:revert;column-fill:revert;column-gap:revert;column-rule:revert;column-span:revert;empty-cells:revert;float:revert;image-orientation:revert;isolation:revert;line-break:revert;line-height:revert;list-style:revert;mix-blend-mode:revert;object-fit:revert;object-position:revert;outline:revert;overflow:revert;quotes:revert;table-layout:revert;text-align:left;text-align-last:revert;text-decoration:revert;text-emphasis:revert;text-indent:revert;text-overflow:revert;text-transform:revert;text-underline-position:revert;vertical-align:revert;white-space:revert;word-break:revert;border-spacing:revert;word-spacing:revert;background-clip:revert;background-origin:revert;text-combine-upright:revert;display:block;opacity:revert;background-color:rgb(208,216,220);border-bottom:revert;border-left:revert;border-right:revert;height:revert;max-height:revert;max-width:revert;min-height:revert;width:revert;margin:16px 0px;padding:8px 16px;border-radius:4px;min-width:200px;border-top:4px solid rgb(144,164,174)"><div id="m_4720589087681393490pfptBannerfq8cy01" style="writing-mode:unset;color:unset;font-family:unset;font-feature-settings:unset;font-kerning:unset;font-size:unset;font-stretch:unset;font-variant-alternates:unset;font-variant-caps:unset;font-variant-east-asian:unset;font-variant-ligatures:unset;font-variant-numeric:unset;font-weight:unset;text-orientation:unset;zoom:unset;letter-spacing:unset;background:unset;background-blend-mode:unset;border-collapse:unset;border:unset;box-sizing:unset;break-after:unset;break-before:unset;break-inside:unset;caption-side:unset;clear:unset;columns:unset;column-fill:unset;column-gap:unset;column-rule:unset;column-span:unset;empty-cells:unset;float:left;image-orientation:unset;isolation:unset;line-break:unset;line-height:unset;list-style:unset;mix-blend-mode:unset;object-fit:unset;object-position:unset;outline:unset;overflow:unset;quotes:unset;table-layout:unset;text-align:unset;text-align-last:unset;text-decoration:unset;text-emphasis:unset;text-indent:unset;text-overflow:unset;text-transform:unset;text-underline-position:unset;vertical-align:unset;white-space:unset;word-break:unset;border-spacing:unset;word-spacing:unset;text-combine-upright:unset;display:block;opacity:unset;border-radius:unset;height:unset;max-height:unset;min-height:unset;min-width:unset;padding:unset;width:unset;margin:0px 0px 1px;max-width:600px"><div id="m_4720589087681393490pfptBannerfq8cy01" style="writing-mode:unset;font-family:Arial,sans-serif;font-feature-settings:unset;font-kerning:unset;font-size:14px;font-stretch:unset;font-variant-alternates:unset;font-variant-caps:unset;font-variant-east-asian:unset;font-variant-ligatures:unset;font-variant-numeric:unset;font-weight:bold;text-orientation:unset;zoom:unset;letter-spacing:unset;background-blend-mode:unset;background-image:unset;background-position:unset;background-repeat:unset;background-size:unset;border-collapse:unset;border:unset;box-sizing:unset;break-after:unset;break-before:unset;break-inside:unset;caption-side:unset;clear:unset;columns:unset;column-fill:unset;column-gap:unset;column-rule:unset;column-span:unset;empty-cells:unset;float:unset;image-orientation:unset;isolation:unset;line-break:unset;line-height:18px;list-style:unset;mix-blend-mode:unset;object-fit:unset;object-position:unset;outline:unset;overflow:unset;quotes:unset;table-layout:unset;text-align:unset;text-align-last:unset;text-decoration:unset;text-emphasis:unset;text-indent:unset;text-overflow:unset;text-transform:unset;text-underline-position:unset;vertical-align:unset;white-space:unset;word-break:unset;border-spacing:unset;word-spacing:unset;background-clip:unset;background-origin:unset;text-combine-upright:unset;display:block;opacity:unset;background-color:rgb(208,216,220);border-radius:unset;height:unset;margin:unset;max-height:unset;max-width:unset;min-height:unset;min-width:unset;padding:unset;width:unset">This Message Is From an External Sender</div><div id="m_4720589087681393490pfptBannerfq8cy01" style="writing-mode:unset;font-family:Arial,sans-serif;font-feature-settings:unset;font-kerning:unset;font-size:12px;font-stretch:unset;font-variant-alternates:unset;font-variant-caps:unset;font-variant-east-asian:unset;font-variant-ligatures:unset;font-variant-numeric:unset;font-weight:unset;text-orientation:unset;zoom:unset;letter-spacing:unset;background-blend-mode:unset;background-image:unset;background-position:unset;background-repeat:unset;background-size:unset;border-collapse:unset;border:unset;box-sizing:unset;break-after:unset;break-before:unset;break-inside:unset;caption-side:unset;clear:unset;columns:unset;column-fill:unset;column-gap:unset;column-rule:unset;column-span:unset;empty-cells:unset;float:unset;image-orientation:unset;isolation:unset;line-break:unset;line-height:18px;list-style:unset;mix-blend-mode:unset;object-fit:unset;object-position:unset;outline:unset;overflow:unset;quotes:unset;table-layout:unset;text-align:unset;text-align-last:unset;text-decoration:unset;text-emphasis:unset;text-indent:unset;text-overflow:unset;text-transform:unset;text-underline-position:unset;vertical-align:unset;white-space:unset;word-break:unset;border-spacing:unset;word-spacing:unset;background-clip:unset;background-origin:unset;text-combine-upright:unset;display:block;opacity:unset;background-color:rgb(208,216,220);border-radius:unset;height:unset;margin-bottom:unset;margin-left:unset;margin-right:unset;max-height:unset;max-width:unset;min-height:unset;min-width:unset;padding:unset;width:unset;margin-top:2px">This message came from outside your organization.</div></div><div style="height:0px;clear:both;display:block;line-height:0;font-size:0.01px"></div></div><pre style="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;word-spacing:0px;text-decoration:none;font-family:sans-serif;white-space:pre-wrap">Pierre,

I've attached the dumps of the matrix + RHS for something of about 3k x 1k.


Regarding the weird divergence behaviour, I tried again at home but I still get the same results.

I am running a rolling release distribution on both machines, but that really shouldn't matter for divergence behavior I would think.

Is there some kind of option in PETSc to get more information about the breakdown from my side?


Best regards,

Marco

----- Original Message -----
>> From: Pierre Jolivet <<a href="mailto:pierre@joliv.et" target="_blank">pierre@joliv.et</a>>
>> To: Marco Seiz <<a href="mailto:marco@kit.ac.jp" target="_blank">marco@kit.ac.jp</a>>
>> Cc: <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>
>> Date: 2024-05-07 18:12:18
>> Subject: Re: [petsc-users] Reasons for breakdown in preconditioned LSQR
>> 

>> 
>> > On 7 May 2024, at 9:10 AM, Marco Seiz <<a href="mailto:marco@kit.ac.jp" target="_blank">marco@kit.ac.jp</a>> wrote:
>> > 
>> > Thanks for the quick response!
>> > 
>> > On 07.05.24 14:24, Pierre Jolivet wrote:
>> >> 
>> >> 
>> >>> On 7 May 2024, at 7:04 AM, Marco Seiz <<a href="mailto:marco@kit.ac.jp" target="_blank">marco@kit.ac.jp</a>> wrote:
>> >>> 
>> >>> This Message Is From an External Sender
>> >>> This message came from outside your organization.
>> >>> Hello,
>> >>> 
>> >>> something a bit different from my last question, since that didn't
>> >>> progress so well:
>> >>> I have a related model which generally produces a rectangular matrix A,
>> >>> so I am using LSQR to solve the system.
>> >>> The matrix A has two nonzeros (1, -1) per row, with A^T A being similar
>> >>> to a finite difference Poisson matrix if the rows were permuted randomly.
>> >>> The problem is singular in that the solution is only specified up to a
>> >>> constant from the matrix, with my target solution being a weighted zero
>> >>> average one, which I can handle by adding a nullspace to my matrix.
>> >>> However, I'd also like to pin (potentially many) DOFs in the future so I
>> >>> also tried pinning a single value, and afterwards subtracting the
>> >>> average from the KSP solution.
>> >>> This leads to the KSP *sometimes* diverging when I use a preconditioner;
>> >>> the target size of the matrix will be something like ([1,20] N) x N,
>> >>> with N ~ [2, 1e6] so for the higher end I will require a preconditioner
>> >>> for reasonable execution time.
>> >>> 
>> >>> For a smaller example system, I set up my application to dump the input
>> >>> to the KSP when it breaks down and I've attached a simple python script
>> >>> + data using petsc4py to demonstrate the divergence for those specific
>> >>> systems.
>> >>> With `python3 lsdiv.py -pc_type lu -ksp_converged_reason` that
>> >>> particular system shows breakdown, but if I remove the pinned DOF and
>> >>> add the nullspace (pass -usens) it converges. I did try different PCs
>> >>> but they tend to break down at different steps, e.g. `python3 lsdiv.py
>> >>> -usenormal -qrdiv -pc_type qr -ksp_converged_reason` shows the breakdown
>> >>> for PCQR when I use MatCreateNormal for creating the PC mat, but
>> >>> interestingly it doesn't break down when I explicitly form A^T A (don't
>> >>> pass -usenormal).
>> >> 
>> >> What version are you using? All those commands are returning
>> >>  Linear solve converged due to CONVERGED_RTOL_NORMAL iterations 1
>> >> So I cannot reproduce any breakdown, but there have been recent changes to KSPLSQR.
>> > For those tests I've been using PETSc 3.20.5 (last githash was
>> > 4b82c11ab5d ).
>> > I pulled the latest version from gitlab ( 6b3135e3cbe ) and compiled it,
>> > but I had to drop --download-suitesparse=1 from my earlier config due to
>> > errors.
>> > Should I write a separate mail about this?
>> > 
>> > The LU example still behaves the same for me (`python3 lsdiv.py -pc_type
>> > lu -ksp_converged_reason` gives DIVERGED_BREAKDOWN, `python3 lsdiv.py
>> > -usens -pc_type lu -ksp_converged_reason` gives CONVERGED_RTOL_NORMAL)
>> > but the QR example fails since I had to remove suitesparse.
>> > petsc4py.__version__ reports 3.21.1 and if I rebuild my application,
>> > then `ldd app` gives me `<a href="https://urldefense.us/v3/__http://libpetsc.so/__;!!G_uCfscf7eWS!c1Ilm648iIid0fNBLdTFLRbvkN5mXZ2UQOp3h1hpqyawkAkemrT_drZlBVd2jY51MyTXIxxNG4zF9Zxk8HtMRw$" target="_blank">libpetsc.so</a> <<a href="https://urldefense.us/v3/__http://libpetsc.so/__;!!G_uCfscf7eWS!fW1baXZMAQIKi0VDUIDUUzpMi4xQf7jrWGCXPlpIllqKAXJBzDClVwrLKYuWuT7LYfZoDzK4g9I9g_wFtHOXaQ$" target="_blank">https://urldefense.us/v3/__http://libpetsc.so/__;!!G_uCfscf7eWS!fW1baXZMAQIKi0VDUIDUUzpMi4xQf7jrWGCXPlpIllqKAXJBzDClVwrLKYuWuT7LYfZoDzK4g9I9g_wFtHOXaQ$</a>>.3.21 =>
>> > /opt/petsc/linux-c-opt/lib/<a href="https://urldefense.us/v3/__http://libpetsc.so/__;!!G_uCfscf7eWS!c1Ilm648iIid0fNBLdTFLRbvkN5mXZ2UQOp3h1hpqyawkAkemrT_drZlBVd2jY51MyTXIxxNG4zF9Zxk8HtMRw$" target="_blank">libpetsc.so</a> <<a href="https://urldefense.us/v3/__http://libpetsc.so/__;!!G_uCfscf7eWS!fW1baXZMAQIKi0VDUIDUUzpMi4xQf7jrWGCXPlpIllqKAXJBzDClVwrLKYuWuT7LYfZoDzK4g9I9g_wFtHOXaQ$" target="_blank">https://urldefense.us/v3/__http://libpetsc.so/__;!!G_uCfscf7eWS!fW1baXZMAQIKi0VDUIDUUzpMi4xQf7jrWGCXPlpIllqKAXJBzDClVwrLKYuWuT7LYfZoDzK4g9I9g_wFtHOXaQ$</a>>.3.21` so it should be using the
>> > newly built one.
>> > The application then still eventually yields a DIVERGED_BREAKDOWN.
>> > I don't have a ~/.petscrc and PETSC_OPTIONS is unset, so if we are on
>> > the same version and there's still a discrepancy it is quite weird.
>> 
>> Quite weird indeed…
>> $ python3 lsdiv.py -pc_type lu -ksp_converged_reason
>>   Linear solve converged due to CONVERGED_RTOL_NORMAL iterations 1
>> $ python3 lsdiv.py -usens -pc_type lu -ksp_converged_reason
>>   Linear solve converged due to CONVERGED_RTOL_NORMAL iterations 1
>> $ python3 lsdiv.py -pc_type qr -ksp_converged_reason
>>   Linear solve converged due to CONVERGED_RTOL_NORMAL iterations 1
>> $ python3 lsdiv.py -usens -pc_type qr -ksp_converged_reason
>>   Linear solve converged due to CONVERGED_RTOL_NORMAL iterations 1
>> 
>> >>> For the moment I can work by adding the nullspace but eventually the
>> >>> need for pinning DOFs will resurface, so I'd like to ask where the
>> >>> breakdown is coming from. What causes the breakdowns? Is that a generic
>> >>> problem occurring when adding (dof_i = val) rows to least-squares
>> >>> systems which prevents these preconditioners from being robust? If so,
>> >>> what preconditioners could be robust?
>> >>> I did a minimal sweep of the available PCs by going over the possible
>> >>> inputs of -pc_type for my application while pinning one DOF. Excepting
>> >>> unavailable PCs (not compiled for, other setup missing, ...) and those
>> >>> that did break down, I am left with ( hmg jacobi mat none pbjacobi sor
>> >>> svd ).
>> >> It’s unlikely any of these preconditioners will scale (or even converge) for problems with up to 1E6 unknowns.
>> >> I could help you setup <a href="https://urldefense.us/v3/__https://epubs.siam.org/doi/abs/10.1137/21M1434891__;!!G_uCfscf7eWS!fW1baXZMAQIKi0VDUIDUUzpMi4xQf7jrWGCXPlpIllqKAXJBzDClVwrLKYuWuT7LYfZoDzK4g9I9g_z0Iwv7Sg$" target="_blank">https://urldefense.us/v3/__https://epubs.siam.org/doi/abs/10.1137/21M1434891__;!!G_uCfscf7eWS!fW1baXZMAQIKi0VDUIDUUzpMi4xQf7jrWGCXPlpIllqKAXJBzDClVwrLKYuWuT7LYfZoDzK4g9I9g_z0Iwv7Sg$</a> if you are willing to share a larger example (the current Mat are extremely tiny).
>> > Yes, that would be great. About how large of a matrix do you need? I can
>> > probably quickly get something non-artificial up to O(N) ~ 1e3,
>> 
>> That’s big enough.
>> If you’re in luck, AMG on the normal equations won’t behave too badly, but I’ll try some more robust (in theory) methods nonetheless.
>> 
>> Thanks,
>> Pierre
>> 
>> > bigger
>> > matrices will take some time since I purposefully ignored MPI previously.
>> > The matrix basically describes the contacts between particles which are
>> > resolved on a uniform grid, so the main memory hog isn't the matrix but
>> > rather resolving the particles.
>> > I should mention that the matrix changes over the course of the
>> > simulation but stays constant for many solves, i.e. hundreds to
>> > thousands of solves with variable RHS between periods of contact
>> > formation/loss.
>> > 
>> >> 
>> >> Thanks,
>> >> Pierre
>> >>> 
>> >>> 
>> >>> Best regards,
>> >>> Marco
>> >>> 
>> >>> <lsdiv.zip>
>> >> 
>> >> 
>> > Best regards,
>> > Marco
>> 
>> 
>> </pre><span id="m_4720589087681393490cid:228CC53F-52CB-4D32-9824-E7C106434B64"><system.zip></span></div></blockquote></div><br></div></div></div></div></blockquote></div>