Reference documentation for deal.II version GIT relicensing-903-gcd01479aa8 2024-06-25 10:50: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 | Protected Attributes | Private Member Functions | Private Attributes | List of all members
GinkgoWrappers::SolverCGS< ValueType, IndexType > Class Template Reference

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

Inheritance diagram for GinkgoWrappers::SolverCGS< ValueType, IndexType >:
Inheritance graph
[legend]

Classes

struct  AdditionalData
 

Public Member Functions

 SolverCGS (SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
 
 SolverCGS (SolverControl &solver_control, const std::string &exec_type, const std::shared_ptr< gko::LinOpFactory > &preconditioner, const AdditionalData &data=AdditionalData())
 
void initialize (const SparseMatrix< ValueType > &matrix)
 
void apply (Vector< ValueType > &solution, const Vector< ValueType > &rhs)
 
void solve (const SparseMatrix< ValueType > &matrix, Vector< ValueType > &solution, const Vector< ValueType > &rhs)
 
SolverControlcontrol () const
 

Protected Attributes

const AdditionalData additional_data
 
SolverControlsolver_control
 
std::shared_ptr< gko::LinOpFactory > solver_gen
 
std::shared_ptr< gko::stop::ResidualNormReduction<>::Factory > residual_criterion
 
std::shared_ptr< gko::log::Convergence<> > convergence_logger
 
std::shared_ptr< gko::stop::Combined::Factory > combined_factory
 
std::shared_ptr< gko::Executor > executor
 

Private Member Functions

void initialize_ginkgo_log ()
 

Private Attributes

std::shared_ptr< gko::matrix::Csr< ValueType, IndexType > > system_matrix
 
const std::string exec_type
 

Detailed Description

template<typename ValueType = double, typename IndexType = int32_t>
class GinkgoWrappers::SolverCGS< ValueType, IndexType >

An implementation of the solver interface using the Ginkgo CGS solver.

CGS or the conjugate gradient square method is an iterative type Krylov subspace method which is suitable for general systems.

Definition at line 328 of file ginkgo_solver.h.

Constructor & Destructor Documentation

◆ SolverCGS() [1/2]

template<typename ValueType , typename IndexType >
GinkgoWrappers::SolverCGS< ValueType, IndexType >::SolverCGS ( SolverControl solver_control,
const std::string &  exec_type,
const AdditionalData data = AdditionalData() 
)

Constructor.

Parameters
[in,out]solver_controlThe solver control object is then used to set the parameters and set up the CGS solver from the CGS factory which solves the linear system.
[in]exec_typeThe execution paradigm for the CGS solver.
[in]dataThe additional data required by the solver.

Definition at line 371 of file ginkgo_solver.cc.

◆ SolverCGS() [2/2]

template<typename ValueType , typename IndexType >
GinkgoWrappers::SolverCGS< ValueType, IndexType >::SolverCGS ( SolverControl solver_control,
const std::string &  exec_type,
const std::shared_ptr< gko::LinOpFactory > &  preconditioner,
const AdditionalData data = AdditionalData() 
)

Constructor.

Parameters
[in,out]solver_controlThe solver control object is then used to set the parameters and set up the CGS solver from the CGS factory which solves the linear system.
[in]exec_typeThe execution paradigm for the CGS solver.
[in]preconditionerThe preconditioner for the solver.
[in]dataThe additional data required by the solver.

Definition at line 385 of file ginkgo_solver.cc.

Member Function Documentation

◆ initialize()

template<typename ValueType , typename IndexType >
void SolverBase< ValueType, IndexType >::initialize ( const SparseMatrix< ValueType > &  matrix)
inherited

Initialize the matrix and copy over its data to Ginkgo's data structures.

Definition at line 217 of file ginkgo_solver.cc.

◆ apply()

template<typename ValueType , typename IndexType >
void SolverBase< ValueType, IndexType >::apply ( Vector< ValueType > &  solution,
const Vector< ValueType > &  rhs 
)
inherited

Solve the linear system Ax=b. Dependent on the information provided by derived classes one of Ginkgo's linear solvers is chosen.

Definition at line 87 of file ginkgo_solver.cc.

◆ solve()

template<typename ValueType , typename IndexType >
void SolverBase< ValueType, IndexType >::solve ( const SparseMatrix< ValueType > &  matrix,
Vector< ValueType > &  solution,
const Vector< ValueType > &  rhs 
)
inherited

Solve the linear system Ax=b. Dependent on the information provided by derived classes one of Ginkgo's linear solvers is chosen.

Definition at line 291 of file ginkgo_solver.cc.

◆ control()

template<typename ValueType , typename IndexType >
SolverControl & SolverBase< ValueType, IndexType >::control ( ) const
inherited

Access to the object that controls convergence.

Definition at line 208 of file ginkgo_solver.cc.

◆ initialize_ginkgo_log()

template<typename ValueType , typename IndexType >
void SolverBase< ValueType, IndexType >::initialize_ginkgo_log ( )
privateinherited

Initialize the Ginkgo logger object with event masks. Refer to Ginkgo's logging event masks.

Definition at line 75 of file ginkgo_solver.cc.

Member Data Documentation

◆ additional_data

template<typename ValueType = double, typename IndexType = int32_t>
const AdditionalData GinkgoWrappers::SolverCGS< ValueType, IndexType >::additional_data
protected

Store a copy of the settings for this particular solver.

Definition at line 374 of file ginkgo_solver.h.

◆ solver_control

template<typename ValueType , typename IndexType >
SolverControl& GinkgoWrappers::SolverBase< ValueType, IndexType >::solver_control
protectedinherited

Reference to the object that controls convergence of the iterative solvers.

Definition at line 147 of file ginkgo_solver.h.

◆ solver_gen

template<typename ValueType , typename IndexType >
std::shared_ptr<gko::LinOpFactory> GinkgoWrappers::SolverBase< ValueType, IndexType >::solver_gen
protectedinherited

The Ginkgo generated solver factory object.

Definition at line 152 of file ginkgo_solver.h.

◆ residual_criterion

template<typename ValueType , typename IndexType >
std::shared_ptr<gko::stop::ResidualNormReduction<>::Factory> GinkgoWrappers::SolverBase< ValueType, IndexType >::residual_criterion
protectedinherited

The residual criterion object that controls the reduction of the residual based on the tolerance set in the solver_control member.

Definition at line 159 of file ginkgo_solver.h.

◆ convergence_logger

template<typename ValueType , typename IndexType >
std::shared_ptr<gko::log::Convergence<> > GinkgoWrappers::SolverBase< ValueType, IndexType >::convergence_logger
protectedinherited

The Ginkgo convergence logger used to check for convergence and other solver data if needed.

Definition at line 165 of file ginkgo_solver.h.

◆ combined_factory

template<typename ValueType , typename IndexType >
std::shared_ptr<gko::stop::Combined::Factory> GinkgoWrappers::SolverBase< ValueType, IndexType >::combined_factory
protectedinherited

The Ginkgo combined factory object is used to create a combined stopping criterion to be passed to the solver.

Definition at line 171 of file ginkgo_solver.h.

◆ executor

template<typename ValueType , typename IndexType >
std::shared_ptr<gko::Executor> GinkgoWrappers::SolverBase< ValueType, IndexType >::executor
protectedinherited

The execution paradigm in Ginkgo. The choices are between gko::OmpExecutor, gko::CudaExecutor and gko::ReferenceExecutor and more details can be found in Ginkgo's documentation.

Definition at line 178 of file ginkgo_solver.h.

◆ system_matrix

template<typename ValueType , typename IndexType >
std::shared_ptr<gko::matrix::Csr<ValueType, IndexType> > GinkgoWrappers::SolverBase< ValueType, IndexType >::system_matrix
privateinherited

Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

Todo:
Templatize based on Matrix type.

Definition at line 197 of file ginkgo_solver.h.

◆ exec_type

template<typename ValueType , typename IndexType >
const std::string GinkgoWrappers::SolverBase< ValueType, IndexType >::exec_type
privateinherited

The execution paradigm as a string to be set by the user. The choices are between omp, cuda and reference and more details can be found in Ginkgo's documentation.

Definition at line 204 of file ginkgo_solver.h.


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