# Linear System Solvers

The primary numerical operation inside Clarabel.jl is the solution of a symmetric quasidefinite linear system at each iteration. The solver currently supports three different solvers to perform factorization and forward/backward substitution on this system.

The linear solver can be configured in Settings using the `direct_solve_method`

field, e.g.

`settings = Solver.Settings(direct_solve_method = :qdldl)`

The solvers currently supported are

Symbol | Package | Description |
---|---|---|

:qdldl | QDLDL.jl | Default solver |

:mkl | Pardiso.jl | Intel MKL Pardiso |

:panua | Pardiso.jl | Panua Pardiso |

:ma57 | HSL.jl | HSL MA57 |

:cholmod | Julia native ldlt solver | SuiteSparse.CHOLMOD |

To use the Pardiso solvers you must install the respective libraries and the corresponding Julia wrapper. For more information about installing these, visit the Pardiso.jl repository page. You must also bring Pardiso into scope first (i.e. `using Pardiso`

) before solving. The same is true for the HSL MA57 solver, which requires the HSL library and the Julia wrapper [HSL.jl].

QDLDL is a single threaded solver written in pure Julia, and is generally adequate for problems of small to medium size.