Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::JacobiPreconditioner< Backend, DiagVector > Class Template Reference

The Jacobi preconditioner z := r ./ d, for d the diagonal of the operator. More...

#include <preconditioners.hpp>

Public Types

using backend_t = Backend

Public Member Functions

 JacobiPreconditioner (backend_t, DiagVector &&diag)
Backend backend () const
const auto & diag () const
size_t domain_size () const
size_t range_size () const
auto make_domain_vector () const
auto make_range_vector () const
template<class XVector, class YVector>
void apply (const XVector &x, YVector &y) const

Static Public Member Functions

static constexpr size_t static_domain_size ()
static constexpr size_t static_range_size ()

Detailed Description

template<class Backend, class DiagVector>
class mundy::JacobiPreconditioner< Backend, DiagVector >

d is read at every apply.

Member Typedef Documentation

◆ backend_t

template<class Backend, class DiagVector>
using mundy::JacobiPreconditioner< Backend, DiagVector >::backend_t = Backend

Constructor & Destructor Documentation

◆ JacobiPreconditioner()

template<class Backend, class DiagVector>
mundy::JacobiPreconditioner< Backend, DiagVector >::JacobiPreconditioner ( backend_t ,
DiagVector && diag )
inlineexplicit

Member Function Documentation

◆ backend()

template<class Backend, class DiagVector>
Backend mundy::JacobiPreconditioner< Backend, DiagVector >::backend ( ) const
inline

◆ diag()

template<class Backend, class DiagVector>
const auto & mundy::JacobiPreconditioner< Backend, DiagVector >::diag ( ) const
inline

◆ domain_size()

template<class Backend, class DiagVector>
size_t mundy::JacobiPreconditioner< Backend, DiagVector >::domain_size ( ) const
inline

◆ range_size()

template<class Backend, class DiagVector>
size_t mundy::JacobiPreconditioner< Backend, DiagVector >::range_size ( ) const
inline

◆ static_domain_size()

template<class Backend, class DiagVector>
constexpr size_t mundy::JacobiPreconditioner< Backend, DiagVector >::static_domain_size ( )
inlinestaticconstexpr

◆ static_range_size()

template<class Backend, class DiagVector>
constexpr size_t mundy::JacobiPreconditioner< Backend, DiagVector >::static_range_size ( )
inlinestaticconstexpr

◆ make_domain_vector()

template<class Backend, class DiagVector>
auto mundy::JacobiPreconditioner< Backend, DiagVector >::make_domain_vector ( ) const
inline

◆ make_range_vector()

template<class Backend, class DiagVector>
auto mundy::JacobiPreconditioner< Backend, DiagVector >::make_range_vector ( ) const
inline

◆ apply()

template<class Backend, class DiagVector>
template<class XVector, class YVector>
void mundy::JacobiPreconditioner< Backend, DiagVector >::apply ( const XVector & x,
YVector & y ) const
inline