escript
Revision_
|
Base class for escript system matrices. More...
#include <AbstractSystemMatrix.h>
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 |
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::assemblePDE(), ripley::RipleyDomain::assemblePDE(), speckley::SpeckleyDomain::assemblePDEBoundary(), ripley::RipleyDomain::assemblePDEBoundary(), ripley::LameAssembler2D::assemblePDEBoundarySystem(), ripley::LameAssembler3D::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystemReduced(), speckley::SpeckleyDomain::assemblePDEDirac(), ripley::RipleyDomain::assemblePDEDirac(), ripley::WaveAssembler2D::assemblePDESystem(), ripley::WaveAssembler3D::assemblePDESystem(), ripley::LameAssembler3D::assemblePDESystem(), ripley::LameAssembler2D::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystem(), speckley::DefaultAssembler2D::assemblePDESystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystem(), speckley::DefaultAssembler3D::assemblePDESystem(), speckley::WaveAssembler2D::assemblePDESystem(), speckley::WaveAssembler3D::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystemReduced(), paso::SystemMatrix::nullifyRowsAndCols(), paso::SystemMatrix::setToSolution(), solve(), vectorMultiply(), and paso::SystemMatrix::ypAx().
|
inline |
returns the column function space
Referenced by paso::SystemMatrix::nullifyRowsAndCols(), paso::SystemMatrix::setToSolution(), solve(), vectorMultiply(), and paso::SystemMatrix::ypAx().
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(), finley::FinleyDomain::addPDEToSystem(), paso::SystemMatrix::setPreconditioner(), paso::SystemMatrix::solve(), and paso::SystemMatrix::solvePreconditioner().
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::assemblePDE(), ripley::RipleyDomain::assemblePDE(), speckley::SpeckleyDomain::assemblePDEBoundary(), ripley::RipleyDomain::assemblePDEBoundary(), ripley::LameAssembler2D::assemblePDEBoundarySystem(), ripley::LameAssembler3D::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystemReduced(), speckley::SpeckleyDomain::assemblePDEDirac(), ripley::RipleyDomain::assemblePDEDirac(), ripley::WaveAssembler3D::assemblePDESystem(), ripley::WaveAssembler2D::assemblePDESystem(), ripley::LameAssembler2D::assemblePDESystem(), ripley::LameAssembler3D::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystemReduced(), paso::SystemMatrix::nullifyRowsAndCols(), paso::SystemMatrix::setToSolution(), solve(), vectorMultiply(), and paso::SystemMatrix::ypAx().
|
inline |
returns the row function space
Referenced by paso::SystemMatrix::nullifyRowsAndCols(), paso::SystemMatrix::setToSolution(), solve(), vectorMultiply(), and paso::SystemMatrix::ypAx().
|
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, and ripley::SystemMatrix.
Referenced by BOOST_PYTHON_MODULE().
|
virtual |
resets the matrix entries
Reimplemented in paso::SystemMatrix, 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, 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, and ripley::SystemMatrix.
Referenced by BOOST_PYTHON_MODULE().
|
privatevirtual |
solves the linear system this*out=in
Reimplemented in paso::SystemMatrix, 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, and ripley::SystemMatrix.
Referenced by vectorMultiply().
|
private |
|
private |
|
private |
|
private |
|
private |