6#ifndef EIGENSPARSEJACOBIAN_H
7#define EIGENSPARSEJACOBIAN_H
10#include "cantera/numerics/eigen_sparse.h"
21 void reset()
override;
22 void setValue(
size_t row,
size_t col,
double value)
override;
28 Eigen::SparseMatrix<double>
jacobian();
31 Eigen::SparseMatrix<double>
matrix() {
Declarations for class SystemJacobian.
System Jacobians that use Eigen sparse matrices for storage.
Eigen::SparseMatrix< double > matrix()
Return the internal preconditioner matrix.
void setValue(size_t row, size_t col, double value) override
Set a value at the specified row and column of the jacobian triplet vector.
void initialize(size_t networkSize) override
Called during setup for any processes that need to be completed prior to setup functions used in sund...
vector< Eigen::Triplet< double > > m_jac_trips
Vector of triples representing the jacobian used in preconditioning.
Eigen::SparseMatrix< double > m_identity
Storage of appropriately sized identity matrix for making the preconditioner.
void printPreconditioner() override
Print preconditioner contents.
void updatePreconditioner() override
Transform Jacobian vector and write into preconditioner, P = (I - gamma * J)
void updateTransient(double rdt, int *mask) override
Update the diagonal terms in the Jacobian by using the transient mask .
void printJacobian()
Print jacobian contents.
void reset() override
Reset parameters as needed.
Eigen::SparseMatrix< double > m_matrix
Container that is the sparse preconditioner.
Abstract base class representing Jacobian matrices and preconditioners used in nonlinear solvers.
Eigen::SparseMatrix< double > jacobian()
Return underlying Jacobian matrix.
Namespace for the Cantera kernel.