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;
53 AbstractSystemMatrix(
int row_blocksize,
54 const FunctionSpace& row_functionspace,
80 Data vectorMultiply(
const Data& right)
const;
86 bool isEmpty()
const {
return m_empty; }
96 return m_column_functionspace;
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;
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:132
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:29
bool isComplex() const
True if components of this data are stored as complex.
Definition: Data.cpp:1164
#define POINTER_WRAPPER_CLASS(x)
Definition: Pointers.h:32
bool isEmpty() const
returns true if the matrix is empty
Definition: AbstractSystemMatrix.h:98
virtual void saveHB(const std::string &filename) const
writes the matrix to a file using the Harwell-Boeing file format
Definition: AbstractSystemMatrix.cpp:137
AbstractSystemMatrix()
Default constructor for AbstractSystemMatrix.
Definition: AbstractSystemMatrix.h:63
virtual void setToSolution(Data &out, Data &in, boost::python::object &options) const
solves the linear system this*out=in
Definition: AbstractSystemMatrix.cpp:119
boost::shared_ptr< const AbstractSystemMatrix > const_ASM_ptr
Definition: AbstractSystemMatrix.h:48
Data vectorMultiply(const Data &right) const
returns the matrix-vector product this*right
Definition: AbstractSystemMatrix.cpp:77
FunctionSpace getColumnFunctionSpace() const
returns the column function space
Definition: AbstractSystemMatrix.h:104
int getDataPointSize() const
Return the size of the data point. It is the product of the data point shape dimensions.
Definition: Data.cpp:1364
Definition: FunctionSpace.h:47
#define REFCOUNT_BASE_CLASS(x)
Definition: Pointers.h:30
virtual void resetValues(bool preserveSolverData=false)
resets the matrix entries
Definition: AbstractSystemMatrix.cpp:142
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:125
Typedefs and macros for reference counted storage.
Data represents a collection of datapoints.
Definition: Data.h:63
Definition: DataException.h:39
ASM_ptr getPtr()
Returns smart pointer which is managing this object. If one does not exist yet it creates one.
Definition: AbstractSystemMatrix.cpp:54
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:68
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:55
Data solve(const Data &in, boost::python::object &options) const
returns the solution u of the linear system this*u=in
Definition: AbstractSystemMatrix.cpp:101
SystemMatrixException exception class.
Definition: SystemMatrixException.h:47
Data operator*(const AbstractSystemMatrix &left, const Data &right)
Definition: AbstractSystemMatrix.cpp:72
virtual void ypAx(Data &y, Data &x) const
performs y+=this*x
Definition: AbstractSystemMatrix.cpp:96
Definition: AbstractContinuousDomain.cpp:23
FunctionSpace getRowFunctionSpace() const
returns the row function space
Definition: AbstractSystemMatrix.h:115
boost::shared_ptr< AbstractSystemMatrix > ASM_ptr
Definition: AbstractSystemMatrix.h:45
std::complex< real_t > cplx_t
complex data type
Definition: DataTypes.h:79
int getRowBlockSize() const
returns the row block size
Definition: AbstractSystemMatrix.h:126
int getColumnBlockSize() const
returns the column block size
Definition: AbstractSystemMatrix.h:137