Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver > Class Template Reference

Iterative solver wrapper for distributed linear systems. More...

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

Inheritance diagram for Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >:
Collaboration diagram for Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >:

Classes

struct  params

Public Types

typedef IterativeSolver::BackendType backend_type
using BackendType = backend_type
typedef DistributedMatrix< typename Precond::BackendType > matrix
typedef backend_type::value_type value_type
typedef backend_type::params backend_params
typedef BuiltinBackend< value_type >::matrix build_matrix
typedef math::scalar_of< value_type >::type scalar_type

Public Member Functions

template<class Matrix>
 DistributedPreconditionedSolver (mpi_communicator comm, const Matrix &A, const params &prm=params(), const backend_params &bprm=backend_params())
 DistributedPreconditionedSolver (mpi_communicator comm, std::shared_ptr< matrix > A, const params &prm=params(), const backend_params &bprm=backend_params())
template<class Backend>
 DistributedPreconditionedSolver (mpi_communicator comm, std::shared_ptr< DistributedMatrix< Backend > > A, const params &prm=params(), const backend_params &bprm=backend_params())
 DistributedPreconditionedSolver (mpi_communicator comm, std::shared_ptr< build_matrix > A, const params &prm=params(), const backend_params &bprm=backend_params())
template<class Matrix, class Vec1, class Vec2>
SolverResult operator() (const Matrix &A, const Vec1 &rhs, Vec2 &&x) const
template<class Vec1, class Vec2>
SolverResult operator() (const Vec1 &rhs, Vec2 &&x) const
template<class Vec1, class Vec2>
void apply (const Vec1 &rhs, Vec2 &&x) const
const Precond & precond () const
Precond & precond ()
const IterativeSolver & solver () const
std::shared_ptr< matrix > system_matrix_ptr () const
const matrix & system_matrix () const
void get_params (Alina::PropertyTree &p) const
size_t size () const

Public Attributes

struct Arcane::Alina::DistributedPreconditionedSolver::params prm

Private Attributes

size_t n
Precond P
IterativeSolver S

Friends

std::ostream & operator<< (std::ostream &os, const DistributedPreconditionedSolver &M)

Additional Inherited Members

Protected Member Functions inherited from Arcane::Alina::detail::non_copyable
 non_copyable (non_copyable const &)=delete
void operator= (non_copyable const &x)=delete

Detailed Description

template<class Precond, class IterativeSolver>
class Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >

Iterative solver wrapper for distributed linear systems.

Definition at line 44 of file DistributedPreconditionedSolver.h.

Member Typedef Documentation

◆ backend_params

template<class Precond, class IterativeSolver>
typedef backend_type::params Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::backend_params

Definition at line 58 of file DistributedPreconditionedSolver.h.

◆ backend_type

template<class Precond, class IterativeSolver>
typedef IterativeSolver::BackendType Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::backend_type

Definition at line 54 of file DistributedPreconditionedSolver.h.

◆ BackendType

template<class Precond, class IterativeSolver>
using Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::BackendType = backend_type

Definition at line 55 of file DistributedPreconditionedSolver.h.

◆ build_matrix

template<class Precond, class IterativeSolver>
typedef BuiltinBackend<value_type>::matrix Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::build_matrix

Definition at line 59 of file DistributedPreconditionedSolver.h.

◆ matrix

template<class Precond, class IterativeSolver>
typedef DistributedMatrix<typename Precond::BackendType> Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::matrix

Definition at line 56 of file DistributedPreconditionedSolver.h.

◆ scalar_type

template<class Precond, class IterativeSolver>
typedef math::scalar_of<value_type>::type Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::scalar_type

Definition at line 60 of file DistributedPreconditionedSolver.h.

◆ value_type

template<class Precond, class IterativeSolver>
typedef backend_type::value_type Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::value_type

Definition at line 57 of file DistributedPreconditionedSolver.h.

Constructor & Destructor Documentation

◆ DistributedPreconditionedSolver() [1/4]

template<class Precond, class IterativeSolver>
template<class Matrix>
Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::DistributedPreconditionedSolver ( mpi_communicator comm,
const Matrix & A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 84 of file DistributedPreconditionedSolver.h.

◆ DistributedPreconditionedSolver() [2/4]

template<class Precond, class IterativeSolver>
Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::DistributedPreconditionedSolver ( mpi_communicator comm,
std::shared_ptr< matrix > A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 93 of file DistributedPreconditionedSolver.h.

◆ DistributedPreconditionedSolver() [3/4]

template<class Precond, class IterativeSolver>
template<class Backend>
Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::DistributedPreconditionedSolver ( mpi_communicator comm,
std::shared_ptr< DistributedMatrix< Backend > > A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 105 of file DistributedPreconditionedSolver.h.

◆ DistributedPreconditionedSolver() [4/4]

template<class Precond, class IterativeSolver>
Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::DistributedPreconditionedSolver ( mpi_communicator comm,
std::shared_ptr< build_matrix > A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 117 of file DistributedPreconditionedSolver.h.

Member Function Documentation

◆ apply()

template<class Precond, class IterativeSolver>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::apply ( const Vec1 & rhs,
Vec2 && x ) const
inline

Definition at line 139 of file DistributedPreconditionedSolver.h.

◆ get_params()

template<class Precond, class IterativeSolver>
void Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::get_params ( Alina::PropertyTree & p) const
inline

Definition at line 170 of file DistributedPreconditionedSolver.h.

◆ operator()() [1/2]

template<class Precond, class IterativeSolver>
template<class Matrix, class Vec1, class Vec2>
SolverResult Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::operator() ( const Matrix & A,
const Vec1 & rhs,
Vec2 && x ) const
inline

Definition at line 127 of file DistributedPreconditionedSolver.h.

◆ operator()() [2/2]

template<class Precond, class IterativeSolver>
template<class Vec1, class Vec2>
SolverResult Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::operator() ( const Vec1 & rhs,
Vec2 && x ) const
inline

Definition at line 133 of file DistributedPreconditionedSolver.h.

◆ precond() [1/2]

template<class Precond, class IterativeSolver>
Precond & Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::precond ( )
inline

Definition at line 150 of file DistributedPreconditionedSolver.h.

◆ precond() [2/2]

template<class Precond, class IterativeSolver>
const Precond & Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::precond ( ) const
inline

Definition at line 145 of file DistributedPreconditionedSolver.h.

◆ size()

template<class Precond, class IterativeSolver>
size_t Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::size ( ) const
inline

Definition at line 175 of file DistributedPreconditionedSolver.h.

◆ solver()

template<class Precond, class IterativeSolver>
const IterativeSolver & Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::solver ( ) const
inline

Definition at line 155 of file DistributedPreconditionedSolver.h.

◆ system_matrix()

template<class Precond, class IterativeSolver>
const matrix & Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::system_matrix ( ) const
inline

Definition at line 165 of file DistributedPreconditionedSolver.h.

◆ system_matrix_ptr()

template<class Precond, class IterativeSolver>
std::shared_ptr< matrix > Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::system_matrix_ptr ( ) const
inline

Definition at line 160 of file DistributedPreconditionedSolver.h.

◆ operator<<

template<class Precond, class IterativeSolver>
std::ostream & operator<< ( std::ostream & os,
const DistributedPreconditionedSolver< Precond, IterativeSolver > & M )
friend

Definition at line 180 of file DistributedPreconditionedSolver.h.

Member Data Documentation

◆ n

template<class Precond, class IterativeSolver>
size_t Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::n
private

Definition at line 188 of file DistributedPreconditionedSolver.h.

◆ P

template<class Precond, class IterativeSolver>
Precond Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::P
private

Definition at line 190 of file DistributedPreconditionedSolver.h.

◆ S

template<class Precond, class IterativeSolver>
IterativeSolver Arcane::Alina::DistributedPreconditionedSolver< Precond, IterativeSolver >::S
private

Definition at line 191 of file DistributedPreconditionedSolver.h.


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