Files
FESADev/src/fesa/solvers/linear/mkl_pardiso_solver.cpp
T

28 lines
665 B
C++

#include "fesa/solvers/linear/mkl_pardiso_solver.h"
#include <memory>
#include "solvers/linear/pardiso_session.h"
namespace fesa {
class MklPardisoSolver::Impl {
public:
pardiso_internal::PardisoSession session_{
pardiso_internal::PardisoMatrixPolicy::kSpdUpper};
};
MklPardisoSolver::MklPardisoSolver() : impl_{std::make_unique<Impl>()} {}
MklPardisoSolver::~MklPardisoSolver() = default;
Status MklPardisoSolver::Factorize(const SparseMatrix& matrix) {
return impl_->session_.Factorize(matrix);
}
Status MklPardisoSolver::Solve(const Vector& rhs, Vector& solution) const {
return impl_->session_.Solve(rhs, solution);
}
} // namespace fesa