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>
63 void runSolver(LinearOperator& A,
Vector& x,
Vector& b, Preconditioner&
M,
67 void copyMatrixToDevice(
bool verbose=
false)
const;
70 boost::python::object& options)
const;
74 static void checkCUDA();
81 mutable DeviceMatrixType
dmat;
88 #endif // __RIPLEY_SYSTEMMATRIX_H__ virtual ~SystemMatrix()
Definition: RipleySystemMatrix.h:45
Definition: FunctionSpace.h:34
Definition: SolverOptions.h:184
static std::vector< int > cudaDevices
GPU device IDs supporting CUDA.
Definition: RipleySystemMatrix.h:77
cusp::array1d< double, cusp::host_memory > HostVectorType
Definition: RipleySystemMatrix.h:35
Definition: AbstractContinuousDomain.cpp:22
cusp::cds_matrix< int, double, cusp::host_memory > HostMatrixType
Definition: RipleySystemMatrix.h:33
cusp::array1d< double, cusp::device_memory > DeviceVectorType
Definition: RipleySystemMatrix.h:36
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
Definition: RipleySystemMatrix.h:38
static dim_t M
Definition: SparseMatrix_saveHB.cpp:37
DeviceMatrixType dmat
Definition: RipleySystemMatrix.h:81
void symmetric(const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset)
computes a symmetric matrix from your square matrix A: (A + transpose(A)) / 2
Definition: DataVectorOps.h:102
bool symmetric
Definition: RipleySystemMatrix.h:83
std::vector< index_t > IndexVector
Definition: Ripley.h:43
cusp::cds_matrix< int, double, cusp::device_memory > DeviceMatrixType
Definition: RipleySystemMatrix.h:34
Data represents a collection of datapoints.
Definition: Data.h:63
escript::JMPI m_mpiInfo
Definition: RipleySystemMatrix.h:79
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:39
HostMatrixType mat
Definition: RipleySystemMatrix.h:80
bool matrixAltered
Definition: RipleySystemMatrix.h:82
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:42
Definition: ripley/src/AbstractAssembler.h:25
int getBlockSize() const
Definition: RipleySystemMatrix.h:59