convergence of BoomerAMG

Barry Smith bsmith at mcs.anl.gov
Mon Nov 17 11:04:30 CST 2008


   First run with
  call KSPSetType(ksp,GMRES,ierr)
and see what difference that makes.

    You can switch to petsc-dev http://www-unix.mcs.anl.gov/petsc/petsc-as/developers/index.html
if you are not currently using it. This with the config/configure.py  
option --download-hypre will
use the latest version of hypre.


If none of this helps then run both cases printing the statistics and  
send them to petsc-maint at mcs.anl.gov and
I'll take a look at them.

    Barry



On Nov 17, 2008, at 6:04 AM, stijn vantieghem wrote:

> Dear PETSc team
>
> I'm using PETSC with HYPRE's BoomerAMG to solve a pressure Poisson  
> equation in an incompressible Navier-Stokes solver. When working on  
> a 64x129x64-grid, it converges reasonbly well on 8 (1 bi-quad-core)  
> processors, However, when changing. to 16 (2 bi-quad-core) procs,  
> BoomerAMG is hardly able to converge. Below, you find an excerpt of  
> my code with all the flags I'm using . Have you any suggestions to  
> overcome this problem?
> Thanks in advance
>
> Sincerely yours
> Stijn Vantieghem
>
> 	! KSP parameters
>         call KSPCreate(PETSC_COMM_WORLD,ksp,ierr)
>         call KSPSetType(ksp,KSPRICHARDSON,ierr)
>         call KSPSetOperators(ksp,M,M,DIFFERENT_NONZERO_PATTERN,ierr)
>
>         call KSPGetPC(ksp,pc,ierr)
>         call PCSetType(pc,PCHYPRE,ierr)
>         call PCHYPRESetType(pc,"boomeramg",ierr)
>
>         ! HYPRE Options
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_print_statistics","2",ierr)
>
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_tol",trim(co),ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_max_iter","25",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_min_iter","2",ierr)
>
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_grid_sweeps_down","2",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_grid_sweeps_up","2",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_grid_sweeps_coarse","1",ierr)
>
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_relax_type_down","SOR/Jacobi",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_relax_type_up","SOR/Jacobi",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_relax_type_coarse","Jacobi",ierr)
>
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_relax_weight_all","1.0",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_outer_relax_weight_all","1.0",ierr)
>
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_grid_sweeps_all","1",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_max_row_sum","1.0",ierr)
>         call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_max_levels","25",ierr)
>         ! call PetscOptionsSetValue("- 
> pc_hypre_boomeramg_nodal_coarsen",PETSC_NULL_CHARACTER,ierr)
>
>         call KSPSetTolerances(ksp,1.0e-10_WP,1.0e-6_WP,1.0e15_WP, 
> 1,ierr)
>         call KSPSetFromOptions(ksp,ierr)
>




More information about the petsc-users mailing list