MyraMath
MyraMath

MyraMath ("mee-rah-math") is a C++ math library of thread-parallel sparse direct solvers intended for finite element modeling. In addition to the usual (i) reordering, (ii) factorization, (iii) dense backsolution, and (iv) iterative refinement routines, the solvers in MyraMath also provide support for (v) calculating Schur complements, (vi) finding specific entries of the inverse of a sparse matrix (vii) sparsity exploiting backsolution. Such calculations often arise in substructuring methods, mixed methods, and constrained optimization.

Like most numerical linear algebra packages, MyraMath depends upon LAPACK and the BLAS for portable performance. If you don't have access to a vendor blas, MyraKL is a suitable open-source replacement.