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

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

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

Classes

struct  params
 Relaxation parameters. More...
struct  sparse_vector

Public Types

typedef Backend::value_type value_type
typedef Backend::col_type col_type
typedef Backend::ptr_type ptr_type
typedef Backend::matrix matrix
typedef Backend::matrix_diagonal matrix_diagonal
typedef Backend::vector vector
typedef math::scalar_of< value_type >::type scalar_type
typedef Impl::ILUSolver< Backend > ilu_solve

Public Member Functions

template<class Matrix>
 ILUTRelaxation (const Matrix &A, const params &prm, const typename Backend::params &bprm)
 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

struct Arcane::Alina::ILUTRelaxation::params prm

Private Types

typedef BuiltinBackend< value_type, col_type, ptr_type >::matrix build_matrix

Private Attributes

std::shared_ptr< ilu_solve > ilu

Detailed Description

template<class Backend>
struct Arcane::Alina::ILUTRelaxation< Backend >
Note
ILUT is a serial algorithm and is only applicable to backends that support matrix row iteration (e.g. BuiltinBaclend or EigenBackend).
Parameters
BackendBackend for temporary structures allocation.

Definition at line 1499 of file Relaxation.h.

Member Typedef Documentation

◆ build_matrix

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

Definition at line 1666 of file Relaxation.h.

◆ col_type

template<class Backend>
typedef Backend::col_type Arcane::Alina::ILUTRelaxation< Backend >::col_type

Definition at line 1503 of file Relaxation.h.

◆ ilu_solve

template<class Backend>
typedef Impl::ILUSolver<Backend> Arcane::Alina::ILUTRelaxation< Backend >::ilu_solve

Definition at line 1511 of file Relaxation.h.

◆ matrix

template<class Backend>
typedef Backend::matrix Arcane::Alina::ILUTRelaxation< Backend >::matrix

Definition at line 1505 of file Relaxation.h.

◆ matrix_diagonal

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

Definition at line 1506 of file Relaxation.h.

◆ ptr_type

template<class Backend>
typedef Backend::ptr_type Arcane::Alina::ILUTRelaxation< Backend >::ptr_type

Definition at line 1504 of file Relaxation.h.

◆ scalar_type

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

Definition at line 1509 of file Relaxation.h.

◆ value_type

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

Definition at line 1502 of file Relaxation.h.

◆ vector

template<class Backend>
typedef Backend::vector Arcane::Alina::ILUTRelaxation< Backend >::vector

Definition at line 1507 of file Relaxation.h.

Constructor & Destructor Documentation

◆ ILUTRelaxation()

template<class Backend>
template<class Matrix>
Arcane::Alina::ILUTRelaxation< Backend >::ILUTRelaxation ( const Matrix & A,
const params & prm,
const typename Backend::params & bprm )
inline

Constructs smoother for the system matrix.

Parameters
AThe system matrix.
prmRelaxation parameters.
backend_prmBackend parameters.

Definition at line 1551 of file Relaxation.h.

Member Function Documentation

◆ apply()

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

Definition at line 1653 of file Relaxation.h.

◆ apply_post()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void Arcane::Alina::ILUTRelaxation< 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 1645 of file Relaxation.h.

◆ apply_pre()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void Arcane::Alina::ILUTRelaxation< 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 1636 of file Relaxation.h.

◆ bytes()

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

Memory used in bytes.

Implements Arcane::Alina::RelaxationBase.

Definition at line 1659 of file Relaxation.h.

Member Data Documentation

◆ ilu

template<class Backend>
std::shared_ptr<ilu_solve> Arcane::Alina::ILUTRelaxation< Backend >::ilu
private

Definition at line 1667 of file Relaxation.h.


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