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

Public Member Functions

template<typename... Args>
auto with_skip_sorting (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
 
template<typename... Args>
auto with_sparsity_power (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
 
template<typename... Args>
auto with_excess_limit (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
 
auto with_excess_solver_factory (::gko::deferred_factory_parameter< excess_solver_factory_type > factory) -> std::decay_t< decltype(*(this->self()))> &
 
template<typename... Args>
auto with_excess_solver_reduction (Args &&... _value) -> 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

bool skip_sorting {false}
 Optimization parameter that skips the sorting of the input matrix (only skip if it is known that it is already sorted).
 
int sparsity_power {1}
 Which power of the input matrix should be used for the sparsity pattern.
 
size_type excess_limit {0u}
 Size limit for the excess system.
 
std::shared_ptr< const LinOpFactoryexcess_solver_factory {}
 Factory for the Excess System solver.
 
remove_complex< value_type > excess_solver_reduction {static_cast<remove_complex<value_type>>(1e-6)}
 

Additional Inherited Members

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

Member Data Documentation

◆ excess_limit

template<isai_type IsaiType, typename ValueType, typename IndexType>
size_type gko::preconditioner::Isai< IsaiType, ValueType, IndexType >::parameters_type::excess_limit {0u}

Size limit for the excess system.

For rows with more than 32 nonzero entries, the algorithm builds up an excess system which is solved with sparse triangular solves (for upper or lower ISAI) or GMRES (for general ISAI). If this parameter is set to some m > 0, the excess system is solved as soon as its size supersedes m. This is repeated until the complete excess solution has been computed. Must be at least 0, default value 0.

◆ excess_solver_factory

template<isai_type IsaiType, typename ValueType, typename IndexType>
std::shared_ptr<const LinOpFactory> gko::preconditioner::Isai< IsaiType, ValueType, IndexType >::parameters_type::excess_solver_factory {}

Factory for the Excess System solver.

Defaults to using a triangular solver for upper and lower ISAI and to Block-Jacobi preconditioned GMRES for general and spd ISAI.

◆ skip_sorting

template<isai_type IsaiType, typename ValueType, typename IndexType>
bool gko::preconditioner::Isai< IsaiType, ValueType, IndexType >::parameters_type::skip_sorting {false}

Optimization parameter that skips the sorting of the input matrix (only skip if it is known that it is already sorted).

The algorithm to create the approximate inverses requires the input matrix to be sorted. If it is, this parameter can be set to true to skip the sorting for better performance.

◆ sparsity_power

template<isai_type IsaiType, typename ValueType, typename IndexType>
int gko::preconditioner::Isai< IsaiType, ValueType, IndexType >::parameters_type::sparsity_power {1}

Which power of the input matrix should be used for the sparsity pattern.

The algorithm symbolically computes M^n and uses this sparsity pattern for the sparse inverse. Must be at least 1, default value 1.


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