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

Reply via email to