#pragma once #include "fesa/solvers/linear/linear_solver.hpp" #include namespace fesa { // Keeps every oneMKL type and the retained factorization in the private Impl. class MklPardisoSolver final : public LinearSolver { public: MklPardisoSolver(); ~MklPardisoSolver() override; Status factorize(const SparseMatrix& matrix) override; Status solve(const Vector& rhs, Vector& solution) const override; private: class Impl; std::unique_ptr impl_; }; } // namespace fesa