SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
sparse_direct.cpp File Reference
#include "serif/backend/mfem/solver/preconditioner/inverse/sparse_direct.hpp"
#include <algorithm>
#include <cmath>
#include <mutex>
#include <vector>
#include "serif/backend/mfem/solver/preconditioner/inverse/validation.hpp"
#include "direct_lu.hpp"
Include dependency graph for sparse_direct.cpp:

Classes

struct  serif::solver::preconditioner::backend::mfem::SparseDirectCache::State
 

Namespaces

namespace  serif
 
namespace  serif::solver
 
namespace  serif::solver::preconditioner
 
namespace  serif::solver::preconditioner::backend
 
namespace  serif::solver::preconditioner::backend::mfem
 

Functions

std::string_view serif::solver::preconditioner::backend::mfem::sparse_direct_backend () noexcept
 The sparse LU backend compiled into this library (Meson option sparse_direct): "accelerate", "umfpack" or "none".
 
bool serif::solver::preconditioner::backend::mfem::sparse_direct_available () noexcept
 True when SparseDirect can be prepared on this machine; with "none", or Accelerate before macOS 15.5, it cannot.
 
std::expected< Inverse, Failure > serif::solver::preconditioner::backend::mfem::try_sparse_direct_inverse (std::shared_ptr< const ::mfem::SparseMatrix > matrix, const strategies::inverse::SparseDirect &options={}, SparseDirectCache *cache=nullptr)
 Factor a finalized square sparse matrix with a pivoted sparse LU; every application is one exact solve.