18 #ifndef __RIPLEY_SYSTEMMATRIX_H__
19 #define __RIPLEY_SYSTEMMATRIX_H__
21 #include <escript/AbstractSystemMatrix.h>
22 #include <escript/FunctionSpace.h>
24 #include <ripley/Ripley.h>
30 #include <cusp/cds_matrix.h>
52 virtual void saveMM(
const std::string& filename)
const;
54 virtual void saveHB(
const std::string& filename)
const;
63 template<
class LinearOperator,
class Vector,
class Preconditioner>
71 boost::python::object& options)
const;
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:44
int getRowBlockSize() const
returns the row block size
Definition: AbstractSystemMatrix.h:114
Data represents a collection of datapoints.
Definition: Data.h:64
Definition: FunctionSpace.h:36
Definition: SolverOptions.h:161
Definition: RipleySystemMatrix.h:40
bool matrixAltered
Definition: RipleySystemMatrix.h:83
virtual void saveHB(const std::string &filename) const
writes the matrix to a file using the Harwell-Boeing file format
escript::JMPI m_mpiInfo
Definition: RipleySystemMatrix.h:80
virtual void saveMM(const std::string &filename) const
writes the matrix to a file using the Matrix Market file format
virtual void ypAx(escript::Data &y, escript::Data &x) const
performs y+=this*x
static std::vector< int > cudaDevices
GPU device IDs supporting CUDA.
Definition: RipleySystemMatrix.h:78
void copyMatrixToDevice(bool verbose=false) const
copies the current matrix stored on host to device if required
virtual void nullifyRowsAndCols(escript::Data &row_q, escript::Data &col_q, double mdv)
sets matrix entries to zero in specified rows and columns. The rows and columns are marked by positiv...
void runSolver(LinearOperator &A, Vector &x, Vector &b, Preconditioner &M, escript::SolverBuddy &sb) const
DeviceMatrixType dmat
Definition: RipleySystemMatrix.h:82
int getBlockSize() const
Definition: RipleySystemMatrix.h:60
virtual void setToSolution(escript::Data &out, escript::Data &in, boost::python::object &options) const
solves the linear system this*out=in
HostMatrixType mat
Definition: RipleySystemMatrix.h:81
SystemMatrix(escript::JMPI mpiInfo, int blocksize, const escript::FunctionSpace &fs, int nRows, const IndexVector &diagonalOffsets, bool symmetric)
virtual ~SystemMatrix()
Definition: RipleySystemMatrix.h:46
void add(const IndexVector &rowIndex, const std::vector< double > &array)
bool symmetric
Definition: RipleySystemMatrix.h:84
virtual void resetValues(bool preserveSolverData=false)
resets the matrix entries
Definition: AbstractContinuousDomain.cpp:23
Data Vector(double value, const FunctionSpace &what, bool expanded)
Return a Data object containing vector data-points. ie: rank 1 data-points.
Definition: DataFactory.cpp:125
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:74
static dim_t M
Definition: SparseMatrix_saveHB.cpp:37
Definition: ripley/src/AbstractAssembler.h:26
std::vector< index_t > IndexVector
Definition: Ripley.h:44
cusp::cds_matrix< int, double, cusp::device_memory > DeviceMatrixType
Definition: RipleySystemMatrix.h:35
cusp::array1d< double, cusp::host_memory > HostVectorType
Definition: RipleySystemMatrix.h:36
cusp::cds_matrix< int, double, cusp::host_memory > HostMatrixType
Definition: RipleySystemMatrix.h:34
cusp::array1d< double, cusp::device_memory > DeviceVectorType
Definition: RipleySystemMatrix.h:37