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

Runtime wrapper for distributed direct solvers. More...

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

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

Public Types

typedef Backend::value_type value_type
typedef Alina::PropertyTree params
using SkylineSolverType = DistributedSkylineLUDirectSolver<Backend>

Public Member Functions

template<class Matrix>
 DistributedDirectSolverRuntime (Alina::mpi_communicator comm, const Matrix &A, params prm=params())
template<class Vec1, class Vec2>
void operator() (const Vec1 &rhs, Vec2 &x) const
eDistributedDirectSolverType type () const

Static Public Member Functions

static size_t coarse_enough ()

Private Member Functions

template<class S, class V, class Matrix>
std::enable_if< std::is_same< V, float >::value||std::is_same< V, double >::value, void >::type do_construct (Alina::mpi_communicator comm, const Matrix &A, const params &prm)
template<class S, class V, class Matrix>
std::enable_if<!std::is_same< V, float >::value &&!std::is_same< V, double >::value, void >::type do_construct (Alina::mpi_communicator, const Matrix &, const params &)
template<class S, class V, class Vec1, class Vec2>
std::enable_if< std::is_same< V, float >::value||std::is_same< V, double >::value, void >::type do_solve (const Vec1 &rhs, Vec2 &x) const
template<class S, class V, class Vec1, class Vec2>
std::enable_if<!std::is_same< V, float >::value &&!std::is_same< V, double >::value, void >::type do_solve (const Vec1 &, Vec2 &) const
template<class S, class V>
std::enable_if< std::is_same< V, float >::value||std::is_same< V, double >::value, void >::type do_destruct ()
template<class S, class V>
std::enable_if<!std::is_same< V, float >::value &&!std::is_same< V, double >::value, void >::type do_destruct ()

Private Attributes

eDistributedDirectSolverType s
void * handle = nullptr

Detailed Description

template<typename Backend>
class Arcane::Alina::DistributedDirectSolverRuntime< Backend >

Runtime wrapper for distributed direct solvers.

Definition at line 77 of file DistributedDirectSolverRuntime.h.

Member Typedef Documentation

◆ params

template<typename Backend>
typedef Alina::PropertyTree Arcane::Alina::DistributedDirectSolverRuntime< Backend >::params

Definition at line 82 of file DistributedDirectSolverRuntime.h.

◆ SkylineSolverType

template<typename Backend>
using Arcane::Alina::DistributedDirectSolverRuntime< Backend >::SkylineSolverType = DistributedSkylineLUDirectSolver<Backend>

Definition at line 83 of file DistributedDirectSolverRuntime.h.

◆ value_type

template<typename Backend>
typedef Backend::value_type Arcane::Alina::DistributedDirectSolverRuntime< Backend >::value_type

Definition at line 81 of file DistributedDirectSolverRuntime.h.

Constructor & Destructor Documentation

◆ DistributedDirectSolverRuntime()

template<typename Backend>
template<class Matrix>
Arcane::Alina::DistributedDirectSolverRuntime< Backend >::DistributedDirectSolverRuntime ( Alina::mpi_communicator comm,
const Matrix & A,
params prm = params() )
inline

Definition at line 86 of file DistributedDirectSolverRuntime.h.

◆ ~DistributedDirectSolverRuntime()

template<typename Backend>
Arcane::Alina::DistributedDirectSolverRuntime< Backend >::~DistributedDirectSolverRuntime ( )
inline

Definition at line 118 of file DistributedDirectSolverRuntime.h.

Member Function Documentation

◆ coarse_enough()

template<typename Backend>
size_t Arcane::Alina::DistributedDirectSolverRuntime< Backend >::coarse_enough ( )
inlinestatic

Definition at line 101 of file DistributedDirectSolverRuntime.h.

◆ do_construct() [1/2]

template<typename Backend>
template<class S, class V, class Matrix>
std::enable_if< std::is_same< V, float >::value||std::is_same< V, double >::value, void >::type Arcane::Alina::DistributedDirectSolverRuntime< Backend >::do_construct ( Alina::mpi_communicator comm,
const Matrix & A,
const params & prm )
inlineprivate

Definition at line 140 of file DistributedDirectSolverRuntime.h.

◆ do_construct() [2/2]

template<typename Backend>
template<class S, class V, class Matrix>
std::enable_if<!std::is_same< V, float >::value &&!std::is_same< V, double >::value, void >::type Arcane::Alina::DistributedDirectSolverRuntime< Backend >::do_construct ( Alina::mpi_communicator ,
const Matrix & ,
const params &  )
inlineprivate

Definition at line 147 of file DistributedDirectSolverRuntime.h.

◆ do_destruct() [1/2]

template<typename Backend>
template<class S, class V>
std::enable_if<!std::is_same< V, float >::value &&!std::is_same< V, double >::value, void >::type Arcane::Alina::DistributedDirectSolverRuntime< Backend >::do_destruct ( )
inlineprivate

Definition at line 175 of file DistributedDirectSolverRuntime.h.

◆ do_destruct() [2/2]

template<typename Backend>
template<class S, class V>
std::enable_if< std::is_same< V, float >::value||std::is_same< V, double >::value, void >::type Arcane::Alina::DistributedDirectSolverRuntime< Backend >::do_destruct ( )
inlineprivate

Definition at line 168 of file DistributedDirectSolverRuntime.h.

◆ do_solve() [1/2]

template<typename Backend>
template<class S, class V, class Vec1, class Vec2>
std::enable_if<!std::is_same< V, float >::value &&!std::is_same< V, double >::value, void >::type Arcane::Alina::DistributedDirectSolverRuntime< Backend >::do_solve ( const Vec1 & ,
Vec2 &  ) const
inlineprivate

Definition at line 161 of file DistributedDirectSolverRuntime.h.

◆ do_solve() [2/2]

template<typename Backend>
template<class S, class V, class Vec1, class Vec2>
std::enable_if< std::is_same< V, float >::value||std::is_same< V, double >::value, void >::type Arcane::Alina::DistributedDirectSolverRuntime< Backend >::do_solve ( const Vec1 & rhs,
Vec2 & x ) const
inlineprivate

Definition at line 154 of file DistributedDirectSolverRuntime.h.

◆ operator()()

template<typename Backend>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedDirectSolverRuntime< Backend >::operator() ( const Vec1 & rhs,
Vec2 & x ) const
inline

Definition at line 107 of file DistributedDirectSolverRuntime.h.

◆ type()

template<typename Backend>
eDistributedDirectSolverType Arcane::Alina::DistributedDirectSolverRuntime< Backend >::type ( ) const
inline

Definition at line 131 of file DistributedDirectSolverRuntime.h.

Member Data Documentation

◆ handle

template<typename Backend>
void* Arcane::Alina::DistributedDirectSolverRuntime< Backend >::handle = nullptr
private

Definition at line 136 of file DistributedDirectSolverRuntime.h.

◆ s

template<typename Backend>
eDistributedDirectSolverType Arcane::Alina::DistributedDirectSolverRuntime< Backend >::s
private

Definition at line 135 of file DistributedDirectSolverRuntime.h.


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