20 #ifndef LIBMESH_TENSOR_SHELL_MATRIX_H
21 #define LIBMESH_TENSOR_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/numeric_vector.h"
111 template <
typename T>
122 template <
typename T>
129 template <
typename T>
138 template <
typename T>
149 #endif // LIBMESH_TENSOR_SHELL_MATRIX_H
virtual numeric_index_type m() const override
获取矩阵的行维度。
const NumericVector< T > & _w
行向量。
virtual void vector_mult_add(NumericVector< T > &dest, const NumericVector< T > &arg) const override
将矩阵与参数arg相乘,然后将结果添加到dest中。
virtual void get_diagonal(NumericVector< T > &dest) const override
将矩阵的对角部分复制到dest中。
virtual ~TensorShellMatrix()
Destructor(析构函数)。
由两个向量的张量积构成的壳矩阵,即A = v*w^T。
dof_id_type numeric_index_type
TensorShellMatrix(const NumericVector< T > &v, const NumericVector< T > &w)
Constructor; 以两个向量的引用作为参数进行初始化。向量本身必须存储在其他地方。
virtual void vector_mult(NumericVector< T > &dest, const NumericVector< T > &arg) const override
将矩阵与参数arg相乘,并将结果存储在dest中。
virtual numeric_index_type n() const override
获取矩阵的列维度。
const NumericVector< T > & _v
列向量。
通用的Shell矩阵,即一个仅定义其对向量的作用的矩阵。此类包含必须在派生类中重写的纯虚拟成员。