Dear PETSc,

I’m trying to use hypre’s BoomerAMG preconditioner through PETSc. However, I 
would like to use a non-standard smoother, namely an incomplete LU 
factorisation, which is implemented in hypre’s Euclid (that’s because the 
problem is highly anisotropic, and GAMG worked very weill with ILU smoother). 
In native hypre I can set this with HYPRE_BoomerAMGSetSmoothType(). However, I 
can’t see how I can pass this through the PETSc interface, since the only 
boomeramg options I can set are listed below. As far as I can see they allow me 
to change the pointwise smoother via HYPRE_BoomerAMGSetRelaxType().

Does anyone have any advice on what I can do to use Euclid as a smoother via 
setting the correct PETSc options?

Thank you very much,

Eike

eikemueller@138-38-173-198 $ ./ex6 -f -f helmholtz-sphere.dat  -ksp_type cg 
-ksp_convergence_test skip -ksp_max_it 2  -ksp_monitor -table -pc_hypre_type 
boomeramg -pc_type hypre -log_summary -ksp_view -help | grep boomeramg
  -pc_hypre_type <boomeramg> (choose one of) pilut parasails boomeramg ams 
(PCHYPRESetType)
  -pc_hypre_boomeramg_cycle_type <V> (choose one of) V W (None)
  -pc_hypre_boomeramg_max_levels <25>: Number of levels (of grids) allowed 
(None)
  -pc_hypre_boomeramg_max_iter <1>: Maximum iterations used PER hypre call 
(None)
  -pc_hypre_boomeramg_tol <0>: Convergence tolerance PER hypre call (0.0 = use 
a fixed number of iterations) (None)
  -pc_hypre_boomeramg_truncfactor <0>: Truncation factor for interpolation 
(0=no truncation) (None)
  -pc_hypre_boomeramg_P_max <0>: Max elements per row for interpolation 
operator (0=unlimited) (None)
  -pc_hypre_boomeramg_agg_nl <0>: Number of levels of aggressive coarsening 
(None)
  -pc_hypre_boomeramg_agg_num_paths <1>: Number of paths for aggressive 
coarsening (None)
  -pc_hypre_boomeramg_strong_threshold <0.25>: Threshold for being strongly 
connected (None)
  -pc_hypre_boomeramg_max_row_sum <0.9>: Maximum row sum (None)
  -pc_hypre_boomeramg_grid_sweeps_all <1>: Number of sweeps for the up and down 
grid levels (None)
  -pc_hypre_boomeramg_grid_sweeps_down <1>: Number of sweeps for the down 
cycles (None)
  -pc_hypre_boomeramg_grid_sweeps_up <1>: Number of sweeps for the up cycles 
(None)
  -pc_hypre_boomeramg_grid_sweeps_coarse <1>: Number of sweeps for the coarse 
level (None)
  -pc_hypre_boomeramg_relax_type_all <symmetric-SOR/Jacobi> (choose one of) 
Jacobi sequential-Gauss-Seidel seqboundary-Gauss-Seidel SOR/Jacobi 
backward-SOR/Jacobi  symmetric-SOR/Jacobi  l1scaled-SOR/Jacobi 
Gaussian-elimination      CG Chebyshev FCF-Jacobi l1scaled-Jacobi (None)
  -pc_hypre_boomeramg_relax_type_down <symmetric-SOR/Jacobi> (choose one of) 
Jacobi sequential-Gauss-Seidel seqboundary-Gauss-Seidel SOR/Jacobi 
backward-SOR/Jacobi  symmetric-SOR/Jacobi  l1scaled-SOR/Jacobi 
Gaussian-elimination      CG Chebyshev FCF-Jacobi l1scaled-Jacobi (None)
  -pc_hypre_boomeramg_relax_type_up <symmetric-SOR/Jacobi> (choose one of) 
Jacobi sequential-Gauss-Seidel seqboundary-Gauss-Seidel SOR/Jacobi 
backward-SOR/Jacobi  symmetric-SOR/Jacobi  l1scaled-SOR/Jacobi 
Gaussian-elimination      CG Chebyshev FCF-Jacobi l1scaled-Jacobi (None)
  -pc_hypre_boomeramg_relax_type_coarse <Gaussian-elimination> (choose one of) 
Jacobi sequential-Gauss-Seidel seqboundary-Gauss-Seidel SOR/Jacobi 
backward-SOR/Jacobi  symmetric-SOR/Jacobi  l1scaled-SOR/Jacobi 
Gaussian-elimination      CG Chebyshev FCF-Jacobi l1scaled-Jacobi (None)
  -pc_hypre_boomeramg_relax_weight_all <1>: Relaxation weight for all levels (0 
= hypre estimates, -k = determined with k CG steps) (None)
  -pc_hypre_boomeramg_relax_weight_level <1>: Set the relaxation weight for a 
particular level (weight,level) (None)
  -pc_hypre_boomeramg_outer_relax_weight_all <1>: Outer relaxation weight for 
all levels (-k = determined with k CG steps) (None)
  -pc_hypre_boomeramg_outer_relax_weight_level <1>: Set the outer relaxation 
weight for a particular level (weight,level) (None)
  -pc_hypre_boomeramg_no_CF: <FALSE> Do not use CF-relaxation (None)
  -pc_hypre_boomeramg_measure_type <local> (choose one of) local global (None)
  -pc_hypre_boomeramg_coarsen_type <Falgout> (choose one of) CLJP Ruge-Stueben  
modifiedRuge-Stueben   Falgout  PMIS  HMIS (None)
  -pc_hypre_boomeramg_interp_type <classical> (choose one of) classical   
direct multipass multipass-wts ext+i ext+i-cc standard standard-wts   FF FF1 
(None)
  -pc_hypre_boomeramg_print_statistics: Print statistics (None)
  -pc_hypre_boomeramg_print_debug: Print debug information (None)
  -pc_hypre_boomeramg_nodal_coarsen: <FALSE> HYPRE_BoomerAMGSetNodal() (None)
  -pc_hypre_boomeramg_nodal_relaxation: <FALSE> Nodal relaxation via Schwarz 
(None)
-pc_hypre_type boomeramg

--

Dr Eike Hermann Mueller
Lecturer in Scientific Computing

Department of Mathematical Sciences
University of Bath
Bath BA2 7AY, United Kingdom

+44 1225 38 6241
[email protected]<mailto:[email protected]>
http://people.bath.ac.uk/em459/





Reply via email to