31#include "../CConfig.hpp"
32#include "../geometry/CGeometry.hpp"
55template <
class ScalarType>
61template <
class ScalarType>
69template <
class ScalarType>
85 : matrix(matrix_ref), geometry(geometry_ref), config(config_ref) {
88#ifdef SU2_ENABLE_CUDA_KERNELS
89 if constexpr (su2_gpu_capable_v<ScalarType>) {
108 matrix.MatrixVectorProduct(u, v, geometry, config);
Declaration of the block-sparse matrix class. The implemtation is in CSysMatrix.cpp.
Declararion and inlines of the vector class used in the solution of large, distributed,...
#define SU2_DEVICE_REGION(...)
Brackets device work so that it is issued by a single thread with the whole team synchronized before ...
Definition CSysVector.hpp:100
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
bool GetCUDA(void) const
Get information about GPU support.
Definition CConfig.hpp:6698
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
Abstract base class for defining matrix-vector products.
Definition CMatrixVectorProduct.hpp:56
virtual ~CMatrixVectorProduct()=0
Definition CMatrixVectorProduct.hpp:62
virtual void operator()(const CSysVector< ScalarType > &u, CSysVector< ScalarType > &v) const =0
Specialization of matrix-vector product that uses CSysMatrix class.
Definition CMatrixVectorProduct.hpp:70
CSysMatrixVectorProduct(const CSysMatrix< ScalarType > &matrix_ref, CGeometry *geometry_ref, const CConfig *config_ref)
constructor of the class
Definition CMatrixVectorProduct.hpp:83
void operator()(const CSysVector< ScalarType > &u, CSysVector< ScalarType > &v) const override
operator that defines the CSysMatrix-CSysVector product
Definition CMatrixVectorProduct.hpp:107
CSysMatrixVectorProduct()=delete
Main class for defining block-compressed-row-storage sparse matrices.
Definition CSysMatrix.hpp:256
void HtDTransfer(bool trigger=true) const
Performs the memory copy from host to device.
Definition CSysMatrixGPU.cu:1016
Class for holding and manipulating vectors needed by linear solvers.
Definition CSysVector.hpp:195