# MATSOLVERMKL_CPARDISO
A matrix type providing direct solvers (LU) for parallel matrices via the external package MKL_CPARDISO. Works with `MATMPIAIJ` matrices

Use -pc_type lu -pc_factor_mat_solver_type mkl_cpardiso to use this direct solver


## Options Database Keys

- ***-mat_mkl_cpardiso_65 -*** Suggested number of threads to use within MKL_CPARDISO
- ***-mat_mkl_cpardiso_66 -*** Maximum number of factors with identical sparsity structure that must be kept in memory at the same time
- ***-mat_mkl_cpardiso_67 -*** Indicates the actual matrix for the solution phase
- ***-mat_mkl_cpardiso_68 -*** Message level information, use 1 to get detailed information on the solver options
- ***-mat_mkl_cpardiso_69 -*** Defines the matrix type. IMPORTANT: When you set this flag, iparm parameters are going to be set to the default ones for the matrix type
- ***-mat_mkl_cpardiso_1  -*** Use default values
- ***-mat_mkl_cpardiso_2  -*** Fill-in reducing ordering for the input matrix
- ***-mat_mkl_cpardiso_4  -*** Preconditioned CGS/CG
- ***-mat_mkl_cpardiso_5  -*** User permutation
- ***-mat_mkl_cpardiso_6  -*** Write solution on x
- ***-mat_mkl_cpardiso_8  -*** Iterative refinement step
- ***-mat_mkl_cpardiso_10 -*** Pivoting perturbation
- ***-mat_mkl_cpardiso_11 -*** Scaling vectors
- ***-mat_mkl_cpardiso_12 -*** Solve with transposed or conjugate transposed matrix A
- ***-mat_mkl_cpardiso_13 -*** Improved accuracy using (non-) symmetric weighted matching
- ***-mat_mkl_cpardiso_18 -*** Numbers of non-zero elements
- ***-mat_mkl_cpardiso_19 -*** Report number of floating point operations
- ***-mat_mkl_cpardiso_21 -*** Pivoting for symmetric indefinite matrices
- ***-mat_mkl_cpardiso_24 -*** Parallel factorization control
- ***-mat_mkl_cpardiso_25 -*** Parallel forward/backward solve control
- ***-mat_mkl_cpardiso_27 -*** Matrix checker
- ***-mat_mkl_cpardiso_31 -*** Partial solve and computing selected components of the solution vectors
- ***-mat_mkl_cpardiso_34 -*** Optimal number of threads for conditional numerical reproducibility (CNR) mode
- ***-mat_mkl_cpardiso_60 -*** Intel MKL_CPARDISO mode





## Notes
Use -mat_mkl_cpardiso_68 1 to display the number of threads the solver is using. MKL does not provide a way to directly access this
information.

For more information on the options check the MKL_CPARDISO manual


## See Also
 `PCFactorSetMatSolverType()`, `MatSolverType`, `MatMkl_CPardisoSetCntl()`, `MatGetFactor()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/impls/aij/mpi/mkl_cpardiso/mkl_cpardiso.c.html#MATSOLVERMKL_CPARDISO">src/mat/impls/aij/mpi/mkl_cpardiso/mkl_cpardiso.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/aij/mpi/mkl_cpardiso/mkl_cpardiso.c)


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