MFEM  v3.1
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | List of all members
mfem::AbstractSparseMatrix Class Referenceabstract

Abstract data type for sparse matrices. More...

#include <matrix.hpp>

Inheritance diagram for mfem::AbstractSparseMatrix:
[legend]
Collaboration diagram for mfem::AbstractSparseMatrix:
[legend]

Public Member Functions

 AbstractSparseMatrix (int s=0)
 Creates a square matrix of the given size. More...
 
 AbstractSparseMatrix (int h, int w)
 Creates a matrix of the given height and width. More...
 
virtual int NumNonZeroElems () const =0
 Returns the number of non-zeros in a matrix. More...
 
virtual int GetRow (const int row, Array< int > &cols, Vector &srow) const =0
 
virtual void EliminateZeroRows ()=0
 
virtual void Mult (const Vector &x, Vector &y) const =0
 Matrix-Vector Multiplication y = A*x. More...
 
virtual void AddMult (const Vector &x, Vector &y, const double val=1.) const =0
 Matrix-Vector Multiplication y = y + val*A*x. More...
 
virtual void MultTranspose (const Vector &x, Vector &y) const =0
 MatrixTranspose-Vector Multiplication y = A'*x. More...
 
virtual void AddMultTranspose (const Vector &x, Vector &y, const double val=1.) const =0
 MatrixTranspose-Vector Multiplication y = y + val*A'*x. More...
 
virtual ~AbstractSparseMatrix ()
 Destroys AbstractSparseMatrix. More...
 
- Public Member Functions inherited from mfem::Matrix
 Matrix (int s)
 Creates a square matrix of size s. More...
 
 Matrix (int h, int w)
 Creates a matrix of the given height and width. More...
 
virtual double & Elem (int i, int j)=0
 Returns reference to a_{ij}. More...
 
virtual const double & Elem (int i, int j) const =0
 Returns constant reference to a_{ij}. More...
 
virtual MatrixInverseInverse () const =0
 Returns a pointer to (an approximation) of the matrix inverse. More...
 
virtual void Finalize (int)
 Finalizes the matrix initialization. More...
 
virtual void Print (std::ostream &out=std::cout, int width_=4) const
 Prints matrix to stream out. More...
 
virtual ~Matrix ()
 Destroys matrix. More...
 
- Public Member Functions inherited from mfem::Operator
 Operator (int s=0)
 Construct a square Operator with given size s (default 0) More...
 
 Operator (int h, int w)
 
int Height () const
 Get the height (size of output) of the Operator. Synonym with NumRows. More...
 
int NumRows () const
 
int Width () const
 Get the width (size of input) of the Operator. Synonym with NumCols. More...
 
int NumCols () const
 
virtual OperatorGetGradient (const Vector &x) const
 Evaluate the gradient operator at the point x. More...
 
void PrintMatlab (std::ostream &out, int n=0, int m=0)
 Prints operator with input size n and output size m in matlab format. More...
 
virtual ~Operator ()
 

Additional Inherited Members

- Protected Attributes inherited from mfem::Operator
int height
 
int width
 

Detailed Description

Abstract data type for sparse matrices.

Definition at line 69 of file matrix.hpp.

Constructor & Destructor Documentation

mfem::AbstractSparseMatrix::AbstractSparseMatrix ( int  s = 0)
inlineexplicit

Creates a square matrix of the given size.

Definition at line 73 of file matrix.hpp.

mfem::AbstractSparseMatrix::AbstractSparseMatrix ( int  h,
int  w 
)
inlineexplicit

Creates a matrix of the given height and width.

Definition at line 76 of file matrix.hpp.

virtual mfem::AbstractSparseMatrix::~AbstractSparseMatrix ( )
inlinevirtual

Destroys AbstractSparseMatrix.

Definition at line 105 of file matrix.hpp.

Member Function Documentation

virtual void mfem::AbstractSparseMatrix::AddMult ( const Vector x,
Vector y,
const double  val = 1. 
) const
pure virtual

Matrix-Vector Multiplication y = y + val*A*x.

Implemented in mfem::SparseMatrix, and mfem::BlockMatrix.

virtual void mfem::AbstractSparseMatrix::AddMultTranspose ( const Vector x,
Vector y,
const double  val = 1. 
) const
pure virtual

MatrixTranspose-Vector Multiplication y = y + val*A'*x.

Implemented in mfem::SparseMatrix, and mfem::BlockMatrix.

virtual void mfem::AbstractSparseMatrix::EliminateZeroRows ( )
pure virtual

If the matrix is square, it will place 1 on the diagonal (i,i) if row i has "almost" zero l1-norm. If entry (i,i) does not belong to the sparsity pattern of A, then an error will occur.

Implemented in mfem::SparseMatrix, and mfem::BlockMatrix.

virtual int mfem::AbstractSparseMatrix::GetRow ( const int  row,
Array< int > &  cols,
Vector srow 
) const
pure virtual

Gets the columns indexes and values for row row. Returns: 0 if cols and srow are copies of the values in the matrix. 1 if cols and srow are views of the values in the matrix.

Implemented in mfem::SparseMatrix, and mfem::BlockMatrix.

virtual void mfem::AbstractSparseMatrix::Mult ( const Vector x,
Vector y 
) const
pure virtual

Matrix-Vector Multiplication y = A*x.

Implements mfem::Operator.

Implemented in mfem::SparseMatrix, and mfem::BlockMatrix.

virtual void mfem::AbstractSparseMatrix::MultTranspose ( const Vector x,
Vector y 
) const
pure virtual

MatrixTranspose-Vector Multiplication y = A'*x.

Reimplemented from mfem::Operator.

Implemented in mfem::SparseMatrix, and mfem::BlockMatrix.

virtual int mfem::AbstractSparseMatrix::NumNonZeroElems ( ) const
pure virtual

Returns the number of non-zeros in a matrix.

Implemented in mfem::SparseMatrix, and mfem::BlockMatrix.


The documentation for this class was generated from the following file: