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

Distributed Matrix using message passing. More...

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

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

Public Types

typedef Backend::value_type value_type
typedef math::rhs_of< value_type >::type rhs_type
typedef math::scalar_of< value_type >::type scalar_type
typedef Backend::params backend_params
typedef Backend::matrix matrix
typedef CommunicationPattern< Backend > CommPattern
typedef Backend::matrix build_matrix

Public Member Functions

 DistributedMatrix (mpi_communicator comm, std::shared_ptr< build_matrix > a_loc, std::shared_ptr< build_matrix > a_rem, std::shared_ptr< CommPattern > c=std::shared_ptr< CommPattern >())
template<class OtherBackend>
 DistributedMatrix (const DistributedMatrix< OtherBackend > &A)
template<class Matrix>
 DistributedMatrix (mpi_communicator comm, const Matrix &A, ptrdiff_t _n_loc_cols=-1)
mpi_communicator comm () const
std::shared_ptr< build_matrix > local () const
std::shared_ptr< build_matrix > remote () const
std::shared_ptr< matrix > local_backend () const
std::shared_ptr< matrix > remote_backend () const
ptrdiff_t loc_rows () const
ptrdiff_t loc_cols () const
ptrdiff_t loc_col_shift () const
ptrdiff_t loc_nonzeros () const
ptrdiff_t glob_rows () const
ptrdiff_t glob_cols () const
ptrdiff_t glob_nonzeros () const
const CommunicationPattern< Backend > & cpat () const
void set_local (std::shared_ptr< matrix > a)
void move_to_backend (const backend_params &bprm=backend_params(), bool keep_src=false)
template<class A, class VecX, class B, class VecY>
void mul (A alpha, const VecX &x, B beta, VecY &y) const
template<class Vec1, class Vec2, class Vec3>
void residual (const Vec1 &f, const Vec2 &x, Vec3 &r) const

Private Attributes

std::shared_ptr< CommPattern > C
std::shared_ptr< matrix > A_loc
std::shared_ptr< matrix > A_rem
std::shared_ptr< build_matrix > a_loc
std::shared_ptr< build_matrix > a_rem
ptrdiff_t n_loc_rows
ptrdiff_t n_glob_rows
ptrdiff_t n_loc_cols
ptrdiff_t n_glob_cols
ptrdiff_t n_loc_nonzeros
ptrdiff_t n_glob_nonzeros

Detailed Description

template<class Backend>
class Arcane::Alina::DistributedMatrix< Backend >

Distributed Matrix using message passing.

Definition at line 349 of file DistributedMatrix.h.

Member Typedef Documentation

◆ backend_params

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

Definition at line 356 of file DistributedMatrix.h.

◆ build_matrix

template<class Backend>
typedef Backend::matrix Arcane::Alina::DistributedMatrix< Backend >::build_matrix

Definition at line 359 of file DistributedMatrix.h.

◆ CommPattern

template<class Backend>
typedef CommunicationPattern<Backend> Arcane::Alina::DistributedMatrix< Backend >::CommPattern

Definition at line 358 of file DistributedMatrix.h.

◆ matrix

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

Definition at line 357 of file DistributedMatrix.h.

◆ rhs_type

template<class Backend>
typedef math::rhs_of<value_type>::type Arcane::Alina::DistributedMatrix< Backend >::rhs_type

Definition at line 354 of file DistributedMatrix.h.

◆ scalar_type

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

Definition at line 355 of file DistributedMatrix.h.

◆ value_type

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

Definition at line 353 of file DistributedMatrix.h.

Constructor & Destructor Documentation

◆ DistributedMatrix() [1/3]

template<class Backend>
Arcane::Alina::DistributedMatrix< Backend >::DistributedMatrix ( mpi_communicator comm,
std::shared_ptr< build_matrix > a_loc,
std::shared_ptr< build_matrix > a_rem,
std::shared_ptr< CommPattern > c = std::shared_ptr<CommPattern>() )
inline

Definition at line 361 of file DistributedMatrix.h.

◆ DistributedMatrix() [2/3]

template<class Backend>
template<class OtherBackend>
Arcane::Alina::DistributedMatrix< Backend >::DistributedMatrix ( const DistributedMatrix< OtherBackend > & A)
inline

Definition at line 388 of file DistributedMatrix.h.

◆ DistributedMatrix() [3/3]

template<class Backend>
template<class Matrix>
Arcane::Alina::DistributedMatrix< Backend >::DistributedMatrix ( mpi_communicator comm,
const Matrix & A,
ptrdiff_t _n_loc_cols = -1 )
inline

Definition at line 405 of file DistributedMatrix.h.

Member Function Documentation

◆ comm()

template<class Backend>
mpi_communicator Arcane::Alina::DistributedMatrix< Backend >::comm ( ) const
inline

Definition at line 474 of file DistributedMatrix.h.

◆ cpat()

template<class Backend>
const CommunicationPattern< Backend > & Arcane::Alina::DistributedMatrix< Backend >::cpat ( ) const
inline

Definition at line 534 of file DistributedMatrix.h.

◆ glob_cols()

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::glob_cols ( ) const
inline

Definition at line 524 of file DistributedMatrix.h.

◆ glob_nonzeros()

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::glob_nonzeros ( ) const
inline

Definition at line 529 of file DistributedMatrix.h.

◆ glob_rows()

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::glob_rows ( ) const
inline

Definition at line 519 of file DistributedMatrix.h.

◆ loc_col_shift()

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::loc_col_shift ( ) const
inline

Definition at line 509 of file DistributedMatrix.h.

◆ loc_cols()

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::loc_cols ( ) const
inline

Definition at line 504 of file DistributedMatrix.h.

◆ loc_nonzeros()

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::loc_nonzeros ( ) const
inline

Definition at line 514 of file DistributedMatrix.h.

◆ loc_rows()

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::loc_rows ( ) const
inline

Definition at line 499 of file DistributedMatrix.h.

◆ local()

template<class Backend>
std::shared_ptr< build_matrix > Arcane::Alina::DistributedMatrix< Backend >::local ( ) const
inline

Definition at line 479 of file DistributedMatrix.h.

◆ local_backend()

template<class Backend>
std::shared_ptr< matrix > Arcane::Alina::DistributedMatrix< Backend >::local_backend ( ) const
inline

Definition at line 489 of file DistributedMatrix.h.

◆ move_to_backend()

template<class Backend>
void Arcane::Alina::DistributedMatrix< Backend >::move_to_backend ( const backend_params & bprm = backend_params(),
bool keep_src = false )
inline

Definition at line 544 of file DistributedMatrix.h.

◆ mul()

template<class Backend>
template<class A, class VecX, class B, class VecY>
void Arcane::Alina::DistributedMatrix< Backend >::mul ( A alpha,
const VecX & x,
B beta,
VecY & y ) const
inline

Definition at line 573 of file DistributedMatrix.h.

◆ remote()

template<class Backend>
std::shared_ptr< build_matrix > Arcane::Alina::DistributedMatrix< Backend >::remote ( ) const
inline

Definition at line 484 of file DistributedMatrix.h.

◆ remote_backend()

template<class Backend>
std::shared_ptr< matrix > Arcane::Alina::DistributedMatrix< Backend >::remote_backend ( ) const
inline

Definition at line 494 of file DistributedMatrix.h.

◆ residual()

template<class Backend>
template<class Vec1, class Vec2, class Vec3>
void Arcane::Alina::DistributedMatrix< Backend >::residual ( const Vec1 & f,
const Vec2 & x,
Vec3 & r ) const
inline

Definition at line 590 of file DistributedMatrix.h.

◆ set_local()

template<class Backend>
void Arcane::Alina::DistributedMatrix< Backend >::set_local ( std::shared_ptr< matrix > a)
inline

Definition at line 539 of file DistributedMatrix.h.

Member Data Documentation

◆ A_loc

template<class Backend>
std::shared_ptr<matrix> Arcane::Alina::DistributedMatrix< Backend >::A_loc
private

Definition at line 606 of file DistributedMatrix.h.

◆ a_loc

template<class Backend>
std::shared_ptr<build_matrix> Arcane::Alina::DistributedMatrix< Backend >::a_loc
private

Definition at line 607 of file DistributedMatrix.h.

◆ A_rem

template<class Backend>
std::shared_ptr<matrix> Arcane::Alina::DistributedMatrix< Backend >::A_rem
private

Definition at line 606 of file DistributedMatrix.h.

◆ a_rem

template<class Backend>
std::shared_ptr<build_matrix> Arcane::Alina::DistributedMatrix< Backend >::a_rem
private

Definition at line 607 of file DistributedMatrix.h.

◆ C

template<class Backend>
std::shared_ptr<CommPattern> Arcane::Alina::DistributedMatrix< Backend >::C
private

Definition at line 605 of file DistributedMatrix.h.

◆ n_glob_cols

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::n_glob_cols
private

Definition at line 610 of file DistributedMatrix.h.

◆ n_glob_nonzeros

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::n_glob_nonzeros
private

Definition at line 611 of file DistributedMatrix.h.

◆ n_glob_rows

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::n_glob_rows
private

Definition at line 609 of file DistributedMatrix.h.

◆ n_loc_cols

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::n_loc_cols
private

Definition at line 610 of file DistributedMatrix.h.

◆ n_loc_nonzeros

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::n_loc_nonzeros
private

Definition at line 611 of file DistributedMatrix.h.

◆ n_loc_rows

template<class Backend>
ptrdiff_t Arcane::Alina::DistributedMatrix< Backend >::n_loc_rows
private

Definition at line 609 of file DistributedMatrix.h.


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