Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax > Class Template Reference

Allows to use an AMG smoother as standalone preconditioner. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/alina/arccore/alina/Relaxation.h>

Collaboration diagram for Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >:

Public Types

typedef Backend backend_type
typedef Relax< Backend > smoother
typedef Backend::matrix matrix
typedef Backend::vector vector
typedef smoother::params params
typedef Backend::params backend_params
typedef Backend::value_type value_type
typedef Backend::col_type col_type
typedef Backend::ptr_type ptr_type
typedef BuiltinBackend< value_type, col_type, ptr_type >::matrix build_matrix

Public Member Functions

template<class Matrix>
 RelaxationAsPreconditioner (const Matrix &M, const params &prm=params(), const backend_params &bprm=backend_params())
 RelaxationAsPreconditioner (std::shared_ptr< build_matrix > M, const params &prm=params(), const backend_params &bprm=backend_params())
template<class Vec1, class Vec2>
void apply (const Vec1 &rhs, Vec2 &&x) const
const matrix & system_matrix () const
std::shared_ptr< matrix > system_matrix_ptr () const
size_t bytes () const

Private Member Functions

void init (std::shared_ptr< build_matrix > M, const backend_params &bprm)

Private Attributes

params prm
std::shared_ptr< matrix > A
std::shared_ptr< smoother > S

Friends

std::ostream & operator<< (std::ostream &os, const RelaxationAsPreconditioner &p)

Detailed Description

template<class Backend, template< class > class Relax>
class Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >

Allows to use an AMG smoother as standalone preconditioner.

Definition at line 143 of file Relaxation.h.

Member Typedef Documentation

◆ backend_params

template<class Backend, template< class > class Relax>
typedef Backend::params Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::backend_params

Definition at line 154 of file Relaxation.h.

◆ backend_type

template<class Backend, template< class > class Relax>
typedef Backend Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::backend_type

Definition at line 147 of file Relaxation.h.

◆ build_matrix

template<class Backend, template< class > class Relax>
typedef BuiltinBackend<value_type,col_type,ptr_type>::matrix Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::build_matrix

Definition at line 159 of file Relaxation.h.

◆ col_type

template<class Backend, template< class > class Relax>
typedef Backend::col_type Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::col_type

Definition at line 157 of file Relaxation.h.

◆ matrix

template<class Backend, template< class > class Relax>
typedef Backend::matrix Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::matrix

Definition at line 151 of file Relaxation.h.

◆ params

template<class Backend, template< class > class Relax>
typedef smoother::params Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::params

Definition at line 153 of file Relaxation.h.

◆ ptr_type

template<class Backend, template< class > class Relax>
typedef Backend::ptr_type Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::ptr_type

Definition at line 158 of file Relaxation.h.

◆ smoother

template<class Backend, template< class > class Relax>
typedef Relax<Backend> Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::smoother

Definition at line 149 of file Relaxation.h.

◆ value_type

template<class Backend, template< class > class Relax>
typedef Backend::value_type Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::value_type

Definition at line 156 of file Relaxation.h.

◆ vector

template<class Backend, template< class > class Relax>
typedef Backend::vector Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::vector

Definition at line 152 of file Relaxation.h.

Constructor & Destructor Documentation

◆ RelaxationAsPreconditioner() [1/2]

template<class Backend, template< class > class Relax>
template<class Matrix>
Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::RelaxationAsPreconditioner ( const Matrix & M,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 162 of file Relaxation.h.

◆ RelaxationAsPreconditioner() [2/2]

template<class Backend, template< class > class Relax>
Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::RelaxationAsPreconditioner ( std::shared_ptr< build_matrix > M,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 170 of file Relaxation.h.

Member Function Documentation

◆ apply()

template<class Backend, template< class > class Relax>
template<class Vec1, class Vec2>
void Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::apply ( const Vec1 & rhs,
Vec2 && x ) const
inline

Definition at line 179 of file Relaxation.h.

◆ bytes()

template<class Backend, template< class > class Relax>
size_t Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::bytes ( ) const
inline

Definition at line 194 of file Relaxation.h.

◆ init()

template<class Backend, template< class > class Relax>
void Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::init ( std::shared_ptr< build_matrix > M,
const backend_params & bprm )
inlineprivate

Definition at line 213 of file Relaxation.h.

◆ system_matrix()

template<class Backend, template< class > class Relax>
const matrix & Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::system_matrix ( ) const
inline

Definition at line 184 of file Relaxation.h.

◆ system_matrix_ptr()

template<class Backend, template< class > class Relax>
std::shared_ptr< matrix > Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::system_matrix_ptr ( ) const
inline

Definition at line 189 of file Relaxation.h.

◆ operator<<

template<class Backend, template< class > class Relax>
std::ostream & operator<< ( std::ostream & os,
const RelaxationAsPreconditioner< Backend, Relax > & p )
friend

Definition at line 219 of file Relaxation.h.

Member Data Documentation

◆ A

template<class Backend, template< class > class Relax>
std::shared_ptr<matrix> Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::A
private

Definition at line 210 of file Relaxation.h.

◆ prm

template<class Backend, template< class > class Relax>
params Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::prm
private

Definition at line 208 of file Relaxation.h.

◆ S

template<class Backend, template< class > class Relax>
std::shared_ptr<smoother> Arcane::Alina::RelaxationAsPreconditioner< Backend, Relax >::S
private

Definition at line 211 of file Relaxation.h.


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