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

Sparse approximate interface smoother. More...

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

Inheritance diagram for Arcane::Alina::SPAI0Relaxation< Backend >:
Collaboration diagram for Arcane::Alina::SPAI0Relaxation< Backend >:

Public Types

typedef Backend::value_type value_type
typedef Backend::matrix_diagonal matrix_diagonal
typedef math::scalar_of< value_type >::type scalar_type
typedef Alina::detail::empty_params params
 Relaxation parameters.

Public Member Functions

template<class Matrix>
 SPAI0Relaxation (const Matrix &A, const params &, const typename Backend::params &backend_prm)
 Constructs smoother for the system matrix.
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void apply_pre (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &tmp) const
 Apply pre-relaxation.
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void apply_post (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &tmp) const
 Apply post-relaxation.
template<class Matrix, class VectorRHS, class VectorX>
void apply (const Matrix &, const VectorRHS &rhs, VectorX &x) const
size_t bytes () const
 Memory used in bytes.

Public Attributes

std::shared_ptr< matrix_diagonal > M

Detailed Description

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

Sparse approximate interface smoother.

The inverse matrix is approximated with diagonal matrix.

Template Parameters
BackendBackend for temporary structures allocation.
See also
[Broker2002]

Definition at line 1880 of file Relaxation.h.

Member Typedef Documentation

◆ matrix_diagonal

template<class Backend>
typedef Backend::matrix_diagonal Arcane::Alina::SPAI0Relaxation< Backend >::matrix_diagonal

Definition at line 1884 of file Relaxation.h.

◆ params

template<class Backend>
typedef Alina::detail::empty_params Arcane::Alina::SPAI0Relaxation< Backend >::params

Relaxation parameters.

Definition at line 1888 of file Relaxation.h.

◆ scalar_type

template<class Backend>
typedef math::scalar_of<value_type>::type Arcane::Alina::SPAI0Relaxation< Backend >::scalar_type

Definition at line 1886 of file Relaxation.h.

◆ value_type

template<class Backend>
typedef Backend::value_type Arcane::Alina::SPAI0Relaxation< Backend >::value_type

Definition at line 1883 of file Relaxation.h.

Constructor & Destructor Documentation

◆ SPAI0Relaxation()

template<class Backend>
template<class Matrix>
Arcane::Alina::SPAI0Relaxation< Backend >::SPAI0Relaxation ( const Matrix & A,
const params & ,
const typename Backend::params & backend_prm )
inline

Constructs smoother for the system matrix.

Parameters
AThe system matrix.
prmRelaxation parameters.
backend_prmBackend parameters.

Definition at line 1892 of file Relaxation.h.

References Arcane::arccoreParallelFor().

Here is the call graph for this function:

Member Function Documentation

◆ apply()

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

Definition at line 1937 of file Relaxation.h.

◆ apply_post()

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

Apply post-relaxation.

Parameters
ASystem matrix.
rhsRight-hand side.
xSolution vector.
tmpScratch vector.
prmRelaxation parameters.

Definition at line 1929 of file Relaxation.h.

◆ apply_pre()

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

Apply pre-relaxation.

Parameters
ASystem matrix.
rhsRight-hand side.
xSolution vector.
tmpScratch vector.
prmRelaxation parameters.

Definition at line 1920 of file Relaxation.h.

◆ bytes()

template<class Backend>
size_t Arcane::Alina::SPAI0Relaxation< Backend >::bytes ( ) const
inlinevirtual

Memory used in bytes.

Implements Arcane::Alina::RelaxationBase.

Definition at line 1942 of file Relaxation.h.

Member Data Documentation

◆ M

template<class Backend>
std::shared_ptr<matrix_diagonal> Arcane::Alina::SPAI0Relaxation< Backend >::M

Definition at line 1947 of file Relaxation.h.


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