Ginkgo Generated from branch based on master. Ginkgo version 1.8.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()))> &
 
auto with_criteria (const std::vector< FactoryType > &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.

Referenced by gko::solver::Idr< ValueType >::get_complex_subspace(), and gko::solver::Idr< ValueType >::set_complex_subspace().

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

Referenced by gko::solver::Idr< ValueType >::get_deterministic(), and gko::solver::Idr< ValueType >::set_deterministic().

◆ 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$

Referenced by gko::solver::Idr< ValueType >::get_kappa(), and gko::solver::Idr< ValueType >::set_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.

Referenced by gko::solver::Idr< ValueType >::get_subspace_dim(), and gko::solver::Idr< ValueType >::set_subspace_dim().


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