Issue about the Block GMG solver with free slip boundary condition

Previously I was discussing with John and Magali and we run into this problem of using Block GMG. So Magali suggests me to bring it up on the forum.

I have a problem running the Block GMG method inside the Newton solver. I created a very simple test from the slab detachment benchmark, which is basically a 2d model with non-linear rheology in the ViscoPlastic material model. The problem happens when the solver assembles at 0th step and it happens specifically for tangential boundary condition. Here is the description. As the forum doesn’t allow me to upload files, I am hoping that anyone of you could take this problem and I will send an email with all the files included.

When I change the velocity boundary conditions on top and bottom to ‘fixed’ instead of ‘tangential’, the problem is solved

see the input file under test_group/test_naliboff_setting

case_err_simple.prm vs case_err_simple_test.prm

the second one’s boundary conditions are changed

Also see this prm where I preserve the ‘tangential’ conditions and used AMG instead of GMG, there is no error in this case

case_err_simple_test.prm

To summarize and some questions.

Assigning all boundary velocity conditions to ‘tangential’ is causing the problem. Is there a null space under these conditions? do we actually need to remove it?

While this is the problem, change the linear solver scheme to ‘AMG’ (i.e. the default) will also resolve the problem. So is that ‘GMG’ has a stricter requirement for having no nullspace in the problem

lhy11009, yes, I think this is likely related to the null space. Can you please create an issue at https://github.com/geodynamics/aspect/issues and upload a .prm file that shows the problem?