Go to the documentation of this file.
17 #ifndef __RIPLEY_SYSTEMMATRIX_H__
18 #define __RIPLEY_SYSTEMMATRIX_H__
20 #include <escript/AbstractSystemMatrix.h>
21 #include <escript/FunctionSpace.h>
23 #include <ripley/Ripley.h>
29 #include <cusp/cds_matrix.h>
51 virtual void saveMM(
const std::string& filename)
const;
53 virtual void saveHB(
const std::string& filename)
const;
55 virtual void resetValues(
bool preserveSolverData =
false);
57 void add(
const IndexVector& rowIndex,
const std::vector<double>& array);
62 template<
class LinearOperator,
class Vector,
class Preconditioner>
70 boost::python::object& options)
const;
88 #endif // __RIPLEY_SYSTEMMATRIX_H__
DeviceMatrixType dmat
Definition: RipleySystemMatrix.h:80
Definition: SolverOptions.h:168
Definition: ripley/src/AbstractAssembler.h:24
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:82
virtual void ypAx(escript::Data &y, escript::Data &x) const
performs y+=this*x
virtual ~SystemMatrix()
Definition: RipleySystemMatrix.h:44
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:76
void copyMatrixToDevice(bool verbose=false) const
copies the current matrix stored on host to device if required
Definition: FunctionSpace.h:45
escript::JMPI m_mpiInfo
Definition: RipleySystemMatrix.h:78
bool matrixAltered
Definition: RipleySystemMatrix.h:81
int getBlockSize() const
Definition: RipleySystemMatrix.h:58
cusp::array1d< double, cusp::device_memory > DeviceVectorType
Definition: RipleySystemMatrix.h:35
Data represents a collection of datapoints.
Definition: Data.h:62
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:70
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:53
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:55
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:32
Definition: AbstractContinuousDomain.cpp:22
cusp::array1d< double, cusp::host_memory > HostVectorType
Definition: RipleySystemMatrix.h:34
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:96
static dim_t M
Definition: SparseMatrix_saveHB.cpp:48
SystemMatrix(escript::JMPI mpiInfo, int blocksize, const escript::FunctionSpace &fs, int nRows, const IndexVector &diagonalOffsets, bool symmetric)
HostMatrixType mat
Definition: RipleySystemMatrix.h:79
cusp::cds_matrix< int, double, cusp::device_memory > DeviceMatrixType
Definition: RipleySystemMatrix.h:33
int getRowBlockSize() const
returns the row block size
Definition: AbstractSystemMatrix.h:124
Definition: RipleySystemMatrix.h:37
void add(const IndexVector &rowIndex, const std::vector< double > &array)