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

Gauss-Seidel relaxation. More...

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

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

Classes

struct  params
 Relaxation parameters. More...
struct  parallel_sweep

Public Member Functions

template<class Matrix>
 GaussSeidelRelaxation (const Matrix &A, const params &prm, const typename Backend::params &)
 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 &) 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 &) const
 Apply post-relaxation.
template<class Matrix, class VectorRHS, class VectorX>
void apply (const Matrix &A, const VectorRHS &rhs, VectorX &x) const
size_t bytes () const
 Memory used in bytes.

Public Attributes

bool is_serial

Static Private Member Functions

template<class Matrix, class VectorRHS, class VectorX>
static void serial_sweep (const Matrix &A, const VectorRHS &rhs, VectorX &x, bool forward)

Private Attributes

std::shared_ptr< parallel_sweep< true > > forward
std::shared_ptr< parallel_sweep< false > > backward

Detailed Description

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

Gauss-Seidel relaxation.

Note
This is a serial relaxation and is only applicable to backends that support matrix row iteration (e.g. BuiltinBackend or EigenBackend).
Parameters
BackendBackend for temporary structures allocation.

Definition at line 508 of file Relaxation.h.

Constructor & Destructor Documentation

◆ GaussSeidelRelaxation()

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

Constructs smoother for the system matrix.

Parameters
AThe system matrix.
prmRelaxation parameters.
backend_prmBackend parameters.

Definition at line 537 of file Relaxation.h.

Member Function Documentation

◆ apply()

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

Definition at line 567 of file Relaxation.h.

◆ apply_post()

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

Apply post-relaxation.

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

Definition at line 558 of file Relaxation.h.

◆ apply_pre()

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

Apply pre-relaxation.

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

Definition at line 548 of file Relaxation.h.

◆ bytes()

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

Memory used in bytes.

Implements Arcane::Alina::RelaxationBase.

Definition at line 580 of file Relaxation.h.

◆ serial_sweep()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX>
void Arcane::Alina::GaussSeidelRelaxation< Backend >::serial_sweep ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
bool forward )
inlinestaticprivate

Definition at line 593 of file Relaxation.h.

Member Data Documentation

◆ backward

template<class Backend>
std::shared_ptr<parallel_sweep<false> > Arcane::Alina::GaussSeidelRelaxation< Backend >::backward
private

Definition at line 819 of file Relaxation.h.

◆ forward

template<class Backend>
std::shared_ptr<parallel_sweep<true> > Arcane::Alina::GaussSeidelRelaxation< Backend >::forward
private

Definition at line 818 of file Relaxation.h.

◆ is_serial

template<class Backend>
bool Arcane::Alina::GaussSeidelRelaxation< Backend >::is_serial

Definition at line 533 of file Relaxation.h.


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