Reference documentation for deal.II version GIT relicensing-233-g802318d791 2024-03-28 20:20:02+00:00
\(\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\}}\)
Loading...
Searching...
No Matches
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 40 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.

Definition at line 431 of file cuda_solver_direct.cc.

◆ ~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.

Definition at line 452 of file cuda_solver_direct.cc.

◆ control()

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

Access to object that controls convergence.

Definition at line 443 of file cuda_solver_direct.cc.

Member Data Documentation

◆ cuda_handle

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

Handle

Definition at line 96 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 104 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 109 of file cuda_solver_direct.h.


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