/home/runner/work/kynema/kynema/kynema/src/solver/linear_solver/dss_handle_cusolversp.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/solver/linear_solver/dss_handle_cusolversp.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
dss_handle_cusolversp.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Kokkos_Core.hpp>
4#include <cusolverSp.h>
5#include <cusolverSp_LOWLEVEL_PREVIEW.h>
6
7#include "dss_algorithm.hpp"
8
9namespace kynema::dss {
10template <>
12 struct cuSolverDssHandleType {
13 cusolverSpHandle_t handle;
14 cusparseMatDescr_t description;
15 csrqrInfo_t info;
16 Kokkos::View<char*> buffer;
17
18 cuSolverDssHandleType() {
19 cusolverSpCreate(&handle);
20 cusparseCreateMatDescr(&description);
21 cusparseSetMatType(description, CUSPARSE_MATRIX_TYPE_GENERAL);
22 cusparseSetMatIndexBase(description, CUSPARSE_INDEX_BASE_ZERO);
23 cusolverSpCreateCsrqrInfo(&info);
24 }
25
26 ~cuSolverDssHandleType() {
27 cusparseDestroyMatDescr(description);
28 cusolverSpDestroy(handle);
29 cusolverSpDestroyCsrqrInfo(info);
30 }
31 };
32 std::shared_ptr<cuSolverDssHandleType> cusolver_dss_handle;
33
34public:
35 Handle() : cusolver_dss_handle(std::make_shared<cuSolverDssHandleType>()) {}
36
37 cusolverSpHandle_t& get_handle() { return cusolver_dss_handle->handle; }
38
39 cusparseMatDescr_t& get_description() { return cusolver_dss_handle->description; }
40
41 csrqrInfo_t& get_info() { return cusolver_dss_handle->info; }
42
43 Kokkos::View<char*>& get_buffer() { return cusolver_dss_handle->buffer; }
44};
45
46} // namespace kynema::dss
csrqrInfo_t & get_info()
Definition dss_handle_cusolversp.hpp:41
cusolverSpHandle_t & get_handle()
Definition dss_handle_cusolversp.hpp:37
cusparseMatDescr_t & get_description()
Definition dss_handle_cusolversp.hpp:39
Handle()
Definition dss_handle_cusolversp.hpp:35
Kokkos::View< char * > & get_buffer()
Definition dss_handle_cusolversp.hpp:43
Definition dss_handle.hpp:10
Definition dss_algorithm.hpp:4
Algorithm
Definition dss_algorithm.hpp:6