[petsc-users] Preconditioner for a elasticity problem with Robin boundary conditions

Salazar De Troya, Miguel salazardetro1 at llnl.gov
Mon May 14 16:45:31 CDT 2018


Up until now, I have been solving my elasticity problem using the gamg preconditioner with the following options:

-ksp_type cg
-mg_levels_esteig_ksp_type cg
-mg_levels_ksp_chebyshev_esteig_steps 10
-mg_levels_ksp_type chebyshev
-mg_levels_pc_type sor
-pc_type gamg
-pc_gamg_verbose 7
-pc_gamg_type agg
-pc_gamg_agg_nsmooths 1
-pc_gamg_threshold 0.001
-snes_linesearch_type basic
-snes_atol 1e-6
-ksp_atol 1e-7
-ksp_rtol 1e-9
-ksp_norm_type unpreconditioned

It has worked great so far, even for my problem where I have two materials with more than 1e3 ratio.

Now, when I add robin boundary conditions, the solver fails with DIVERGED_INDEFINITE_PC. Using -ksp_type bcgs makes the solver converge. I imagine it is because it can handle the indefinite PC. Why is the PC indefinite for the Robin problem? Is there any way to make it positive definite? I am also passing the rigid body modes of my mesh to the solver. I am not sure if these modes change with the Robin boundary conditions, they should not, should they?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180514/ca8327fc/attachment.html>

More information about the petsc-users mailing list