Ginkgo
Generated from pipelines/1589998975 branch based on develop. Ginkgo version 1.10.0
A numerical linear algebra library targeting many-core architectures
|
This class generates the (S)SOR preconditioner. More...
#include <ginkgo/core/preconditioner/sor.hpp>
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< Sor< ValueType, IndexType > > | |
using | result_type = Sor< ValueType, IndexType > |
Public Types inherited from gko::ConvertibleTo< Sor< ValueType, IndexType > > | |
using | result_type = Sor< ValueType, IndexType > |
Public Member Functions | |
const parameters_type & | get_parameters () |
Returns the parameters used to construct the factory. More... | |
const parameters_type & | get_parameters () const |
Returns the parameters used to construct the factory. More... | |
std::unique_ptr< composition_type > | generate (std::shared_ptr< const LinOp > system_matrix) const |
Public Member Functions inherited from gko::EnableAbstractPolymorphicObject< Sor< ValueType, IndexType >, LinOpFactory > | |
std::unique_ptr< Sor< ValueType, IndexType > > | create_default (std::shared_ptr< const Executor > exec) const |
std::unique_ptr< Sor< ValueType, IndexType > > | create_default () const |
std::unique_ptr< Sor< ValueType, IndexType > > | clone (std::shared_ptr< const Executor > exec) const |
std::unique_ptr< Sor< ValueType, IndexType > > | clone () const |
Sor< ValueType, IndexType > * | copy_from (const PolymorphicObject *other) |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Sor< ValueType, IndexType > > * | copy_from (std::unique_ptr< Derived > &&other) |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Sor< ValueType, IndexType > > * | copy_from (const std::unique_ptr< Derived > &other) |
Sor< ValueType, IndexType > * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
Sor< ValueType, IndexType > * | move_from (ptr_param< PolymorphicObject > other) |
Sor< ValueType, IndexType > * | clear () |
Public Member Functions inherited from gko::LinOpFactory | |
std::unique_ptr< LinOp > | generate (std::shared_ptr< const LinOp > input) const |
Public Member Functions inherited from gko::PolymorphicObject | |
PolymorphicObject & | operator= (const PolymorphicObject &) |
std::unique_ptr< PolymorphicObject > | create_default (std::shared_ptr< const Executor > exec) const |
Creates a new "default" object of the same dynamic type as this object. More... | |
std::unique_ptr< PolymorphicObject > | create_default () const |
Creates a new "default" object of the same dynamic type as this object. More... | |
std::unique_ptr< PolymorphicObject > | clone (std::shared_ptr< const Executor > exec) const |
Creates a clone of the object. More... | |
std::unique_ptr< PolymorphicObject > | clone () const |
Creates a clone of the object. More... | |
PolymorphicObject * | copy_from (const PolymorphicObject *other) |
Copies another object into this object. More... | |
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) |
Moves another object into this object. More... | |
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) |
Copies another object into this object. More... | |
PolymorphicObject * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
Copies another object into this object. More... | |
PolymorphicObject * | move_from (ptr_param< PolymorphicObject > other) |
Moves another object into this object. More... | |
PolymorphicObject * | clear () |
Transforms the object into its default state. More... | |
std::shared_ptr< const Executor > | get_executor () const noexcept |
Returns the Executor of the object. More... | |
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< Sor< ValueType, IndexType > > | |
void | convert_to (result_type *result) const override |
Converts the implementer to an object of type result_type. More... | |
void | move_to (result_type *result) override |
Converts the implementer to an object of type result_type by moving data from this object. More... | |
Public Member Functions inherited from gko::ConvertibleTo< Sor< ValueType, IndexType > > | |
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 () |
Creates a new parameter_type to set up the factory. | |
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 >()) |
Friends | |
class | EnablePolymorphicObject< Sor, LinOpFactory > |
class | enable_parameters_type< parameters_type, Sor > |
This class generates the (S)SOR preconditioner.
The SOR preconditioner starts from a splitting of the the matrix into , where contains all entries below the diagonal, and contains all entries above the diagonal. The application of the preconditioner is then defined as solving with
is known as the relaxation factor. The preconditioner can be made symmetric, leading to the SSOR preconitioner. Here, is defined as
A detailed description can be found in Iterative Methods for Sparse Linear Systems (Y. Saad) ch. 4.1.
This class is a factory, which will only generate the preconditioner. The resulting LinOp will represent the application of .
ValueType | The value type of the internally used CSR matrix |
IndexType | The index type of the internally used CSR matrix |
std::unique_ptr<composition_type> gko::preconditioner::Sor< ValueType, IndexType >::generate | ( | std::shared_ptr< const LinOp > | system_matrix | ) | const |
|
inline |
Returns the parameters used to construct the factory.
|
inline |
Returns the parameters used to construct the factory.