21 #include "libmesh/tensor_shell_matrix.h" 31 dest.
scale(_w.dot(arg));
40 dest.
add(_w.dot(arg),_v);
virtual void vector_mult_add(NumericVector< T > &dest, const NumericVector< T > &arg) const override
Multiplies the matrix with arg and adds the result to dest.
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
The libMesh namespace provides an interface to certain functionality in the library.
virtual void get_diagonal(NumericVector< T > &dest) const override
Copies the diagonal part of the matrix into dest.
virtual void scale(const T factor)=0
Scale each element of the vector by the given factor.
Shell matrix that is given by a tensor product of two vectors, i.e.
virtual void pointwise_mult(const NumericVector< T > &vec1, const NumericVector< T > &vec2)=0
Computes (summation not implied) i.e.
virtual void vector_mult(NumericVector< T > &dest, const NumericVector< T > &arg) const override
Multiplies the matrix with arg and stores the result in dest.
virtual void add(const numeric_index_type i, const T value)=0
Adds value to the vector entry specified by i.