New "MT Gauss-Seidel" does not seem to work from within MueLu
Created by: aprokop
@trilinos/ifpack2 @srajama1 @mndevec
In MueLu, we have a driver that allows us to run arbitrary input decks (located in muelu/test/scaling, MueLu_Driver.exe, enabled when MueLu tests are enabled). In particular, it is possible to test Ifpack2 smoothers with MueLu input deck by constructing a one level hierarchy.
I tried running the driver with the following input deck:
<ParameterList name="MueLu">
<Parameter name="max levels" type="int" value="1"/>
<Parameter name="coarse: type" type="string" value="RELAXATION"/>
<ParameterList name="coarse: params">
<Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
</ParameterList>
</ParameterList>
running it like this ./MueLu_Driver.exe --xml=onelevel-2_np4.xml --solver=standalone
. Here, standalone
means use MueLu to iterate, so this is essentially a fixed point iteration solver. The result with regular Gauss-Seidel shows expected convergence:
iter: 0 residual = {9.99999999999999778e-01}
iter: 1 residual = {2.91355224068349961e-01}
iter: 2 residual = {1.03112694566287258e-01}
iter: 3 residual = {4.24030494030126423e-02}
iter: 4 residual = {2.09351268542225487e-02}
iter: 5 residual = {1.23958077884280798e-02}
iter: 6 residual = {8.39363169782942654e-03}
iter: 7 residual = {6.18796307752396586e-03}
iter: 8 residual = {4.81762942015303165e-03}
iter: 9 residual = {3.89531035831334332e-03}
iter: 10 residual = {3.23934079863641899e-03}
I then changed Gauss-Seidel
in the input deck to MT Gauss-Seidel
and here is the result:
iter: 0 residual = {9.99999999999999778e-01}
iter: 1 residual = {9.99999999999999778e-01}
iter: 2 residual = {9.99999999999999778e-01}
iter: 3 residual = {9.99999999999999778e-01}
iter: 4 residual = {9.99999999999999778e-01}
iter: 5 residual = {9.99999999999999778e-01}
iter: 6 residual = {9.99999999999999778e-01}
iter: 7 residual = {9.99999999999999778e-01}
iter: 8 residual = {9.99999999999999778e-01}
iter: 9 residual = {9.99999999999999778e-01}
iter: 10 residual = {9.99999999999999778e-01}
This is definitely not the expected behavior. Even if coloring changes the convergence, it should still converge, right?
I would be happy to work with anybody to fix this issue.