Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::Alina::RelaxationRuntime< Backend > Struct Template Reference

Runtime configurable relaxation. More...

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

Collaboration diagram for Arcane::Alina::RelaxationRuntime< Backend >:

Public Types

typedef Alina::PropertyTree params
typedef Backend::params backend_params

Public Member Functions

template<class Matrix>
 RelaxationRuntime (const Matrix &A, params prm=params(), const backend_params &bprm=backend_params())
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void apply_pre (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &tmp) const
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void apply_post (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &tmp) const
template<class Matrix, class VectorRHS, class VectorX>
void apply (const Matrix &A, const VectorRHS &rhs, VectorX &x) const
size_t bytes () const
template<template< class > class Relaxation, class Matrix>
std::enable_if_t< backend::relaxation_is_supported< Backend, Relaxation >::value, RelaxationBase * > call_constructor (const Matrix &A, const params &prm, const backend_params &bprm)
template<template< class > class Relaxation, class Matrix>
std::enable_if_t<!backend::relaxation_is_supported< Backend, Relaxation >::value, RelaxationBase * > call_constructor (const Matrix &, const params &, const backend_params &)
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type call_apply_pre (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &tmp) const
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type call_apply_pre (const Matrix &, const VectorRHS &, VectorX &, VectorTMP &) const
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type call_apply_post (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &tmp) const
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type call_apply_post (const Matrix &, const VectorRHS &, VectorX &, VectorTMP &) const
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type call_apply (const Matrix &A, const VectorRHS &rhs, VectorX &x) const
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type call_apply (const Matrix &, const VectorRHS &, VectorX &) const
void _throwBadTypeType () const
void _throwUnsupportedBackendType () const

Private Attributes

eRelaxationType m_relaxation_type = eRelaxationType::SPAI0Relaxation
RelaxationBasem_relaxation = nullptr

Detailed Description

template<class Backend>
struct Arcane::Alina::RelaxationRuntime< Backend >

Runtime configurable relaxation.

Definition at line 91 of file RelaxationRuntime.h.

Member Typedef Documentation

◆ backend_params

template<class Backend>
typedef Backend::params Arcane::Alina::RelaxationRuntime< Backend >::backend_params

Definition at line 94 of file RelaxationRuntime.h.

◆ params

template<class Backend>
typedef Alina::PropertyTree Arcane::Alina::RelaxationRuntime< Backend >::params

Definition at line 93 of file RelaxationRuntime.h.

Constructor & Destructor Documentation

◆ RelaxationRuntime()

template<class Backend>
template<class Matrix>
Arcane::Alina::RelaxationRuntime< Backend >::RelaxationRuntime ( const Matrix & A,
params prm = params(),
const backend_params & bprm = backend_params() )
inlineexplicit

Definition at line 97 of file RelaxationRuntime.h.

◆ ~RelaxationRuntime()

template<class Backend>
Arcane::Alina::RelaxationRuntime< Backend >::~RelaxationRuntime ( )
inline

Definition at line 119 of file RelaxationRuntime.h.

Member Function Documentation

◆ _throwBadTypeType()

template<class Backend>
void Arcane::Alina::RelaxationRuntime< Backend >::_throwBadTypeType ( ) const
inline

Definition at line 242 of file RelaxationRuntime.h.

◆ _throwUnsupportedBackendType()

template<class Backend>
void Arcane::Alina::RelaxationRuntime< Backend >::_throwUnsupportedBackendType ( ) const
inline

Definition at line 247 of file RelaxationRuntime.h.

◆ apply()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX>
void Arcane::Alina::RelaxationRuntime< Backend >::apply ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x ) const
inline

Definition at line 163 of file RelaxationRuntime.h.

◆ apply_post()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void Arcane::Alina::RelaxationRuntime< Backend >::apply_post ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP & tmp ) const
inline

Definition at line 144 of file RelaxationRuntime.h.

◆ apply_pre()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void Arcane::Alina::RelaxationRuntime< Backend >::apply_pre ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP & tmp ) const
inline

Definition at line 125 of file RelaxationRuntime.h.

◆ bytes()

template<class Backend>
size_t Arcane::Alina::RelaxationRuntime< Backend >::bytes ( ) const
inline

Definition at line 181 of file RelaxationRuntime.h.

◆ call_apply() [1/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type Arcane::Alina::RelaxationRuntime< Backend >::call_apply ( const Matrix & ,
const VectorRHS & ,
VectorX &  ) const
inline

Definition at line 237 of file RelaxationRuntime.h.

◆ call_apply() [2/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type Arcane::Alina::RelaxationRuntime< Backend >::call_apply ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x ) const
inline

Definition at line 230 of file RelaxationRuntime.h.

◆ call_apply_post() [1/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type Arcane::Alina::RelaxationRuntime< Backend >::call_apply_post ( const Matrix & ,
const VectorRHS & ,
VectorX & ,
VectorTMP &  ) const
inline

Definition at line 223 of file RelaxationRuntime.h.

◆ call_apply_post() [2/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type Arcane::Alina::RelaxationRuntime< Backend >::call_apply_post ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP & tmp ) const
inline

Definition at line 216 of file RelaxationRuntime.h.

◆ call_apply_pre() [1/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type Arcane::Alina::RelaxationRuntime< Backend >::call_apply_pre ( const Matrix & ,
const VectorRHS & ,
VectorX & ,
VectorTMP &  ) const
inline

Definition at line 209 of file RelaxationRuntime.h.

◆ call_apply_pre() [2/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix, class VectorRHS, class VectorX, class VectorTMP>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void >::type Arcane::Alina::RelaxationRuntime< Backend >::call_apply_pre ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP & tmp ) const
inline

Definition at line 202 of file RelaxationRuntime.h.

◆ call_constructor() [1/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix>
std::enable_if_t<!backend::relaxation_is_supported< Backend, Relaxation >::value, RelaxationBase * > Arcane::Alina::RelaxationRuntime< Backend >::call_constructor ( const Matrix & ,
const params & ,
const backend_params &  )
inline

Definition at line 195 of file RelaxationRuntime.h.

◆ call_constructor() [2/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix>
std::enable_if_t< backend::relaxation_is_supported< Backend, Relaxation >::value, RelaxationBase * > Arcane::Alina::RelaxationRuntime< Backend >::call_constructor ( const Matrix & A,
const params & prm,
const backend_params & bprm )
inline

Definition at line 188 of file RelaxationRuntime.h.

Member Data Documentation

◆ m_relaxation

template<class Backend>
RelaxationBase* Arcane::Alina::RelaxationRuntime< Backend >::m_relaxation = nullptr
private

Definition at line 257 of file RelaxationRuntime.h.

◆ m_relaxation_type

template<class Backend>
eRelaxationType Arcane::Alina::RelaxationRuntime< Backend >::m_relaxation_type = eRelaxationType::SPAI0Relaxation
private

Definition at line 256 of file RelaxationRuntime.h.


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