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>

Classes

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
 
SolverControlsolver_control
 
const AdditionalData additional_data
 

Detailed Description

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

Direct solvers. These solvers call cuSOLVER underneath.

Note
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 ( )
virtualdefault

Destructor.

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
private

Handle

Definition at line 97 of file cuda_solver_direct.h.

◆ solver_control

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

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
private

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: