|
escript Revision_
|
Base class for escript system matrices. More...
#include <AbstractSystemMatrix.h>
Public Member Functions | |
| AbstractSystemMatrix () | |
| Default constructor for AbstractSystemMatrix. | |
| AbstractSystemMatrix (int row_blocksize, const FunctionSpace &row_functionspace, int column_blocksize, const FunctionSpace &column_functionspace) | |
| virtual | ~AbstractSystemMatrix () |
| Destructor. | |
| ASM_ptr | getPtr () |
| Returns smart pointer which is managing this object. If one does not exist yet it creates one. | |
| const_ASM_ptr | getPtr () const |
| Returns smart pointer which is managing this object. If one does not exist yet it creates one. | |
| Data | vectorMultiply (const Data &right) const |
| returns the matrix-vector product this*right | |
| bool | isEmpty () const |
| returns true if the matrix is empty | |
| FunctionSpace | getColumnFunctionSpace () const |
| returns the column function space | |
| FunctionSpace | getRowFunctionSpace () const |
| returns the row function space | |
| int | getRowBlockSize () const |
| returns the row block size | |
| int | getColumnBlockSize () const |
| returns the column block size | |
| Data | solve (const Data &in, boost::python::object &options) const |
| returns the solution u of the linear system this*u=in | |
| 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). | |
| virtual void | saveMM (const std::string &filename) const |
| writes the matrix to a file using the Matrix Market file format | |
| virtual void | saveHB (const std::string &filename) const |
| writes the matrix to a file using the Harwell-Boeing file format | |
| virtual void | resetValues (bool preserveSolverData=false) |
| resets the matrix entries | |
Private Member Functions | |
| virtual void | setToSolution (Data &out, Data &in, boost::python::object &options) const |
| solves the linear system this*out=in | |
| virtual void | ypAx (Data &y, Data &x) const |
| performs y+=this*x | |
Private Attributes | |
| bool | m_empty |
| int | m_column_blocksize |
| int | m_row_blocksize |
| FunctionSpace | m_row_functionspace |
| FunctionSpace | m_column_functionspace |
Base class for escript system matrices.
|
inline |
Default constructor for AbstractSystemMatrix.
| escript::AbstractSystemMatrix::AbstractSystemMatrix | ( | int | row_blocksize, |
| const FunctionSpace & | row_functionspace, | ||
| int | column_blocksize, | ||
| const FunctionSpace & | column_functionspace | ||
| ) |
|
inlinevirtual |
Destructor.
|
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().
|
inline |
returns the column function space
Referenced by solve(), and vectorMultiply().
| 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().
| const_ASM_ptr escript::AbstractSystemMatrix::getPtr | ( | ) | const |
Returns smart pointer which is managing this object. If one does not exist yet it creates one.
|
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().
|
inline |
returns the row function space
Referenced by solve(), and vectorMultiply().
|
inline |
returns true if the matrix is empty
Referenced by BOOST_PYTHON_MODULE(), solve(), and vectorMultiply().
|
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 paso::SystemMatrix< T >, and ripley::SystemMatrix.
Referenced by BOOST_PYTHON_MODULE().
|
virtual |
resets the matrix entries
Reimplemented in paso::SystemMatrix< T >, and ripley::SystemMatrix.
Referenced by BOOST_PYTHON_MODULE().
|
virtual |
writes the matrix to a file using the Harwell-Boeing file format
Reimplemented in paso::SystemMatrix< T >, and ripley::SystemMatrix.
Referenced by BOOST_PYTHON_MODULE().
|
virtual |
writes the matrix to a file using the Matrix Market file format
Reimplemented in paso::SystemMatrix< T >, and ripley::SystemMatrix.
Referenced by BOOST_PYTHON_MODULE().
|
privatevirtual |
solves the linear system this*out=in
Reimplemented in paso::SystemMatrix< T >, and ripley::SystemMatrix.
Referenced by 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().
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*().
performs y+=this*x
Reimplemented in paso::SystemMatrix< T >, and ripley::SystemMatrix.
Referenced by vectorMultiply().
|
private |
|
private |
|
private |
|
private |
|
private |