# Linear Solvers

Solvers for linear systems. More...

## Classes | |

class | concepts::BiCGStab< F, G > |

Solves a symmetric system of linear equations with BiConjugate Gradient Stabilized (BICGSTAB). More... | |

class | concepts::CG< F > |

Solves a symmetric system of linear equations with conjugate gradients (CG). More... | |

class | concepts::Constrained |

Solves a linear system of equations subject to linear constraints. More... | |

class | concepts::DiagonalSolver< F > |

A solver for diagonal matrices. More... | |

class | concepts::GMRes< F > |

Solves a system of linear equations with general minimal residuals (GMRes). More... | |

class | concepts::Mumps< F > |

MUMPS : MUltifrontal Massively Parallel sparse direct Solver. More... | |

class | concepts::MumpsOverlap< F > |

MUMPS : MUltifrontal Massively Parallel sparse direct Solver. More... | |

class | concepts::Pardiso |

Sparse direct solver for symmetric and unsymmetric matrices. More... | |

class | concepts::PETSc |

Interface to the iterative solvers of the PETSc library. More... | |

class | concepts::PrecondSolverFabric< F, G > |

Abstract fabric class for linear solvers with preconditoner. More... | |

class | concepts::SolverConjugate |

Solver for a complex system. More... | |

class | concepts::SolverFabric< F > |

Abstract fabric class for linear solvers. More... | |

class | concepts::SuperLU< F > |

Direct sparse solver for unsymmetric matrices. More... | |

class | concepts::Umfpack |

Sparse direct solver for unsymmetric matrices. More... | |

## Detailed Description

Solvers for linear systems.

All solvers which are just an interface to an external solver require that the respective software package is installed and that the library is correctly configured to use it.

## Iterative Solvers

concepts::CG is an implementation of the conjugate gradient method.

concepts::GMRes is an implementation of the general minimal residual method.

concepts::PETSc is an interface to PETSc (web links in the class description) featuring many different iterative solvers and preconditioners.

## Direct Solvers

concepts::SuperLU is an interface to SuperLU (web links in the class description), a sparse LU decomposition.

concepts::Pardiso is an interface to Pardiso (web links in the class description), a sparse decomposition (multithreaded if requested).

concepts::Umfpack is an interface to Umfpack (web links in the class description) using the unsymmetric multi-frontal method.

concepts::DiagonalSolver solves a diagonal linear system.

## Solver Fabrics

Most of the solvers have a respective fabric class derived from concepts::SolverFabric. The idea is that all parameters (like convergence criteria etc.) are given in the construction of the fabric and the solver itself is constructed by the fabric given the matrix. This construction call is the the same for all solvers as all parameters are known before.

## Constrained Problems

concepts::Constrained is a solver for a system with (non-homogenous) linear constraints. It modifies the stiffness matrix and the right hand side such that the constraints are fulfilled, then the modified system is solved with a given solver (via a concepts::SolverFabric).