Discussion:
[petsc-users] Hypre - AMS / CG
Vincent Huber
2015-10-29 15:10:22 UTC
Permalink
Hello all,

I want to solve the following system [1]
∇ × 1/ÎŒ ∇ × u + ∇ P = f
∇ ⋅ u = 0
with Ό​ = cst.

This produce, in the preconditioner, two systems to solve. The first one is
related to AMS (with a non null β​), the second one is a laplacian.

I use *Hypre/Ams*
<http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/PCHYPRE.html>
as a preconditioner to solve the first system.

I have verified my implementation to solve the full problem in sequential,
using the default parameters, on 3D academic test cases. I obtain the
second order accuracy as expected.

On *some* parallel cases, the solver related to the first system (after few
iterations) does not converge (Indefinite matrix or Indefinite
preconditioner). If I generate [2] - from the same mesh - a new
partitionning, I can obtain convergence (but that is not always true)
I have implemented my own version of the ams preconditioner following [1]
and the system (slowly) converge.
I use {Hypre-AMS OR my own implementation}/CG to solve the corresponding
system.
If I switch from hypre-ams/CG to hypre-ams/gmres, then I obtain - at least
for that case - convergence.
If I use my own implementation/CG, then I obtain - at least for that case -
convergence (but that is very slow !)

My questions are:

- why does the hypre-ams preconditioner loose the SDP property ?
- Do I miss anything else ?

I have tried various cycle-type and smoothing options in the hypre-ams
preconditioner with CG without success.

Vincent H

[1]For more details, see *Parallel numerical solution of the time-harmonic
Maxwell equations in mixed form*
[2] gmsh my.msh -3 -part n -o new.msh

–
Docteur Ingénieur de rechercheCeMoSiS <http://www.cemosis.fr> -
***@cemosis.fr
Tel: +33 (0)3 68 85 02 06
IRMA - 7, rue René Descartes
67 000 Strasbourg

​
Barry Smith
2015-10-29 15:27:36 UTC
Permalink
I am including the hypre issue tracker on this discussion since they obviously know much more about their solvers than we do.

Since you have markedly different qualitative behavior between the sequential (where hypre seems fine) and the parallel, my guess is that there is an error in your generation of the problem you pass to hypre in parallel. I recommend running your code with a very small matrix on 1 and 2 processes and using MatView() or -mat_view and other command line options to make sure that you are providing the EXACT same matrix on 1 and 2 processes to hypre.

You can also use MatView() with a binary file and MatLoad() to generate the matrix on one process and then load it on to two processes and run the matrix that worked on one process on two processes, does it's convergence fall apart on 2 processes (this would indicate an issue with hypre) or does it have similar convergence on 2?

Barry
Post by Vincent Huber
Hello all,
I want to solve the following system [1]
∇ × 1/μ ∇ × u + ∇ P = f
∇ ⋅ u = 0
with μ​ = cst.
This produce, in the preconditioner, two systems to solve. The first one is related to AMS (with a non null β​), the second one is a laplacian.
I use Hypre/Ams as a preconditioner to solve the first system.
I have verified my implementation to solve the full problem in sequential, using the default parameters, on 3D academic test cases. I obtain the second order accuracy as expected.
On some parallel cases, the solver related to the first system (after few iterations) does not converge (Indefinite matrix or Indefinite preconditioner). If I generate [2] - from the same mesh - a new partitionning, I can obtain convergence (but that is not always true)
I have implemented my own version of the ams preconditioner following [1] and the system (slowly) converge.
I use {Hypre-AMS OR my own implementation}/CG to solve the corresponding system.
If I switch from hypre-ams/CG to hypre-ams/gmres, then I obtain - at least for that case - convergence.
If I use my own implementation/CG, then I obtain - at least for that case - convergence (but that is very slow !)
• why does the hypre-ams preconditioner loose the SDP property ?
• Do I miss anything else ?
I have tried various cycle-type and smoothing options in the hypre-ams preconditioner with CG without success.
Vincent H
[1]For more details, see Parallel numerical solution of the time-harmonic Maxwell equations in mixed form
[2] gmsh my.msh -3 -part n -o new.msh

Tel: +33 (0)3 68 85 02 06
IRMA - 7, rue René Descartes
67 000 Strasbourg
Loading...