escript::AbstractSystemMatrix Class Reference

Base class for escript system matrices. More...

`#include <AbstractSystemMatrix.h>`

Inheritance diagram for escript::AbstractSystemMatrix:

## Public Member Functions

| AbstractSystemMatrix ()
| Default constructor for AbstractSystemMatrix. More...
| AbstractSystemMatrix (int row_blocksize, const FunctionSpace &row_functionspace, int column_blocksize, const FunctionSpace &column_functionspace)
virtual | ~AbstractSystemMatrix ()
| Destructor. More...
ASM_ptr | getPtr ()
| Returns smart pointer which is managing this object. If one does not exist yet it creates one. More...
const_ASM_ptr | getPtr () const
| Returns smart pointer which is managing this object. If one does not exist yet it creates one. More...
Data | vectorMultiply (const Data &right) const
| returns the matrix-vector product this*right More...
bool | isEmpty () const
| returns true if the matrix is empty More...
FunctionSpace | getColumnFunctionSpace () const
| returns the column function space More...
FunctionSpace | getRowFunctionSpace () const
| returns the row function space More...
int | getRowBlockSize () const
| returns the row block size More...
int | getColumnBlockSize () const
| returns the column block size More...
Data | solve (const Data &in, boost::python::object &options) const
| returns the solution u of the linear system this*u=in More...
virtual void | nullifyRowsAndCols (Data &row_q, Data &col_q, double mdv)
| sets matrix entries to zero in specified rows and columns. The rows and columns are marked by positive values in row_q and col_q. Values on the main diagonal which are marked to set to zero by both row_q and col_q are set to mdv (main diagonal value). More...
virtual void | saveMM (const std::string &filename) const
| writes the matrix to a file using the Matrix Market file format More...
virtual void | saveHB (const std::string &filename) const
| writes the matrix to a file using the Harwell-Boeing file format More...
virtual void | resetValues (bool preserveSolverData=false)
| resets the matrix entries More...

## Private Member Functions

virtual void | setToSolution (Data &out, Data &in, boost::python::object &options) const
| solves the linear system this*out=in More...
virtual void | ypAx (Data &y, Data &x) const
| performs y+=this*x More...

## Private Attributes

bool | m_empty
int | m_column_blocksize
int | m_row_blocksize
FunctionSpace | m_row_functionspace
FunctionSpace | m_column_functionspace

## Detailed Description

Base class for escript system matrices.

## Constructor & Destructor Documentation

## AbstractSystemMatrix() [1/2]

escript::AbstractSystemMatrix::AbstractSystemMatrix | ( |  | ) |

inline

Default constructor for AbstractSystemMatrix.

## AbstractSystemMatrix() [2/2]

escript::AbstractSystemMatrix::AbstractSystemMatrix | ( | int | row_blocksize,
|  | const FunctionSpace & | row_functionspace,
|  | int | column_blocksize,
|  | const FunctionSpace & | column_functionspace
| ) |  |

## ~AbstractSystemMatrix()

virtual escript::AbstractSystemMatrix::~AbstractSystemMatrix | ( |  | ) |

inline virtual

Destructor.

## Member Function Documentation

## getColumnBlockSize()

int escript::AbstractSystemMatrix::getColumnBlockSize | ( |  | ) | const

inline

returns the column block size

Referenced by speckley::SpeckleyDomain::assembleComplexPDEDirac(), speckley::DefaultAssembler2D::assembleComplexPDESystem(), speckley::DefaultAssembler3D::assembleComplexPDESystem(), ripley::RipleyDomain::assemblePDE(), speckley::SpeckleyDomain::assemblePDE(), ripley::RipleyDomain::assemblePDEBoundary(), speckley::SpeckleyDomain::assemblePDEBoundary(), ripley::LameAssembler2D::assemblePDEBoundarySystem(), ripley::LameAssembler3D::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::RipleyDomain::assemblePDEDirac(), speckley::SpeckleyDomain::assemblePDEDirac(), ripley::LameAssembler2D::assemblePDESystem(), ripley::LameAssembler3D::assemblePDESystem(), ripley::WaveAssembler2D::assemblePDESystem(), ripley::WaveAssembler3D::assemblePDESystem(), speckley::WaveAssembler2D::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystem(), speckley::DefaultAssembler2D::assemblePDESystem(), speckley::DefaultAssembler3D::assemblePDESystem(), speckley::WaveAssembler3D::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystemReduced(), solve(), and vectorMultiply().

## getColumnFunctionSpace()

FunctionSpace escript::AbstractSystemMatrix::getColumnFunctionSpace | ( |  | ) | const

inline

returns the column function space

Referenced by solve(), and vectorMultiply().

## getPtr() [1/2]

ASM_ptr escript::AbstractSystemMatrix::getPtr | ( |  | ) |

Returns smart pointer which is managing this object. If one does not exist yet it creates one.

Referenced by dudley::DudleyDomain::addPDEToSystem(), and finley::FinleyDomain::addPDEToSystem().

## getPtr() [2/2]

const_ASM_ptr escript::AbstractSystemMatrix::getPtr | ( |  | ) | const

Returns smart pointer which is managing this object. If one does not exist yet it creates one.

## getRowBlockSize()

int escript::AbstractSystemMatrix::getRowBlockSize | ( |  | ) | const

inline

returns the row block size

Referenced by speckley::SpeckleyDomain::assembleComplexPDEDirac(), ripley::RipleyDomain::assemblePDE(), speckley::SpeckleyDomain::assemblePDE(), ripley::RipleyDomain::assemblePDEBoundary(), speckley::SpeckleyDomain::assemblePDEBoundary(), ripley::LameAssembler2D::assemblePDEBoundarySystem(), ripley::LameAssembler3D::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::RipleyDomain::assemblePDEDirac(), speckley::SpeckleyDomain::assemblePDEDirac(), ripley::LameAssembler2D::assemblePDESystem(), ripley::LameAssembler3D::assemblePDESystem(), ripley::WaveAssembler2D::assemblePDESystem(), ripley::WaveAssembler3D::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystemReduced(), ripley::SystemMatrix::getBlockSize(), solve(), and vectorMultiply().

## getRowFunctionSpace()

FunctionSpace escript::AbstractSystemMatrix::getRowFunctionSpace | ( |  | ) | const

inline

returns the row function space

Referenced by solve(), and vectorMultiply().

## isEmpty()

bool escript::AbstractSystemMatrix::isEmpty | ( |  | ) | const

inline

returns true if the matrix is empty

Referenced by BOOST_PYTHON_MODULE(), solve(), and vectorMultiply().

## nullifyRowsAndCols()

void escript::AbstractSystemMatrix::nullifyRowsAndCols | ( | Data & | row_q,
|  | Data & | col_q,
|  | double | mdv
| ) |  |

virtual

sets matrix entries to zero in specified rows and columns. The rows and columns are marked by positive values in row_q and col_q. Values on the main diagonal which are marked to set to zero by both row_q and col_q are set to mdv (main diagonal value).

Reimplemented in ripley::SystemMatrix, and paso::SystemMatrix< T >.

Referenced by BOOST_PYTHON_MODULE().

## resetValues()

void escript::AbstractSystemMatrix::resetValues | ( | bool | preserveSolverData = `false` | ) |

virtual

resets the matrix entries

Reimplemented in ripley::SystemMatrix, and paso::SystemMatrix< T >.

Referenced by BOOST_PYTHON_MODULE().

## saveHB()

void escript::AbstractSystemMatrix::saveHB | ( | const std::string & | filename | ) | const

virtual

writes the matrix to a file using the Harwell-Boeing file format

Reimplemented in ripley::SystemMatrix, and paso::SystemMatrix< T >.

Referenced by BOOST_PYTHON_MODULE().

## saveMM()

void escript::AbstractSystemMatrix::saveMM | ( | const std::string & | filename | ) | const

virtual

writes the matrix to a file using the Matrix Market file format

Reimplemented in ripley::SystemMatrix, and paso::SystemMatrix< T >.

Referenced by BOOST_PYTHON_MODULE().

## setToSolution()

void escript::AbstractSystemMatrix::setToSolution | ( | Data & | out,
|  | Data & | in,
|  | boost::python::object & | options
| ) |  | const

private virtual

solves the linear system this*out=in

Reimplemented in ripley::SystemMatrix, and paso::SystemMatrix< T >.

Referenced by solve().

## solve()

Data escript::AbstractSystemMatrix::solve | ( | const Data & | in,
|  | boost::python::object & | options
| ) |  | const

returns the solution u of the linear system this*u=in

References getColumnBlockSize(), getColumnFunctionSpace(), escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), getRowBlockSize(), getRowFunctionSpace(), escript::Data::isComplex(), isEmpty(), and setToSolution().

Referenced by BOOST_PYTHON_MODULE().

## vectorMultiply()

Data escript::AbstractSystemMatrix::vectorMultiply | ( | const Data & | right | ) | const

returns the matrix-vector product this*right

References getColumnBlockSize(), getColumnFunctionSpace(), escript::Data::getDataPointSize(), getRowBlockSize(), getRowFunctionSpace(), escript::Data::isComplex(), isEmpty(), and ypAx().

Referenced by BOOST_PYTHON_MODULE(), and escript::operator*().

## ypAx()

void escript::AbstractSystemMatrix::ypAx | ( | Data & | y,
|  | Data & | x
| ) |  | const

private virtual

performs y+=this*x

Reimplemented in ripley::SystemMatrix, and paso::SystemMatrix< T >.

Referenced by vectorMultiply().

## Member Data Documentation

## m_column_blocksize

int escript::AbstractSystemMatrix::m_column_blocksize

private

## m_column_functionspace

FunctionSpace escript::AbstractSystemMatrix::m_column_functionspace

private

## m_empty

bool escript::AbstractSystemMatrix::m_empty

private

## m_row_blocksize

int escript::AbstractSystemMatrix::m_row_blocksize

private

## m_row_functionspace

FunctionSpace escript::AbstractSystemMatrix::m_row_functionspace

private

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

- AbstractSystemMatrix.h
- AbstractSystemMatrix.cpp