***linear_solver
#
Description#
This keyword specifies the solver used to solve the linear system of equations involved in the global step of the Newton-Raphson algorithm. Both direct, iterative and hybrid direct/iterative (based on domain decomposition) solvers, working in shared or distributed memory parallelism, are implemented in Z-set.
Syntax#
***linear_solver
type
Where type is a solver type, which can take the following values.
Direct solvers:
mumps
is an interface to the well known MUltifrontal Massively Parallel Solver (
http://mumps.enseeiht.fr/
). It is based on a multifrontal algorithm. The current interface only uses the multithreading parallelism of MUMPS. This solver uses the BLAS optimized mathematical library working on full matrices. It seems that MUMPS provides the best (one-core) performance in terms of computational time and the worst in terms of memory consumption. This solver can be used for symmetric and unsymmetric systems. Depending on the system to be solved, MUMPS use a Crout or LU factorization.mumps
can solve semi-definite systems and compute associated kernel, and accepts multiple right-and-side. Somumps
(likedissection
) are preferred local solvers for domain decomposition methods. More information aboutmumps
can be found in section***linear_solver mumps
page (TODO).dmumps
is the new distributed interface to the MUMPS solver enabling distributed memory parallelism.
dissection
is an interface to the Dissection solver developed by François-Xavier Roux (Onera, Laboratoire Jacques-Louis Lions) and Atsushi Suzuki (Laboratoire Jacques-Louis Lions). It is based on a nested dissection algorithm. The Dissection Solver use two levels of shared memory parallelism. The first level is the multithreading of the optimized BLAS. The second one is controlled via pthreads, it drives the nested dissections. This solver can be used for symmetric and unsymmetric systems. For the moment, the resolution for unsymmetric matrices is not fully optimized, you may prefer
mumps
in those cases. Thanks to this two-level parallelism,dissection
provides a much better scalability More information aboutdissection
can be found in section***linear_solver dissection
page . Likemumps
,dissection
can solve semi-definite systems and compute associated kernel, and accepts multiple right-and-side. Sodissection
(likemumps
) are preferred local solvers for domain decomposition methods.
Domain decomposition based solvers:
dd_feti
is the latest implementation of the FETI (Finite Element Tearing and Interconnecting) domain decomposition method from Charbel Farhat and François-Xavier Roux, integrating the latest theoretical developments.
dd_mpfeti
is the implementation of the latest developments related to the Adaptive Multi-Preconditioned FETI algorithms. Those algorithms are based on the SFETI algorithm from Daniel J. Rixen et. al. which aims to improve the robustness of the FETI method on numerically difficult cases. Thus, the use of this algorithms is advised if you encouter some performance issues with the classical FETI algorithm.
The following table gives the main features associed to the previous solvers, where SMP and DMP stands for Shared Memory Parallelism and Distributed Memory Parallelism, respectively.
Keyword |
Type |
SMP |
DMP |
Kernel detection |
---|---|---|---|---|
|
Direct |
X |
X |
|
|
Direct |
X |
X |
|
|
Direct |
X |
X |
|
|
Iterative |
X |
||
|
Iterative |
X |