Ginkgo  Generated from pipelines/1330831941 branch based on master. Ginkgo version 1.8.0
A numerical linear algebra library targeting many-core architectures
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
gko::batch::solver::Bicgstab< ValueType > Class Template Referencefinal

BiCGSTAB or the Bi-Conjugate Gradient-Stabilized is a Krylov subspace solver. More...

#include <ginkgo/core/solver/batch_bicgstab.hpp>

Inheritance diagram for gko::batch::solver::Bicgstab< ValueType >:
[legend]
Collaboration diagram for gko::batch::solver::Bicgstab< ValueType >:
[legend]

Classes

class  Factory
 
struct  parameters_type
 

Public Types

using value_type = ValueType
 
using real_type = gko::remove_complex< ValueType >
 
- Public Types inherited from gko::batch::solver::EnableBatchSolver< Bicgstab< ValueType >, ValueType >
using real_type = remove_complex< ValueType >
 
- Public Types inherited from gko::EnablePolymorphicAssignment< Bicgstab< ValueType > >
using result_type = Bicgstab< ValueType >
 
- Public Types inherited from gko::ConvertibleTo< Bicgstab< ValueType > >
using result_type = Bicgstab< ValueType >
 

Public Member Functions

const parameters_typeget_parameters () const
 
- Public Member Functions inherited from gko::batch::solver::EnableBatchSolver< Bicgstab< ValueType >, ValueType >
const Bicgstab< ValueType > * apply (ptr_param< const MultiVector< ValueType >> b, ptr_param< MultiVector< ValueType >> x) const
 
const Bicgstab< ValueType > * apply (ptr_param< const MultiVector< ValueType >> alpha, ptr_param< const MultiVector< ValueType >> b, ptr_param< const MultiVector< ValueType >> beta, ptr_param< MultiVector< ValueType >> x) const
 
Bicgstab< ValueType > * apply (ptr_param< const MultiVector< ValueType >> b, ptr_param< MultiVector< ValueType >> x)
 
Bicgstab< ValueType > * apply (ptr_param< const MultiVector< ValueType >> alpha, ptr_param< const MultiVector< ValueType >> b, ptr_param< const MultiVector< ValueType >> beta, ptr_param< MultiVector< ValueType >> x)
 
- Public Member Functions inherited from gko::batch::solver::BatchSolver
std::shared_ptr< const BatchLinOpget_system_matrix () const
 Returns the system operator (matrix) of the linear system. More...
 
std::shared_ptr< const BatchLinOpget_preconditioner () const
 Returns the generated preconditioner. More...
 
double get_tolerance () const
 Get the residual tolerance used by the solver. More...
 
void reset_tolerance (double res_tol)
 Update the residual tolerance to be used by the solver. More...
 
int get_max_iterations () const
 Get the maximum number of iterations set on the solver. More...
 
void reset_max_iterations (int max_iterations)
 Set the maximum number of iterations for the solver to use, independent of the factory that created it. More...
 
::gko::batch::stop::tolerance_type get_tolerance_type () const
 Get the tolerance type. More...
 
void reset_tolerance_type (::gko::batch::stop::tolerance_type tol_type)
 Set the type of tolerance check to use inside the solver. More...
 
- Public Member Functions inherited from gko::EnableAbstractPolymorphicObject< Bicgstab< ValueType >, BatchLinOp >
std::unique_ptr< Bicgstab< ValueType > > create_default (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< Bicgstab< ValueType > > create_default () const
 
std::unique_ptr< Bicgstab< ValueType > > clone (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< Bicgstab< ValueType > > clone () const
 
Bicgstab< ValueType > * copy_from (const PolymorphicObject *other)
 
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Bicgstab< ValueType > > * copy_from (std::unique_ptr< Derived > &&other)
 
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Bicgstab< ValueType > > * copy_from (const std::unique_ptr< Derived > &other)
 
Bicgstab< ValueType > * copy_from (const std::shared_ptr< const PolymorphicObject > &other)
 
Bicgstab< ValueType > * move_from (ptr_param< PolymorphicObject > other)
 
Bicgstab< ValueType > * clear ()
 
- Public Member Functions inherited from gko::EnablePolymorphicAssignment< Bicgstab< ValueType > >
void convert_to (result_type *result) const override
 Converts the implementer to an object of type result_type. More...
 
void move_to (result_type *result) override
 Converts the implementer to an object of type result_type by moving data from this object. More...
 
- Public Member Functions inherited from gko::ConvertibleTo< Bicgstab< ValueType > >
void convert_to (ptr_param< result_type > result) const
 
void move_to (ptr_param< result_type > result)
 

Static Public Member Functions

static auto build () -> decltype(Factory ::create())
 

Friends

class EnableBatchLinOp< Bicgstab >
 
class EnablePolymorphicObject< Bicgstab, BatchLinOp >
 

Detailed Description

template<typename ValueType = default_precision>
class gko::batch::solver::Bicgstab< ValueType >

BiCGSTAB or the Bi-Conjugate Gradient-Stabilized is a Krylov subspace solver.

Being a generic solver, it is capable of solving general matrices, including non-s.p.d matrices.

This solver solves a batch of linear systems using the Bicgstab algorithm. Each linear system in the batch can converge independently.

Unless otherwise specified via the preconditioner factory parameter, this implementation does not use any preconditioner by default. The type of tolerance (absolute or relative) and the maximum number of iterations to be used in the stopping criterion can be set via the factory parameters.

Note
The tolerance check is against the internal residual computed within the solver process. This implicit (internal) residual, can diverge from the true residual (||b - Ax||). A posterori checks (by computing the true residual, ||b - Ax||) are recommended to ensure that the solution has converged to the desired tolerance.
Template Parameters
ValueTypeprecision of matrix elements

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