1#ifndef included_AMP_ManagedEpetraMatrix
2#define included_AMP_ManagedEpetraMatrix
6#include "AMP/discretization/DOF_Manager.h"
7#include "AMP/matrices/Matrix.h"
8#include "AMP/matrices/MatrixParameters.h"
12#include "Epetra_CrsMatrix.h"
13#include "Epetra_FECrsMatrix.h"
14#include <EpetraExt_Transpose_RowMatrix.h>
40 std::string
type()
const override {
return "ManagedEpetraMatrix"; }
70 std::shared_ptr<Matrix>
clone()
const override;
A class that wraps an Epetra_CrsMatrix.
virtual ~ManagedEpetraMatrix()
Destructor.
std::string type() const override
Return the type of the matrix.
ManagedEpetraMatrix()=delete
Empty constructor.
void multiply(shared_ptr other_op, shared_ptr &result) override
Multiply two matrices and store in a third result = this * other_op.
Vector::shared_ptr extractDiagonal(Vector::shared_ptr buf=Vector::shared_ptr()) const override
Extract the diagonal from a matrix.
ManagedEpetraMatrix(Epetra_CrsMatrix *m, bool dele=false)
Constructor from Epetra_CrsMatrix.
ManagedEpetraMatrix(std::shared_ptr< MatrixParameters > p)
Constructor.
Vector::shared_ptr createInputVector() const override
Get a right vector ( For , is a right vector )
std::shared_ptr< Matrix > clone() const override
Return a matrix with the same non-zero and distributed structure.
std::shared_ptr< Matrix > transpose() const override
Return a new matrix that is the transpose of this one.
ManagedEpetraMatrix & operator=(const ManagedEpetraMatrix &rhs)=delete
Assignment operator.
ManagedEpetraMatrix(const ManagedEpetraMatrix &rhs)
Copy constructor.
const Epetra_CrsMatrix & getEpetra_CrsMatrix() const
Return an Epetra_CrsMatrix.
Epetra_CrsMatrix & getEpetra_CrsMatrix()
ManagedEpetraMatrix(std::shared_ptr< MatrixData > data)
Vector::shared_ptr createOutputVector() const override
Get a left vector ( For , is a left vector )
An abstract interface for using and manipulating matrices.
std::shared_ptr< Matrix > shared_ptr
Convenience typedef.
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
#define DISABLE_WARNINGS
Re-enable warnings.
#define ENABLE_WARNINGS
Suppress all warnings.