Thanks a lot for your answers.

I ran it with

   -ksp_type gmres -pc_type hypre -pc_hypre_type euclid

and it worked very well. Thanks.

I then tried to use boomeramg as a preconditioner coupled with Richardson but I was not successful, it failed to solve the system and returned nans.

   -ksp_type richardson -pc_type hypre -pc_hypre_type boomeramg
   -pc_hypre_boomeramg_relax_type_all SOR/Jacobi
   -pc_hypre_boomeramg_print_debug -ksp_view -ksp_monitor_true_residual

and i got the following

     ===== Proc = 0     Level = 0  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 18308 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 7 nc_offd = 0

     ===== Proc = 0     Level = 1  =====
   Proc = 0    Coarsen 1st pass = 0.010000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 8725 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 16 nc_offd = 0

     ===== Proc = 0     Level = 2  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 4721 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 13 nc_offd = 0
   Proc = 0  iter 3  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 4 nc_offd = 0

     ===== Proc = 0     Level = 3  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 2495 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 22 nc_offd = 0
   Proc = 0  iter 3  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 4 nc_offd = 0

     ===== Proc = 0     Level = 4  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 1337 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 13 nc_offd = 0
   Proc = 0  iter 3  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 2 nc_offd = 0

     ===== Proc = 0     Level = 5  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 695 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 3 nc_offd = 0

     ===== Proc = 0     Level = 6  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 343 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 21 nc_offd = 0
   Proc = 0  iter 3  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 2 nc_offd = 0

     ===== Proc = 0     Level = 7  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 174 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 15 nc_offd = 0
   Proc = 0  iter 3  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 2 nc_offd = 0

     ===== Proc = 0     Level = 8  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 81 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 13 nc_offd = 0

     ===== Proc = 0     Level = 9  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 37 nc_offd = 0
   Proc = 0  iter 2  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 6 nc_offd = 0

     ===== Proc = 0     Level = 10  =====
   Proc = 0    Coarsen 1st pass = 0.000000
   Proc = 0    Coarsen 2nd pass = 0.000000
   Proc = 0    Initialize CLJP phase = 0.000000
   Proc = 0  iter 1  comm. and subgraph update = 0.000000
   Proc = 0    CLJP phase = 0.000000 graph_size = 11 nc_offd = 0


      0 KSP preconditioned resid norm 7.299769365830e+14 true resid
   norm 8.197927963033e-03 ||r(i)||/||b|| 1.000000000000e+00
      1 KSP preconditioned resid norm 2.319459389445e+28 true resid
   norm 6.152576199945e+12 ||r(i)||/||b|| 7.505038136086e+14
   KSP Object: 1 MPI processes
      type: richardson
        Richardson: damping factor=1
      maximum iterations=90, initial guess is zero
      tolerances:  relative=0.1, absolute=1e-50, divergence=100000
      left preconditioning
      using PRECONDITIONED norm type for convergence test
   PC Object: 1 MPI processes
      type: hypre
        HYPRE BoomerAMG preconditioning
        HYPRE BoomerAMG: Cycle type V
        HYPRE BoomerAMG: Maximum number of levels 25
        HYPRE BoomerAMG: Maximum number of iterations PER hypre call 1
        HYPRE BoomerAMG: Convergence tolerance PER hypre call 0
        HYPRE BoomerAMG: Threshold for strong coupling 0.25
        HYPRE BoomerAMG: Interpolation truncation factor 0
        HYPRE BoomerAMG: Interpolation: max elements per row 0
        HYPRE BoomerAMG: Number of levels of aggressive coarsening 0
        HYPRE BoomerAMG: Number of paths for aggressive coarsening 1
        HYPRE BoomerAMG: Maximum row sums 0.9
        HYPRE BoomerAMG: Sweeps down         1
        HYPRE BoomerAMG: Sweeps up           1
        HYPRE BoomerAMG: Sweeps on coarse    1
        HYPRE BoomerAMG: Relax down          SOR/Jacobi
        HYPRE BoomerAMG: Relax up            SOR/Jacobi
        HYPRE BoomerAMG: Relax on coarse Gaussian-elimination
        HYPRE BoomerAMG: Relax weight  (all)      1
        HYPRE BoomerAMG: Outer relax weight (all) 1
        HYPRE BoomerAMG: Using CF-relaxation
        HYPRE BoomerAMG: Measure type        local
        HYPRE BoomerAMG: Coarsen type        Falgout
        HYPRE BoomerAMG: Interpolation type  classical
      linear system matrix = precond matrix:
      Matrix Object:   1 MPI processes
        type: seqbaij
        rows=22905, cols=22905, bs=5
        total: nonzeros=785525, allocated nonzeros=785525
        total number of mallocs used during MatSetValues calls =0
            block size is 5

Do you guys have any suggestion? Is it possible that I am haven't initialized boomeramg properly? Or it is just my system equations that can not be solved by AMG?

Sincerely,
Dario




On 05/16/2014 11:54 AM, Barry Smith wrote:
On May 16, 2014, at 10:46 AM, Dario Isola <[email protected]> wrote:

Dear all,

I am investigating the use of hypre+petsc. I was able to successfully 
configure, install, compile petsc 3.3 with the external package for hypre.

I tried to run it with the following options
-pc_type hypre -pc_type_hypre pilut -ksp_type richardson
and, although he did not complain, it does not solve the system either.
    Do you meaning it did not converge? At first always run with -ksp_view (or 
-snes_view if using snes or -ts_view if using ts) and 
-ksp_monitor_true_residual to see what is going on.

-pc_type_hypre pilut
is wrong it is -pc_hypre_type pilut

Note that pilut will generally not work with Richardson you need a “real” 
Krylov method like GMRES.

Also the ilu type preconditioners don’t scale particularly well though 
occasionally they can be fine.

To what extent is hypre supported by petsc? More specifically, what kind of 
matrices?
    If it cannot handle the matrix type it would give an error message.  Hypre 
uses a format like AIJ so you should use AIJ. Note that you can make the matrix 
type a runtime option so you don’t have to compile in that it is BAIJ.


I am using a baij matrix.

Thanks in advance,
D

Reply via email to