# PCPARMS
Allows the use of the parallel Algebraic Recursive Multilevel Solvers available in the package pARMS 
## Options Database Keys

- ***-pc_parms_global -*** one of ras, schur, bj
- ***-pc_parms_local -*** one of ilu0, iluk, ilut, arms
- ***-pc_parms_solve_tol -*** set the tolerance for local solve
- ***-pc_parms_levels -*** set the number of levels
- ***-pc_parms_nonsymmetric_perm -*** set the use of nonsymmetric permutation
- ***-pc_parms_blocksize -*** set the block size
- ***-pc_parms_ind_tol -*** set the tolerance for independent sets
- ***-pc_parms_max_dim -*** set the inner krylov dimension
- ***-pc_parms_max_it -*** set the maximum number of inner iterations
- ***-pc_parms_inter_nonsymmetric_perm -*** set the use of nonsymmetric permutation for interlevel blocks
- ***-pc_parms_inter_column_perm -*** set the use of column permutation for interlevel blocks
- ***-pc_parms_inter_row_scaling -*** set the use of row scaling for interlevel blocks
- ***-pc_parms_inter_column_scaling -*** set the use of column scaling for interlevel blocks
- ***-pc_parms_last_nonsymmetric_perm -*** set the use of nonsymmetric permutation for last level blocks
- ***-pc_parms_last_column_perm -*** set the use of column permutation for last level blocks
- ***-pc_parms_last_row_scaling -*** set the use of row scaling for last level blocks
- ***-pc_parms_last_column_scaling -*** set the use of column scaling for last level blocks
- ***-pc_parms_lfil_ilu_arms -*** set the amount of fill-in for ilut, iluk and arms
- ***-pc_parms_lfil_schur -*** set the amount of fill-in for schur
- ***-pc_parms_lfil_ilut_L_U -*** set the amount of fill-in for ILUT L and U
- ***-pc_parms_droptol_factors -*** set the drop tolerance for L, U, L^{-1}F and EU^{-1}
- ***-pc_parms_droptol_schur_compl -*** set the drop tolerance for schur complement at each level
- ***-pc_parms_droptol_last_schur -*** set the drop tolerance for ILUT in last level schur complement



## Note
Unless configured appropriately, this preconditioner performs an inexact solve
as part of the preconditioner application. Therefore, it must be used in combination
with flexible variants of iterative solvers, such as `KSPFGMRES` or `KSPGCR`.




## See Also
 `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCMG`, `PCGAMG`, `PCHYPRE`, `PCPARMSSetGlobal()`,
`PCPARMSSetLocal()`, `PCPARMSSetSolveTolerances()`, `PCPARMSSetSolveRestart()`, `PCPARMSSetNonsymPerm()`,
`PCPARMSSetFill()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/parms/parms.c.html#PCPARMS">src/ksp/pc/impls/parms/parms.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/parms/parms.c)


[Index of all PC routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
