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

Distributed memory sparse approximate inverse relaxation scheme. More...

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

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

Public Types

typedef Backend backend_type
using BackendType = backend_type
typedef Backend::params backend_params
typedef Alina::PropertyTree params

Public Member Functions

 DistributedRelaxationRuntime (const DistributedMatrix< Backend > &A, params prm, 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
template<template< class > class Relaxation, class Matrix>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void * >::type call_constructor (const Matrix &A, const params &prm, const backend_params &bprm)
template<template< class > class Relaxation, class Matrix>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void * >::type 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

Public Attributes

eRelaxationType r
void * handle = nullptr

Detailed Description

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

Distributed memory sparse approximate inverse relaxation scheme.

Definition at line 43 of file DistributedRelaxationRuntime.h.

Member Typedef Documentation

◆ backend_params

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

Definition at line 47 of file DistributedRelaxationRuntime.h.

◆ backend_type

template<class Backend>
typedef Backend Arcane::Alina::DistributedRelaxationRuntime< Backend >::backend_type

Definition at line 45 of file DistributedRelaxationRuntime.h.

◆ BackendType

template<class Backend>
using Arcane::Alina::DistributedRelaxationRuntime< Backend >::BackendType = backend_type

Definition at line 46 of file DistributedRelaxationRuntime.h.

◆ params

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

Definition at line 48 of file DistributedRelaxationRuntime.h.

Constructor & Destructor Documentation

◆ DistributedRelaxationRuntime()

template<class Backend>
Arcane::Alina::DistributedRelaxationRuntime< Backend >::DistributedRelaxationRuntime ( const DistributedMatrix< Backend > & A,
params prm,
const backend_params & bprm = backend_params() )
inline

Definition at line 53 of file DistributedRelaxationRuntime.h.

◆ ~DistributedRelaxationRuntime()

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

Definition at line 96 of file DistributedRelaxationRuntime.h.

Member Function Documentation

◆ apply()

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

Definition at line 206 of file DistributedRelaxationRuntime.h.

◆ apply_post()

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

Definition at line 167 of file DistributedRelaxationRuntime.h.

◆ apply_pre()

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

Definition at line 128 of file DistributedRelaxationRuntime.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::DistributedRelaxationRuntime< Backend >::call_apply ( const Matrix & ,
const VectorRHS & ,
VectorX &  ) const
inline

Definition at line 295 of file DistributedRelaxationRuntime.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::DistributedRelaxationRuntime< Backend >::call_apply ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x ) const
inline

Definition at line 288 of file DistributedRelaxationRuntime.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::DistributedRelaxationRuntime< Backend >::call_apply_post ( const Matrix & ,
const VectorRHS & ,
VectorX & ,
VectorTMP &  ) const
inline

Definition at line 281 of file DistributedRelaxationRuntime.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::DistributedRelaxationRuntime< Backend >::call_apply_post ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP & tmp ) const
inline

Definition at line 274 of file DistributedRelaxationRuntime.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::DistributedRelaxationRuntime< Backend >::call_apply_pre ( const Matrix & ,
const VectorRHS & ,
VectorX & ,
VectorTMP &  ) const
inline

Definition at line 267 of file DistributedRelaxationRuntime.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::DistributedRelaxationRuntime< Backend >::call_apply_pre ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP & tmp ) const
inline

Definition at line 260 of file DistributedRelaxationRuntime.h.

◆ call_constructor() [1/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix>
std::enable_if<!backend::relaxation_is_supported< Backend, Relaxation >::value, void * >::type Arcane::Alina::DistributedRelaxationRuntime< Backend >::call_constructor ( const Matrix & ,
const params & ,
const backend_params &  )
inline

Definition at line 253 of file DistributedRelaxationRuntime.h.

◆ call_constructor() [2/2]

template<class Backend>
template<template< class > class Relaxation, class Matrix>
std::enable_if< backend::relaxation_is_supported< Backend, Relaxation >::value, void * >::type Arcane::Alina::DistributedRelaxationRuntime< Backend >::call_constructor ( const Matrix & A,
const params & prm,
const backend_params & bprm )
inline

Definition at line 246 of file DistributedRelaxationRuntime.h.

Member Data Documentation

◆ handle

template<class Backend>
void* Arcane::Alina::DistributedRelaxationRuntime< Backend >::handle = nullptr

Definition at line 51 of file DistributedRelaxationRuntime.h.

◆ r

template<class Backend>
eRelaxationType Arcane::Alina::DistributedRelaxationRuntime< Backend >::r

Definition at line 50 of file DistributedRelaxationRuntime.h.


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