Ginkgo: gko::solver::Gcr< ValueType > Class Template Reference

| Ginkgo Generated from branch based on main. Ginkgo version 1.11.0 A numerical linear algebra library targeting many-core architectures

Loading...
Searching...
No Matches
gko::solver::Gcr< ValueType > Class Template Reference
Linear Operators » Solvers | Linear Operators

GCR or the generalized conjugate residual method is an iterative type Krylov subspace method similar to GMRES which is suitable for nonsymmetric linear systems. More...

`#include <ginkgo/core/solver/gcr.hpp>`

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

## Classes
struct | parameters_type
class | Factory

## Public Types
using | value_type = ValueType
using | transposed_type = Gcr<ValueType>
Public Types inherited from gko::EnablePolymorphicAssignment< Gcr< default_precision > >
using | result_type

## Public Member Functions
std::unique_ptr< LinOp > | transpose () const override
| Returns a LinOp representing the transpose of the Transposable object.
std::unique_ptr< LinOp > | conj_transpose () const override
| Returns a LinOp representing the conjugate transpose of the Transposable object.
bool | apply_uses_initial_guess () const override
| Return true as iterative solvers use the data in x as an initial guess.
size_type | get_krylov_dim () const
| Gets the Krylov dimension of the solver.
void | set_krylov_dim (size_type other)
| Sets the Krylov dimension.
const parameters_type & | get_parameters () const
Public Member Functions inherited from gko::EnableLinOp< Gcr< default_precision > >
const Gcr< default_precision > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const
Public Member Functions inherited from gko::EnablePolymorphicAssignment< Gcr< default_precision > >
void | convert_to (result_type *result) const override
void | move_to (result_type *result) override
Public Member Functions inherited from gko::solver::EnableSolverBase< Gcr< default_precision > >
EnableSolverBase & | operator= (const EnableSolverBase &other)
| Creates a shallow copy of the provided system matrix, clones it onto this executor if executors don't match.
int | get_num_workspace_ops () const override
std::vector< std::string > | get_workspace_op_names () const override
std::vector< int > | get_workspace_scalars () const override
| Returns the IDs of all scalars (workspace vectors with system dimension-independent size, usually 1 x num_rhs).
std::vector< int > | get_workspace_vectors () const override
| Returns the IDs of all vectors (workspace vectors with system dimension-dependent size, usually system_matrix_size x num_rhs).
Public Member Functions inherited from gko::solver::SolverBase< LinOp >
std::shared_ptr< const LinOp > | get_system_matrix () const
| Returns the system matrix, with its concrete type, used by the solver.
Public Member Functions inherited from gko::solver::EnableIterativeBase< Gcr< default_precision > >
EnableIterativeBase & | operator= (const EnableIterativeBase &other)
| Creates a shallow copy of the provided stopping criterion, clones it onto this executor if executors don't match.
void | set_stop_criterion_factory (std::shared_ptr< const stop::CriterionFactory > new_stop_factory) override
| Sets the stopping criterion of the solver.
Public Member Functions inherited from gko::solver::IterativeBase
std::shared_ptr< const stop::CriterionFactory > | get_stop_criterion_factory () const
| Gets the stopping criterion factory of the solver.
Public Member Functions inherited from gko::solver::EnablePreconditionable< Gcr< default_precision > >
void | set_preconditioner (std::shared_ptr< const LinOp > new_precond) override
| Sets the preconditioner operator used by the Preconditionable.
EnablePreconditionable & | operator= (const EnablePreconditionable &other)
| Creates a shallow copy of the provided preconditioner, clones it onto this executor if executors don't match.
Public Member Functions inherited from gko::Preconditionable
virtual std::shared_ptr< const LinOp > | get_preconditioner () const
| Returns the preconditioner operator used by the Preconditionable.

## Static Public Member Functions
static auto | build () -> decltype(Factory::create())
static parameters_type | parse (const config::pnode &config, const config::registry &context, const config::type_descriptor &td_for_child=config::make_type_descriptor< ValueType >())
| Create the parameters from the property_tree.

## Friends
class | EnableLinOp< Gcr >
class | EnablePolymorphicObject< Gcr, LinOp >

## Detailed Description

template<typename ValueType = default_precision>
class gko::solver::Gcr< ValueType >

GCR or the generalized conjugate residual method is an iterative type Krylov subspace method similar to GMRES which is suitable for nonsymmetric linear systems.

The implementation in Ginkgo makes use of the merged kernel to make the best use of data locality. The inner operations in one iteration of GCR are merged into one step. Modified Gram-Schmidt is used.

Template Parameters

  ValueType | precision of matrix elements

## Member Function Documentation

## ◆ apply_uses_initial_guess()

template<typename ValueType = default_precision>

bool gko::solver::Gcr< ValueType >::apply_uses_initial_guess | ( |  | ) | const
| inlineoverride

Return true as iterative solvers use the data in x as an initial guess.

Returns
  true as iterative solvers use the data in x as an initial guess.

## ◆ conj_transpose()

template<typename ValueType = default_precision>

std::unique_ptr< LinOp > gko::solver::Gcr< ValueType >::conj_transpose | ( |  | ) | const
| overridevirtual

Returns a LinOp representing the conjugate transpose of the Transposable object.

Returns
  a pointer to the new conjugate transposed object

Implements gko::Transposable.

## ◆ get_krylov_dim()

template<typename ValueType = default_precision>

size_type gko::solver::Gcr< ValueType >::get_krylov_dim | ( |  | ) | const
| inline

Gets the Krylov dimension of the solver.

Returns
  the Krylov dimension

## ◆ parse()

template<typename ValueType = default_precision>

parameters_type gko::solver::Gcr< ValueType >::parse | ( | const config::pnode & | config,
|  | const config::registry & | context,
|  | const config::type_descriptor & | td_for_child = config::make_type_descriptor< ValueType >() )
| static

Create the parameters from the property_tree.

Because this is directly tied to the specific type, the value/index type settings within config are ignored and type_descriptor is only used for children configs.

Parameters

  config | the property tree for setting
  context | the registry
  td_for_child | the type descriptor for children configs. The default uses the value type of this class.

Returns
  parameters

## ◆ set_krylov_dim()

template<typename ValueType = default_precision>

void gko::solver::Gcr< ValueType >::set_krylov_dim | ( | size_type | other | ) |
| inline

Sets the Krylov dimension.

Parameters

  other | the new Krylov dimension

## ◆ transpose()

template<typename ValueType = default_precision>

std::unique_ptr< LinOp > gko::solver::Gcr< ValueType >::transpose | ( |  | ) | const
| overridevirtual

Returns a LinOp representing the transpose of the Transposable object.

Returns
  a pointer to the new transposed object

Implements gko::Transposable.

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

- ginkgo/core/solver/gcr.hpp