Open lindsayad opened 1 year ago
MatMultTranspose
would also be helpful. Probably would call it transpose_vec_mult
.
@zachmprince It's not the most intuitive interface in the world, but possibly NumericVector::add_vector_transpose
could work for your purposes.
/**
* Computes \f$ \vec{u} \leftarrow \vec{u} + A^T \vec{v} \f$,
* i.e. adds the product of the transpose of a \p SparseMatrix \p A
* and a \p NumericVector \p v to \p this.
*/
virtual void add_vector_transpose (const NumericVector<T> & v,
const SparseMatrix<T> & A) = 0;
Thank you @jwpeterson! This does work. I didn't expect this to be in the NumericVector
class.
idaholab/moose#24209 has to cast to a petsc matrix and then manually call the corresponding PETSc API. We should be able to abstract that in libMesh