18 #ifndef GEOS_LINEARALGEBRA_NORMALOPERATOR_HPP_
19 #define GEOS_LINEARALGEBRA_NORMALOPERATOR_HPP_
30 template<
typename LAI >
66 m_matrix.gemv( 1.0, src, 0.0, dst,
false );
67 m_matrix.gemv( 1.0, dst, 0.0, dst,
true );
75 return m_matrix.numGlobalCols();
83 return m_matrix.numGlobalCols();
91 return m_matrix.numLocalCols();
99 return m_matrix.numLocalCols();
107 return m_matrix.comm();
Abstract base class for linear operators.
VECTOR Vector
Alias for template parameter.
Wraps a matrix A and represents A^T * A as a linear operator.
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
typename Base::Vector Vector
Alias for vector type.
virtual ~NormalOperator() override=default
Destructor.
NormalOperator(Matrix const &mat)
Constructor.
void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector.
localIndex numLocalCols() const override
MPI_Comm comm() const override
localIndex numLocalRows() const override
globalIndex numGlobalCols() const override
globalIndex numGlobalRows() const override
GEOSX_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
LAInterface::ParallelMatrix ParallelMatrix
Alias for ParallelMatrix.
GEOSX_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).