Dear sir, Thanks for your thorough and helpful reply, and I will try the Uzawa method first.
Best regards, Xiaofeng > On Jun 12, 2025, at 16:57, Mark Adams <mfad...@lbl.gov> wrote: > > Adding this to the PETSc mailing list, > > On Thu, Jun 12, 2025 at 3:43 AM hexioafeng <hexiaof...@buaa.edu.cn > <mailto:hexiaof...@buaa.edu.cn>> wrote: >> >> Dear Professor, >> >> I hope this message finds you well. >> >> I am an employee at a CAE company and a heavy user of the PETSc library. I >> would like to thank you for your contributions to PETSc and express my deep >> appreciation for your work. >> >> Recently, I encountered some difficulties when using PETSc to solve >> structural mechanics problems with Lagrange multiplier constraints. After >> searching extensively online and reviewing several papers, I found your >> previous paper titled "Algebraic multigrid methods for constrained linear >> systems with applications to contact problems in solid mechanics" seems to >> be the most relevant and helpful. >> >> The stiffness matrix I'm working with, K, is a block saddle-point matrix of >> the form (A00 A01; A10 0), where A00 is singular—just as described in your >> paper, and different from many other articles . I have a few questions >> regarding your work and would greatly appreciate your insights: >> >> 1. Is the AMG/KKT method presented in your paper available in PETSc? I tried >> using CG+GAMG directly but received a KSP_DIVERGED_PC_FAILED error. I also >> attempted to use CG+PCFIELDSPLIT with the following options: > > No > >> >> -pc_type fieldsplit -pc_fieldsplit_detect_saddle_point >> -pc_fieldsplit_type schur -pc_fieldsplit_schur_precondition selfp >> -pc_fieldsplit_schur_fact_type full -fieldsplit_0_ksp_type preonly >> -fieldsplit_0_pc_type gamg -fieldsplit_1_ksp_type preonly >> -fieldsplit_1_pc_type bjacobi >> >> Unfortunately, this also resulted in a KSP_DIVERGED_PC_FAILED error. Do >> you have any suggestions? >> >> 2. In your paper, you compare the method with Uzawa-type approaches. To my >> understanding, Uzawa methods typically require A00 to be invertible. How did >> you handle the singularity of A00 to construct an M-matrix that is >> invertible? >> > > You add a regularization term like A01 * A10 (like springs). See the paper or > any reference to augmented lagrange or Uzawa > > >> 3. Can i implement the AMG/KKT method in your paper using existing AMG APIs? >> Implementing a production-level AMG solver from scratch would be quite >> challenging for me, so I’m hoping to utilize existing AMG interfaces within >> PETSc or other packages. >> > > You can do Uzawa and make the regularization matrix with matrix-matrix > products. Just use AMG for the A00 block. > > >> 4. For saddle-point systems where A00 is singular, can you recommend any >> more robust or efficient solutions? Alternatively, are you aware of any >> open-source software packages that can handle such cases out-of-the-box? >> > > No, and I don't think PETSc can do this out-of-the-box, but others may be > able to give you a better idea of what PETSc can do. > I think PETSc can do Uzawa or other similar algorithms but it will not do the > regularization automatically (it is a bit more complicated than just A01 * > A10) > > Thanks, > Mark >> >> Thank you very much for taking the time to read my email. Looking forward to >> hearing from you. >> >> >> >> Sincerely, >> >> Xiaofeng He >> ----------------------------------------------------- >> >> Research Engineer >> >> Internet Based Engineering, Beijing, China