Adding this to the PETSc mailing list, On Thu, Jun 12, 2025 at 3:43 AM hexioafeng <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 > >