Go to the documentation of this file.
18 #ifndef __ESCRIPT_ABSTRACTSYSTEMMATRIX_H__
19 #define __ESCRIPT_ABSTRACTSYSTEMMATRIX_H__
26 #include <boost/python/object.hpp>
32 class AbstractSystemMatrix;
51 AbstractSystemMatrix() : m_empty(true) {}
53 AbstractSystemMatrix(
int row_blocksize,
54 const FunctionSpace& row_functionspace,
56 const FunctionSpace& column_functionspace);
80 Data vectorMultiply(
const Data& right)
const;
86 bool isEmpty()
const {
return m_empty; }
92 inline FunctionSpace getColumnFunctionSpace()
const
95 throw SystemMatrixException(
"Error - Matrix is empty.");
96 return m_column_functionspace;
103 inline FunctionSpace getRowFunctionSpace()
const
107 return m_row_functionspace;
114 inline int getRowBlockSize()
const
118 return m_row_blocksize;
125 inline int getColumnBlockSize()
const
129 return m_column_blocksize;
136 Data solve(
const Data& in, boost::python::object& options)
const;
145 virtual void nullifyRowsAndCols(
Data& row_q,
Data& col_q,
double mdv);
151 virtual void saveMM(
const std::string& filename)
const;
156 virtual void saveHB(
const std::string& filename)
const;
161 virtual void resetValues(
bool preserveSolverData =
false);
169 virtual void setToSolution(
Data& out,
Data& in,
170 boost::python::object& options)
const;
176 virtual void ypAx(
Data& y,
Data& x)
const;
179 int m_column_blocksize;
186 Data
operator*(
const AbstractSystemMatrix& left,
const Data& right);
190 #endif // __ESCRIPT_ABSTRACTSYSTEMMATRIX_H__
virtual void saveMM(const std::string &filename) const
writes the matrix to a file using the Matrix Market file format
Definition: AbstractSystemMatrix.cpp:134
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:30
bool isComplex() const
True if components of this data are stored as complex.
Definition: Data.cpp:1160
#define POINTER_WRAPPER_CLASS(x)
Definition: Pointers.h:33
bool isEmpty() const
returns true if the matrix is empty
Definition: AbstractSystemMatrix.h:100
virtual void saveHB(const std::string &filename) const
writes the matrix to a file using the Harwell-Boeing file format
Definition: AbstractSystemMatrix.cpp:139
AbstractSystemMatrix()
Default constructor for AbstractSystemMatrix.
Definition: AbstractSystemMatrix.h:65
virtual void setToSolution(Data &out, Data &in, boost::python::object &options) const
solves the linear system this*out=in
Definition: AbstractSystemMatrix.cpp:121
boost::shared_ptr< const AbstractSystemMatrix > const_ASM_ptr
Definition: AbstractSystemMatrix.h:50
Data vectorMultiply(const Data &right) const
returns the matrix-vector product this*right
Definition: AbstractSystemMatrix.cpp:79
FunctionSpace getColumnFunctionSpace() const
returns the column function space
Definition: AbstractSystemMatrix.h:106
Definition: FunctionSpace.h:49
#define REFCOUNT_BASE_CLASS(x)
Definition: Pointers.h:31
virtual void resetValues(bool preserveSolverData=false)
resets the matrix entries
Definition: AbstractSystemMatrix.cpp:144
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 positiv...
Definition: AbstractSystemMatrix.cpp:127
Typedefs and macros for reference counted storage.
Data represents a collection of datapoints.
Definition: Data.h:64
ASM_ptr getPtr()
Returns smart pointer which is managing this object. If one does not exist yet it creates one.
Definition: AbstractSystemMatrix.cpp:56
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:71
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:57
Data solve(const Data &in, boost::python::object &options) const
returns the solution u of the linear system this*u=in
Definition: AbstractSystemMatrix.cpp:103
SystemMatrixException exception class.
Definition: SystemMatrixException.h:49
Data operator*(const AbstractSystemMatrix &left, const Data &right)
Definition: AbstractSystemMatrix.cpp:74
virtual void ypAx(Data &y, Data &x) const
performs y+=this*x
Definition: AbstractSystemMatrix.cpp:98
Definition: AbstractContinuousDomain.cpp:23
FunctionSpace getRowFunctionSpace() const
returns the row function space
Definition: AbstractSystemMatrix.h:117
boost::shared_ptr< AbstractSystemMatrix > ASM_ptr
Definition: AbstractSystemMatrix.h:47
std::complex< real_t > cplx_t
complex data type
Definition: DataTypes.h:82
int getRowBlockSize() const
returns the row block size
Definition: AbstractSystemMatrix.h:128
int getColumnBlockSize() const
returns the column block size
Definition: AbstractSystemMatrix.h:139