7#include "cantera/numerics/eigen_dense.h"
18 if (m_solver.info() != Eigen::Success) {
19 throw CanteraError(
"EigenSparseDirectJacobian::factorize",
20 "error code: {}",
static_cast<int>(m_solver.info()));
26 MappedVector(x,
m_dim) = m_solver.solve(MappedVector(b,
m_dim));
28 if (m_solver.info() != Eigen::Success) {
30 "error code: {}",
static_cast<int>(m_solver.info()));
Base class for exceptions thrown by Cantera classes.
void solve(const size_t stateSize, double *rhs_vector, double *output) override
Solve a linear system using the system matrix M
void factorize() override
Factorize the system matrix.
Eigen::SparseMatrix< double > m_matrix
Container that is the sparse preconditioner.
size_t m_dim
Dimension of the system.
Namespace for the Cantera kernel.