Reference documentation for deal.II version 9.3.3
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Classes | Public Member Functions | Private Attributes | List of all members
CUDAWrappers::SolverDirect< Number > Class Template Reference

#include <deal.II/lac/cuda_solver_direct.h>


struct  AdditionalData

Public Member Functions

 SolverDirect (const Utilities::CUDA::Handle &handle, SolverControl &cn, const AdditionalData &data=AdditionalData())
virtual ~SolverDirect ()=default
void solve (const SparseMatrix< Number > &A, LinearAlgebra::CUDAWrappers::Vector< Number > &x, const LinearAlgebra::CUDAWrappers::Vector< Number > &b)
SolverControlcontrol () const

Private Attributes

const Utilities::CUDA::Handlecuda_handle
const AdditionalData additional_data

Detailed Description

template<typename Number>
class CUDAWrappers::SolverDirect< Number >

Direct solvers. These solvers call cuSOLVER underneath.

Instantiations for this template are provided for <float> and <double>.

Definition at line 41 of file cuda_solver_direct.h.

Constructor & Destructor Documentation

◆ SolverDirect()

template<typename Number >
CUDAWrappers::SolverDirect< Number >::SolverDirect ( const Utilities::CUDA::Handle handle,
SolverControl cn,
const AdditionalData data = AdditionalData() 

Constructor. Takes the solver control object and creates the solver.

◆ ~SolverDirect()

template<typename Number >
virtual CUDAWrappers::SolverDirect< Number >::~SolverDirect ( )


Member Function Documentation

◆ solve()

template<typename Number >
void CUDAWrappers::SolverDirect< Number >::solve ( const SparseMatrix< Number > &  A,
LinearAlgebra::CUDAWrappers::Vector< Number > &  x,
const LinearAlgebra::CUDAWrappers::Vector< Number > &  b 

Solve the linear system Ax=b.

◆ control()

template<typename Number >
SolverControl & CUDAWrappers::SolverDirect< Number >::control ( ) const

Access to object that controls convergence.

Member Data Documentation

◆ cuda_handle

template<typename Number >
const Utilities::CUDA::Handle& CUDAWrappers::SolverDirect< Number >::cuda_handle


Definition at line 97 of file cuda_solver_direct.h.

◆ solver_control

template<typename Number >
SolverControl& CUDAWrappers::SolverDirect< Number >::solver_control

Reference to the object that controls convergence of the iterative solver. In fact, for these CUDA wrappers, cuSOLVER and cuSPARSE do so themselves, but we copy the data from this object before starting the solution process, and copy the data back into it afterwards.

Definition at line 105 of file cuda_solver_direct.h.

◆ additional_data

template<typename Number >
const AdditionalData CUDAWrappers::SolverDirect< Number >::additional_data

Store a copy of the flags for this particular solver.

Definition at line 110 of file cuda_solver_direct.h.

The documentation for this class was generated from the following file: