GaussSeidel< ValueType, IndexType > Class Template Reference

GaussSeidel&lt; ValueType, IndexType &gt; Class Template Reference#

Reference API: gko::preconditioner::GaussSeidel< ValueType, IndexType > Class Template Reference
Reference API
gko::preconditioner::GaussSeidel< ValueType, IndexType > Class Template Reference

#include <ginkgo/core/preconditioner/gauss_seidel.hpp>

Inheritance diagram for gko::preconditioner::GaussSeidel< ValueType, IndexType >:
[legend]

Classes

struct  parameters_type
 

Public Types

using value_type = ValueType
 
using index_type = IndexType
 
using composition_type = Composition< ValueType >
 
- Public Types inherited from gko::EnablePolymorphicAssignment< ConcreteType, ResultType >
using result_type = ResultType
 
- Public Types inherited from gko::ConvertibleTo< ResultType >
using result_type = ResultType
 

Public Member Functions

const parameters_typeget_parameters ()
 
const parameters_typeget_parameters () const
 
std::unique_ptr< composition_typegenerate (std::shared_ptr< const LinOp > system_matrix) const
 
- Public Member Functions inherited from gko::EnableAbstractPolymorphicObject< AbstractObject, PolymorphicBase >
std::unique_ptr< AbstractObject > create_default (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< AbstractObject > create_default () const
 
std::unique_ptr< AbstractObject > clone (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< AbstractObject > clone () const
 
AbstractObject * copy_from (const PolymorphicObject *other)
 
template<typename Derived >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * copy_from (std::unique_ptr< Derived > &&other)
 
template<typename Derived >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * copy_from (const std::unique_ptr< Derived > &other)
 
AbstractObject * copy_from (const std::shared_ptr< const PolymorphicObject > &other)
 
AbstractObject * move_from (ptr_param< PolymorphicObject > other)
 
AbstractObject * clear ()
 
- Public Member Functions inherited from gko::PolymorphicObject
PolymorphicObjectoperator= (const PolymorphicObject &)
 
std::unique_ptr< PolymorphicObjectcreate_default (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< PolymorphicObjectcreate_default () const
 
std::unique_ptr< PolymorphicObjectclone (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< PolymorphicObjectclone () const
 
PolymorphicObjectcopy_from (const PolymorphicObject *other)
 
template<typename Derived , typename Deleter >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * copy_from (std::unique_ptr< Derived, Deleter > &&other)
 
template<typename Derived , typename Deleter >
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * copy_from (const std::unique_ptr< Derived, Deleter > &other)
 
PolymorphicObjectcopy_from (const std::shared_ptr< const PolymorphicObject > &other)
 
PolymorphicObjectmove_from (ptr_param< PolymorphicObject > other)
 
PolymorphicObjectclear ()
 
std::shared_ptr< const Executorget_executor () const noexcept
 
- Public Member Functions inherited from gko::log::EnableLogging< PolymorphicObject >
void add_logger (std::shared_ptr< const Logger > logger) override
 
void remove_logger (const Logger *logger) override
 
void remove_logger (ptr_param< const Logger > logger)
 
const std::vector< std::shared_ptr< const Logger > > & get_loggers () const override
 
void clear_loggers () override
 
- Public Member Functions inherited from gko::log::Loggable
void remove_logger (ptr_param< const Logger > logger)
 
- Public Member Functions inherited from gko::EnablePolymorphicAssignment< ConcreteType, ResultType >
void convert_to (result_type *result) const override
 
void move_to (result_type *result) override
 
- Public Member Functions inherited from gko::ConvertibleTo< ResultType >
void convert_to (ptr_param< result_type > result) const
 
void move_to (ptr_param< result_type > result)
 

Static Public Member Functions

static parameters_type build ()
 
static parameters_type parse (const config::pnode &config, const config::registry &context, const config::type_descriptor &td_for_child=config::make_type_descriptor< ValueType, IndexType >())
 

Protected Member Functions

 GaussSeidel (std::shared_ptr< const Executor > exec, const parameters_type &params={})
 
std::unique_ptr< LinOpgenerate_impl (std::shared_ptr< const LinOp > system_matrix) const override
 
- Protected Member Functions inherited from gko::EnablePolymorphicObject< ConcreteObject, PolymorphicBase >
std::unique_ptr< PolymorphicObjectcreate_default_impl (std::shared_ptr< const Executor > exec) const override
 
PolymorphicObjectcopy_from_impl (const PolymorphicObject *other) override
 
PolymorphicObjectcopy_from_impl (std::unique_ptr< PolymorphicObject > other) override
 
PolymorphicObjectmove_from_impl (PolymorphicObject *other) override
 
PolymorphicObjectmove_from_impl (std::unique_ptr< PolymorphicObject > other) override
 
PolymorphicObjectclear_impl () override
 
- Protected Member Functions inherited from gko::PolymorphicObject
 PolymorphicObject (std::shared_ptr< const Executor > exec)
 
 PolymorphicObject (const PolymorphicObject &other)
 
- Protected Member Functions inherited from gko::log::EnableLogging< PolymorphicObject >
void log (Params &&... params) const
 

Friends

class EnablePolymorphicObject< GaussSeidel, LinOpFactory >
 
class enable_parameters_type< parameters_type, GaussSeidel >
 

Additional Inherited Members

- Protected Attributes inherited from gko::log::EnableLogging< PolymorphicObject >
std::vector< std::shared_ptr< const Logger > > loggers_
 

Detailed Description

template<typename ValueType = default_precision, typename IndexType = int32>
class gko::preconditioner::GaussSeidel< ValueType, IndexType >

This class generates the Gauss-Seidel preconditioner.

This is the special case of the relaxation factor \(\omega = 1\) of the (S)SOR preconditioner.

See also
Sor

Member Function Documentation

◆ build()

template<typename ValueType = default_precision, typename IndexType = int32>
static parameters_type gko::preconditioner::GaussSeidel< ValueType, IndexType >::build ( )
inlinestatic

Creates a new parameter_type to set up the factory.

◆ generate()

template<typename ValueType = default_precision, typename IndexType = int32>
std::unique_ptr< composition_type > gko::preconditioner::GaussSeidel< ValueType, IndexType >::generate ( std::shared_ptr< const LinOp system_matrix) const

Note
This function overrides the default LinOpFactory::generate to return a Factorization instead of a generic LinOp, which would need to be cast to Factorization again to access its factors. It is only necessary because smart pointers aren't covariant.

◆ get_parameters() [1/2]

template<typename ValueType = default_precision, typename IndexType = int32>
const parameters_type & gko::preconditioner::GaussSeidel< ValueType, IndexType >::get_parameters ( )
inline

Returns the parameters used to construct the factory.

Returns
the parameters used to construct the factory.

◆ get_parameters() [2/2]

template<typename ValueType = default_precision, typename IndexType = int32>
const parameters_type & gko::preconditioner::GaussSeidel< ValueType, IndexType >::get_parameters ( ) const
inline

Returns the parameters used to construct the factory.

Returns
the parameters used to construct the factory.

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