Go to the documentation of this file.
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;
56 virtual void resetValues(
bool preserveSolverData =
false);
58 void add(
const IndexVector& rowIndex,
const std::vector<double>& array);
63 template<
class LinearOperator,
class Vector,
class Preconditioner>
71 boost::python::object& options)
const;
89 #endif // __RIPLEY_SYSTEMMATRIX_H__
DeviceMatrixType dmat
Definition: RipleySystemMatrix.h:82
Definition: SolverOptions.h:172
Definition: ripley/src/AbstractAssembler.h:26
void runSolver(LinearOperator &A, Vector &x, Vector &b, Preconditioner &M, escript::SolverBuddy &sb) const
virtual void resetValues(bool preserveSolverData=false)
resets the matrix entries
bool symmetric
Definition: RipleySystemMatrix.h:84
virtual void ypAx(escript::Data &y, escript::Data &x) const
performs y+=this*x
virtual ~SystemMatrix()
Definition: RipleySystemMatrix.h:46
virtual void saveMM(const std::string &filename) const
writes the matrix to a file using the Matrix Market file format
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
Definition: FunctionSpace.h:49
escript::JMPI m_mpiInfo
Definition: RipleySystemMatrix.h:80
bool matrixAltered
Definition: RipleySystemMatrix.h:83
int getBlockSize() const
Definition: RipleySystemMatrix.h:60
cusp::array1d< double, cusp::device_memory > DeviceVectorType
Definition: RipleySystemMatrix.h:37
Data represents a collection of datapoints.
Definition: Data.h:64
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:72
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:57
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...
virtual void setToSolution(escript::Data &out, escript::Data &in, boost::python::object &options) const
solves the linear system this*out=in
std::vector< index_t > IndexVector
Definition: Ripley.h:61
virtual void saveHB(const std::string &filename) const
writes the matrix to a file using the Harwell-Boeing file format
cusp::cds_matrix< int, double, cusp::host_memory > HostMatrixType
Definition: RipleySystemMatrix.h:34
Definition: AbstractContinuousDomain.cpp:23
cusp::array1d< double, cusp::host_memory > HostVectorType
Definition: RipleySystemMatrix.h:36
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:139
static dim_t M
Definition: SparseMatrix_saveHB.cpp:52
SystemMatrix(escript::JMPI mpiInfo, int blocksize, const escript::FunctionSpace &fs, int nRows, const IndexVector &diagonalOffsets, bool symmetric)
HostMatrixType mat
Definition: RipleySystemMatrix.h:81
cusp::cds_matrix< int, double, cusp::device_memory > DeviceMatrixType
Definition: RipleySystemMatrix.h:35
int getRowBlockSize() const
returns the row block size
Definition: AbstractSystemMatrix.h:128
Definition: RipleySystemMatrix.h:39
void add(const IndexVector &rowIndex, const std::vector< double > &array)