19#ifndef OPM_GPU_CPR_AMG_OPERATIONS_HPP
20#define OPM_GPU_CPR_AMG_OPERATIONS_HPP
22#include <opm/simulators/linalg/gpuistl/GpuSparseMatrixWrapper.hpp>
23#include <opm/simulators/linalg/gpuistl/GpuVector.hpp>
38template <
typename T,
bool transpose>
40 std::size_t pressureVarIndex,
52template <
typename T,
bool transpose>
56 std::size_t pressureVarIndex);
67template <
typename T,
bool transpose>
71 std::size_t pressureVarIndex);
81template <
typename T,
bool transpose>
85 std::size_t pressureVarIndex);
The GpuSparseMatrixWrapper Checks CUDA/HIP version and dispatches a version either using the old or t...
Definition GpuSparseMatrixWrapper.hpp:61
Definition gpu_type_detection.hpp:30
Contains wrappers to make the CuBLAS library behave as a modern C++ library with function overlading.
Definition autotuner.hpp:30
void calculateCoarseEntries(const GpuSparseMatrixWrapper< T > &fineMatrix, GpuSparseMatrixWrapper< T > &coarseMatrix, const GpuVector< T > &weights, std::size_t pressureVarIndex)
Calculates the coarse level matrix entries based on the fine level matrix and weights.
void restrictVector(const GpuVector< T > &fine, GpuVector< T > &coarse, const GpuVector< T > &weights, std::size_t pressureVarIndex)
Restricts a fine level vector to a coarse level vector based on pressure index.
void getQuasiImpesWeights(const GpuSparseMatrixWrapper< T > &matrix, std::size_t pressureVarIndex, GpuVector< T > &weights, const GpuVector< int > &diagonalIndices)
Calculates quasi-IMPES weights for CPR preconditioner on GPU.
void prolongateVector(const GpuVector< T > &coarse, GpuVector< T > &fine, const GpuVector< T > &weights, std::size_t pressureVarIndex)
Prolongs a coarse level vector to a fine level vector based on pressure index.