20 #ifndef LIBMESH_SPARSE_SHELL_MATRIX_H
21 #define LIBMESH_SPARSE_SHELL_MATRIX_H
25 #include "libmesh/libmesh_common.h"
26 #include "libmesh/reference_counted_object.h"
27 #include "libmesh/libmesh.h"
28 #include "libmesh/shell_matrix.h"
29 #include "libmesh/sparse_matrix.h"
106 template <
typename T>
115 template <
typename T>
122 template <
typename T>
131 template <
typename T>
140 template <
typename T>
144 _m.get_diagonal(dest);
151 #endif // LIBMESH_SPARSE_SHELL_MATRIX_H
virtual void vector_mult(NumericVector< T > &dest, const NumericVector< T > &arg) const override
将矩阵与参数arg相乘,并将结果存储在dest中。
virtual numeric_index_type n() const override
获取矩阵的列维度。
这是一个通用的稀疏矩阵类。该类包含了必须在派生类中覆盖的纯虚拟成员。 使用一个公共的基类允许从不同的求解器包中以不同的格式统一访问稀疏矩阵。
dof_id_type numeric_index_type
const SparseMatrix< T > & _m
稀疏矩阵。
virtual void vector_mult_add(NumericVector< T > &dest, const NumericVector< T > &arg) const override
将矩阵与参数arg相乘,然后将结果添加到dest中。
SparseShellMatrix(const SparseMatrix< T > &new_m)
Constructor; 接受稀疏矩阵的引用。稀疏矩阵本身必须在其他地方存储。
允许将任何SparseMatrix对象用作壳矩阵的类。
virtual ~SparseShellMatrix()
Destructor(析构函数)。
通用的Shell矩阵,即一个仅定义其对向量的作用的矩阵。此类包含必须在派生类中重写的纯虚拟成员。
virtual numeric_index_type m() const override
获取矩阵的行维度。
virtual void get_diagonal(NumericVector< T > &dest) const override
将矩阵的对角部分复制到dest中。