Advanced Multi-Physics (AMP)
On-Line Documentation
NativePetscMatrixOperations.h
Go to the documentation of this file.
1#ifndef included_NativePetscMatrixOperations_H_
2#define included_NativePetscMatrixOperations_H_
3
4#include "AMP/matrices/operations/MatrixOperations.h"
5
6namespace AMP::LinearAlgebra {
7
9{
10
17 void mult( std::shared_ptr<const Vector> x,
18 MatrixData const &A,
19 std::shared_ptr<Vector> y ) override;
20
27 void multTranspose( std::shared_ptr<const Vector> in,
28 MatrixData const &A,
29 std::shared_ptr<Vector> out ) override;
30
36 void scale( AMP::Scalar alpha, MatrixData &A ) override;
37
41 void scale( AMP::Scalar, std::shared_ptr<const Vector>, MatrixData & ) override;
42
46 void scaleInv( AMP::Scalar, std::shared_ptr<const Vector>, MatrixData & ) override;
47
53 void matMatMult( std::shared_ptr<MatrixData> A,
54 std::shared_ptr<MatrixData> B,
55 std::shared_ptr<MatrixData> C ) override;
56
63 void axpy( AMP::Scalar alpha, const MatrixData &X, MatrixData &Y ) override;
64
69 void setScalar( AMP::Scalar alpha, MatrixData &A ) override;
70
74 void zero( MatrixData &A ) override;
75
80 void setDiagonal( std::shared_ptr<const Vector> in, MatrixData &A ) override;
81
86 void extractDiagonal( MatrixData const &A, std::shared_ptr<Vector> buf ) override;
87
90 void setIdentity( MatrixData &A ) override;
91
95 AMP::Scalar LinfNorm( const MatrixData &X ) const override;
96
102 void copy( const MatrixData &X, MatrixData &Y ) override;
103};
104
105} // namespace AMP::LinearAlgebra
106
107#endif
#define X(C)
void setScalar(AMP::Scalar alpha, MatrixData &A) override
Set the non-zeros of the matrix to a scalar.
void copy(const MatrixData &X, MatrixData &Y) override
Set Y matrix with the same non-zero and distributed structure as X and copy the coefficients.
void scaleInv(AMP::Scalar, std::shared_ptr< const Vector >, MatrixData &) override
Scale the matrix by a scalar and inverse of diagonal matrix.
void scale(AMP::Scalar, std::shared_ptr< const Vector >, MatrixData &) override
Scale the matrix by a scalar and diagonal matrix.
void scale(AMP::Scalar alpha, MatrixData &A) override
Scale the matrix by a scalar.
void zero(MatrixData &A) override
Set the non-zeros of the matrix to zero.
void setIdentity(MatrixData &A) override
Set the matrix to the identity matrix.
void mult(std::shared_ptr< const Vector > x, MatrixData const &A, std::shared_ptr< Vector > y) override
Matrix-vector multiplication.
void matMatMult(std::shared_ptr< MatrixData > A, std::shared_ptr< MatrixData > B, std::shared_ptr< MatrixData > C) override
Compute the product of two matrices.
void extractDiagonal(MatrixData const &A, std::shared_ptr< Vector > buf) override
Extract the diagonal values into a vector.
void multTranspose(std::shared_ptr< const Vector > in, MatrixData const &A, std::shared_ptr< Vector > out) override
Matrix transpose-vector multiplication.
void axpy(AMP::Scalar alpha, const MatrixData &X, MatrixData &Y) override
Compute the linear combination of two matrices.
AMP::Scalar LinfNorm(const MatrixData &X) const override
Compute the maximum row sum.
void setDiagonal(std::shared_ptr< const Vector > in, MatrixData &A) override
Set the diagonal to the values in a vector.
Scalar is a class used to store a scalar variable that may be different types/precision.
Definition Scalar.h:21



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:40.
Comments on this page