PCAMGX — PETSc 3.23.0 documentation

Skip to main content
`Ctrl`+`K`

# PCAMGX

Interface to NVIDIA’s AmgX algebraic multigrid

## Options Database Keys

- -pc_amgx_amg_method <CLASSICAL,AGGREGATION> - set the AMG algorithm to use

- -pc_amgx_amg_cycle <V,W,F,CG> - set the AMG cycle type

- -pc_amgx_smoother <PCG,PCGF,PBICGSTAB,GMRES,FGMRES,JACOBI_L1,BLOCK_JACOBI,GS,MULTICOLOR_GS,MULTICOLOR_ILU,MULTICOLOR_DILU,CHEBYSHEV_POLY,NOSOLVER> - set the AMG pre/post smoother

- -pc_amgx_jacobi_relaxation_factor - set the relaxation factor for Jacobi smoothing

- -pc_amgx_gs_symmetric - enforce symmetric Gauss-Seidel smoothing (only applies if GS smoothing is selected)

- -pc_amgx_selector <SIZE_2,SIZE_4,SIZE_8,MULTI_PAIRWISE,PMIS,HMIS> - set the AMG coarse selector

- -pc_amgx_presweeps - set the number of AMG pre-sweeps

- -pc_amgx_postsweeps - set the number of AMG post-sweeps

- -pc_amgx_max_levels - set the maximum number of levels in the AMG level hierarchy

- -pc_amgx_strength_threshold - set the strength threshold for the AMG coarsening

- -pc_amgx_aggressive_levels - set the number of levels (from the finest) that should apply aggressive coarsening

- -pc_amgx_coarse_solver <DENSE_LU_SOLVER,NOSOLVER> - set the coarse solve

- -pc_amgx_print_grid_stats - output the AMG grid hierarchy to stdout

- -pc_amgx_verbose - enable AmgX output

## Note

Implementation will accept host or device pointers, but good performance will require that the `KSP` is also GPU accelerated so that data is not frequently transferred between host and device.

## See Also

KSP: Linear System Solvers, `PCGAMG`, `PCHYPRE`, `PCMG`, `PCAmgXGetResources()`, `PCCreate()`, `PCSetType()`, `PCType` (for list of available types), `PC`

## Level

intermediate

## Location

src/ksp/pc/impls/amgx/amgx.cxx

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages