Ginkgo Generated from branch based on main. Ginkgo version 1.10.0
A numerical linear algebra library targeting many-core architectures
Loading...
Searching...
No Matches
gko::solver::Idr< ValueType >::parameters_type Struct Reference
Inheritance diagram for gko::solver::Idr< ValueType >::parameters_type:
[legend]
Collaboration diagram for gko::solver::Idr< ValueType >::parameters_type:
[legend]

Public Member Functions

template<typename... Args>
auto with_subspace_dim (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
template<typename... Args>
auto with_kappa (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
template<typename... Args>
auto with_deterministic (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
template<typename... Args>
auto with_complex_subspace (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
Public Member Functions inherited from gko::solver::enable_preconditioned_iterative_solver_factory_parameters< parameters_type, Factory >
auto with_preconditioner (::gko::deferred_factory_parameter< preconditioner_type > factory) -> std::decay_t< decltype(*(this->self()))> &
auto with_generated_preconditioner (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
Public Member Functions inherited from gko::solver::enable_iterative_solver_factory_parameters< parameters_type, Factory >
auto with_criteria (Args &&... factories) -> std::decay_t< decltype(*(this->self()))> &
Public Member Functions inherited from gko::enable_parameters_type< parameters_type, Factory >
parameters_type & with_loggers (Args &&... _value)
 Provides the loggers to be added to the factory and its generated objects in a fluent interface.
std::unique_ptr< Factory > on (std::shared_ptr< const Executor > exec) const
 Creates a new factory on the specified executor.

Public Attributes

size_type subspace_dim {2u}
 Dimension of the subspace S.
remove_complex< ValueType > kappa {0.7}
 Threshold to determine if Av_n and v_n are too close to being perpendicular.
bool deterministic {false}
 If set to true, the vectors spanning the subspace S are chosen deterministically.
bool complex_subspace {false}
 If set to true, IDR will use a complex subspace S also for real problems, allowing for faster convergence and better results by acknowledging the influence of complex eigenvectors.
Public Attributes inherited from gko::solver::enable_preconditioned_iterative_solver_factory_parameters< parameters_type, Factory >
std::shared_ptr< const LinOpFactorypreconditioner
 The preconditioner to be used by the iterative solver.
std::shared_ptr< const LinOpgenerated_preconditioner
 Already generated preconditioner.
Public Attributes inherited from gko::solver::enable_iterative_solver_factory_parameters< parameters_type, Factory >
std::vector< std::shared_ptr< const stop::CriterionFactory > > criteria
 Stopping criteria to be used by the solver.

Additional Inherited Members

Public Types inherited from gko::enable_parameters_type< parameters_type, Factory >
using factory

Member Data Documentation

◆ complex_subspace

template<typename ValueType = default_precision>
bool gko::solver::Idr< ValueType >::parameters_type::complex_subspace {false}

If set to true, IDR will use a complex subspace S also for real problems, allowing for faster convergence and better results by acknowledging the influence of complex eigenvectors.

The default is false.

◆ deterministic

template<typename ValueType = default_precision>
bool gko::solver::Idr< ValueType >::parameters_type::deterministic {false}

If set to true, the vectors spanning the subspace S are chosen deterministically.

This is mostly needed for testing purposes.

Note: If 'deterministic' is set to true, the subspace vectors are generated in serial on the CPU, which can be very slow.

The default behaviour is to choose the subspace vectors randomly.

◆ kappa

template<typename ValueType = default_precision>
remove_complex<ValueType> gko::solver::Idr< ValueType >::parameters_type::kappa {0.7}

Threshold to determine if Av_n and v_n are too close to being perpendicular.

This is considered to be the case if $|(Av_n)^H * v_n / (norm(Av_n) * norm(v_n))| < kappa$

◆ subspace_dim

template<typename ValueType = default_precision>
size_type gko::solver::Idr< ValueType >::parameters_type::subspace_dim {2u}

Dimension of the subspace S.

Determines how many intermediate residuals are computed in each iteration.


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