20 #ifndef LIBMESH_EIGEN_SPARSE_MATRIX_H 21 #define LIBMESH_EIGEN_SPARSE_MATRIX_H 25 #ifdef LIBMESH_HAVE_EIGEN 41 template <
typename T>
class DenseMatrix;
94 virtual void init ()
override;
96 virtual void clear ()
override;
98 virtual void zero ()
override;
112 const T
value)
override;
116 const T
value)
override;
119 const std::vector<numeric_index_type> & rows,
120 const std::vector<numeric_index_type> & cols)
override;
123 const std::vector<numeric_index_type> & dof_indices)
override;
163 #endif // #ifdef LIBMESH_HAVE_EIGEN 164 #endif // #ifdef LIBMESH_EIGEN_SPARSE_MATRIX_H virtual void init() override
virtual void add(const numeric_index_type i, const numeric_index_type j, const T value) override
virtual numeric_index_type m() const override
virtual void close() override
Eigen::Triplet< T, eigen_idx_type > TripletType
virtual numeric_index_type row_stop() const override
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
const Parallel::Communicator & comm() const
EigenSparseMatrix & operator=(const EigenSparseMatrix &)=default
virtual ~EigenSparseMatrix()=default
virtual void get_transpose(SparseMatrix< T > &dest) const override
virtual void zero() override
virtual numeric_index_type n() const override
virtual bool closed() const override
virtual void get_diagonal(NumericVector< T > &dest) const override
dof_id_type numeric_index_type
EigenSparseMatrix(const Parallel::Communicator &comm)
Eigen::SparseMatrix< Number, Eigen::RowMajor, eigen_idx_type > EigenSM
virtual T operator()(const numeric_index_type i, const numeric_index_type j) const override
virtual numeric_index_type row_start() const override
virtual void print_personal(std::ostream &os=libMesh::out) const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real linfty_norm() const override
virtual void clear() override
virtual Real l1_norm() const override
A matrix object used for finite element assembly and numerics.
OStreamProxy out(std::cout)
void print(std::ostream &os=libMesh::out, const bool sparse=false) const
virtual void add_matrix(const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) override