<div dir="ltr">Hello<div><br></div><div>I'm solving an indefinite problem arising from mesh tying/contact using Lagrange multiplier, the matrix has the form</div><div><br></div><div>K = [A P^T</div><div>       P   0]</div><div><br></div><div>I used the FIELDSPLIT preconditioner with one field is the main variable (displacement) and the other field for dual variable (Lagrange multiplier). The block size for each field is 3. According to the manual, I first chose the preconditioner based on Schur complement to treat this problem.</div><div><br></div><div>The parameters used for the solve is</div><div><div>-ksp_type gmres</div><div>-ksp_max_it 300</div><div>-ksp_gmres_restart 300</div><div>-ksp_gmres_modifiedgramschmidt</div><div>-pc_fieldsplit_type schur<br></div><div>-pc_fieldsplit_schur_fact_type diag</div><div>-pc_fieldsplit_schur_precondition selfp</div><div>-pc_fieldsplit_detect_saddle_point</div><div>-fieldsplit_u_pc_type hypre</div><div>-fieldsplit_u_pc_hypre_type boomeramg</div><div>-fieldsplit_u_pc_hypre_boomeramg_coarsen_type PMIS</div><div>-fieldsplit_lu_pc_type hypre</div><div>-fieldsplit_lu_pc_hypre_type boomeramg</div><div>-fieldsplit_lu_pc_hypre_boomeramg_coarsen_type PMIS</div></div><div><br></div><div>For the test case, a small problem is solved on 2 processes. Due to the decomposition, the contact only happens in 1 proc, so the size of Lagrange multiplier dofs on proc 0 is 0.</div><div><br></div><div><div>0: mIndexU.size(): 80490</div><div>0: mIndexLU.size(): 0</div><div>1: mIndexU.size(): 103836</div><div>1: mIndexLU.size(): 2583</div></div><div><br></div><div>However, with this setup the solver takes very long at KSPSolve before going to iteration, and the first iteration seems forever so I have to stop the calculation. I guessed that the solver takes time to compute the Schur complement, but according to the manual only the diagonal of A is used to approximate the Schur complement, so it should not take long to compute this.</div><div><br></div><div>Note that I ran the same problem with direct solver (MUMPS) and it's able to produce the valid results. The parameter for the solve is pretty standard</div><div><div>-ksp_type preonly</div><div>-pc_type lu</div><div>-pc_factor_mat_solver_package mumps</div></div><div><br></div><div>Hence the matrix/rhs must not have any problem here. Do you have any idea or suggestion for this case?</div><div><br></div><div><br clear="all"><div><div class="gmail_signature"><div dir="ltr">Giang</div></div></div>
</div></div>