\doxysection{src/lib/serif/backend/mfem/solver/preconditioner/inverse/sparse\+\_\+direct.cpp File Reference} \hypertarget{sparse__direct_8cpp}{}\label{sparse__direct_8cpp}\index{src/lib/serif/backend/mfem/solver/preconditioner/inverse/sparse\_direct.cpp@{src/lib/serif/backend/mfem/solver/preconditioner/inverse/sparse\_direct.cpp}} {\ttfamily \#include "{}serif/backend/mfem/solver/preconditioner/inverse/sparse\+\_\+direct.\+hpp"{}}\newline {\ttfamily \#include $<$algorithm$>$}\newline {\ttfamily \#include $<$cmath$>$}\newline {\ttfamily \#include $<$mutex$>$}\newline {\ttfamily \#include $<$vector$>$}\newline {\ttfamily \#include "{}serif/backend/mfem/solver/preconditioner/inverse/validation.\+hpp"{}}\newline {\ttfamily \#include "{}direct\+\_\+lu.\+hpp"{}}\newline Include dependency graph for sparse\+\_\+direct.\+cpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{sparse__direct_8cpp__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1backend_1_1mfem_1_1_sparse_direct_cache_1_1_state}{serif\+::solver\+::preconditioner\+::backend\+::mfem\+::\+Sparse\+Direct\+Cache\+::\+State}} \end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver}{serif\+::solver}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner}{serif\+::solver\+::preconditioner}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1backend}{serif\+::solver\+::preconditioner\+::backend}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1backend_1_1mfem}{serif\+::solver\+::preconditioner\+::backend\+::mfem}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item std\+::string\+\_\+view \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1backend_1_1mfem_abd9cbc3a35fa6cc1efd694a6b04bf8b9}{serif\+::solver\+::preconditioner\+::backend\+::mfem\+::sparse\+\_\+direct\+\_\+backend}} () noexcept \begin{DoxyCompactList}\small\item\em The sparse LU backend compiled into this library (Meson option sparse\+\_\+direct)\+: "{}accelerate"{}, "{}umfpack"{} or "{}none"{}. \end{DoxyCompactList}\item bool \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1backend_1_1mfem_a583100bb77dc7a7daf75cb783efe3bba}{serif\+::solver\+::preconditioner\+::backend\+::mfem\+::sparse\+\_\+direct\+\_\+available}} () noexcept \begin{DoxyCompactList}\small\item\em True when Sparse\+Direct can be prepared on this machine; with "{}none"{}, or Accelerate before mac\+OS 15.\+5, it cannot. \end{DoxyCompactList}\item std\+::expected$<$ \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1backend_1_1mfem_1_1_inverse}{Inverse}}, \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_failure}{Failure}} $>$ \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1backend_1_1mfem_a2cf27343aba87fc167edd2f5bac2d79b}{serif\+::solver\+::preconditioner\+::backend\+::mfem\+::try\+\_\+sparse\+\_\+direct\+\_\+inverse}} (std\+::shared\+\_\+ptr$<$ const \+::mfem\+::\+Sparse\+Matrix $>$ matrix, const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_sparse_direct}{strategies\+::inverse\+::\+Sparse\+Direct}} \&options=\{\}, \mbox{\hyperlink{classserif_1_1solver_1_1preconditioner_1_1backend_1_1mfem_1_1_sparse_direct_cache}{Sparse\+Direct\+Cache}} \texorpdfstring{$\ast$}{*}cache=nullptr) \begin{DoxyCompactList}\small\item\em Factor a finalized square sparse matrix with a pivoted sparse LU; every application is one exact solve. \end{DoxyCompactList}\end{DoxyCompactItemize}