Alien  1.3.0
User documentation
Loading...
Searching...
No Matches
Alien::MatrixDistribution Class Reference

Computes a matrix distribution. More...

#include <core/alien/distribution/MatrixDistribution.h>

Classes

struct  Internal
 Internal implementation of the matrix distribution. More...

Public Member Functions

 MatrixDistribution ()
 Constructor.
 MatrixDistribution (const ISpace &row_space, const ISpace &col_space, Arccore::MessagePassing::IMessagePassingMng *parallel_mng)
 Constructor.
 MatrixDistribution (Arccore::Integer global_row_size, Arccore::Integer global_col_size, Arccore::MessagePassing::IMessagePassingMng *parallel_mng)
 Constructor.
 MatrixDistribution (Arccore::Integer global_row_size, Arccore::Integer global_col_size, std::shared_ptr< Arccore::MessagePassing::IMessagePassingMng > parallel_mng)
 Constructor.
 MatrixDistribution (const ISpace &row_space, const ISpace &col_space, Integer local_row_size, IMessagePassingMng *parallel_mng)
 Constructor.
 MatrixDistribution (const ISpace &row_space, const ISpace &col_space, Integer local_row_size, Integer local_col_size, IMessagePassingMng *parallel_mng)
 Constructor.
 MatrixDistribution (Arccore::Integer global_row_size, Arccore::Integer global_col_size, Arccore::Integer local_row_size, Arccore::MessagePassing::IMessagePassingMng *parallel_mng)
 Constructor.
 MatrixDistribution (Arccore::Integer global_row_size, Arccore::Integer global_col_size, Arccore::Integer local_row_size, Arccore::Integer local_col_size, Arccore::MessagePassing::IMessagePassingMng *parallel_mng)
 Constructor.
 MatrixDistribution (Arccore::Integer global_row_size, Arccore::Integer global_col_size, Arccore::Integer local_row_size, std::shared_ptr< Arccore::MessagePassing::IMessagePassingMng > parallel_mng)
 Constructor.
 MatrixDistribution (Arccore::Integer global_row_size, Arccore::Integer global_col_size, Arccore::Integer local_row_size, Arccore::Integer local_col_size, std::shared_ptr< Arccore::MessagePassing::IMessagePassingMng > parallel_mng)
 Constructor.
 MatrixDistribution (const MatrixDistribution &dist)
 Copy constructor.
 MatrixDistribution (MatrixDistribution &&dist)
 Rvalue constructor.
 ~MatrixDistribution ()
 Free resources.
MatrixDistributionoperator= (const MatrixDistribution &dist)
 Operator equal.
MatrixDistributionoperator= (MatrixDistribution &&dist)
 Operator equal.
bool operator== (const MatrixDistribution &dist) const
 Comparison operator.
bool isParallel () const
 Whether or not the run is parallel.
Arccore::MessagePassing::IMessagePassingMng * parallelMng () const
 Get the parallel manager.
const VectorDistributionrowDistribution () const
 Get the row distribution.
const VectorDistributioncolDistribution () const
 Get the col distribution.
const ISpacerowSpace () const
 Get the row space.
const ISpacecolSpace () const
 Get the col space.
Arccore::Integer localRowSize () const
 Get the local row size.
Arccore::Integer localColSize () const
 Get the local col size.
Arccore::Integer globalRowSize () const
 Get the global row size.
Arccore::Integer globalColSize () const
 Get the global col size.
Arccore::Integer rowOffset () const
 Get the row offset.
Arccore::Integer rowOffset (Arccore::Integer p) const
 Get the row offset for a specific proc.
Arccore::Integer colOffset () const
 Get the col offset.
Arccore::Integer colOffset (Arccore::Integer p) const
 Get the col offset for a specific proc.
std::shared_ptr< MatrixDistributionclone () const
 Clone the distribution.

Detailed Description

Computes a matrix distribution.

Computes or use a pre-existing block row distribution for matrices

Definition at line 40 of file MatrixDistribution.h.

Constructor & Destructor Documentation

◆ MatrixDistribution() [1/12]

Alien::MatrixDistribution::MatrixDistribution ( )

◆ MatrixDistribution() [2/12]

Alien::MatrixDistribution::MatrixDistribution ( const ISpace & row_space,
const ISpace & col_space,
Arccore::MessagePassing::IMessagePassingMng * parallel_mng )

Constructor.

Parameters
[in]row_spaceThe row space of the matrix
[in]col_spaceThe col space of the matrix
[in]parallel_mngThe parallel manager

◆ MatrixDistribution() [3/12]

Alien::MatrixDistribution::MatrixDistribution ( Arccore::Integer global_row_size,
Arccore::Integer global_col_size,
Arccore::MessagePassing::IMessagePassingMng * parallel_mng )

Constructor.

Parameters
[in]global_row_sizeThe number of rows in the matrix
[in]global_col_sizeThe number of cols in the matrix
[in]parallel_mngThe parallel manager

◆ MatrixDistribution() [4/12]

Alien::MatrixDistribution::MatrixDistribution ( Arccore::Integer global_row_size,
Arccore::Integer global_col_size,
std::shared_ptr< Arccore::MessagePassing::IMessagePassingMng > parallel_mng )

Constructor.

Parameters
[in]global_row_sizeThe number of rows in the matrix
[in]global_col_sizeThe number of cols in the matrix
[in]parallel_mngThe parallel manager

References MatrixDistribution().

◆ MatrixDistribution() [5/12]

Alien::MatrixDistribution::MatrixDistribution ( const ISpace & row_space,
const ISpace & col_space,
Integer local_row_size,
IMessagePassingMng * parallel_mng )

Constructor.

Parameters
[in]row_spaceThe row space of the matrix
[in]col_spaceThe col space of the matrix
[in]local_row_sizeThe number of local rows in the matrix
[in]parallel_mngThe parallel manager

Definition at line 361 of file MatrixDistribution.cc.

References Alien::ISpace::size().

◆ MatrixDistribution() [6/12]

Alien::MatrixDistribution::MatrixDistribution ( const ISpace & row_space,
const ISpace & col_space,
Integer local_row_size,
Integer local_col_size,
IMessagePassingMng * parallel_mng )

Constructor.

Parameters
[in]row_spaceThe row space of the matrix
[in]col_spaceThe col space of the matrix
[in]local_row_sizeThe number of local rows in the matrix
[in]local_col_sizeThe number of local cols in the matrix
[in]parallel_mngThe parallel manager

Definition at line 376 of file MatrixDistribution.cc.

References Alien::ISpace::size().

◆ MatrixDistribution() [7/12]

Alien::MatrixDistribution::MatrixDistribution ( Arccore::Integer global_row_size,
Arccore::Integer global_col_size,
Arccore::Integer local_row_size,
Arccore::MessagePassing::IMessagePassingMng * parallel_mng )

Constructor.

Parameters
[in]global_row_sizeThe number of rows in the matrix
[in]global_col_sizeThe number of cols in the matrix
[in]local_row_sizeThe number of local cols in the matrix
[in]parallel_mngThe parallel manager

◆ MatrixDistribution() [8/12]

Alien::MatrixDistribution::MatrixDistribution ( Arccore::Integer global_row_size,
Arccore::Integer global_col_size,
Arccore::Integer local_row_size,
Arccore::Integer local_col_size,
Arccore::MessagePassing::IMessagePassingMng * parallel_mng )

Constructor.

Parameters
[in]global_row_sizeThe number of rows in the matrix
[in]global_col_sizeThe number of cols in the matrix
[in]local_row_sizeThe number of local cols in the matrix
[in]local_col_sizeThe number of local cols in the matrix
[in]parallel_mngThe parallel manager

◆ MatrixDistribution() [9/12]

Alien::MatrixDistribution::MatrixDistribution ( Arccore::Integer global_row_size,
Arccore::Integer global_col_size,
Arccore::Integer local_row_size,
std::shared_ptr< Arccore::MessagePassing::IMessagePassingMng > parallel_mng )

Constructor.

Parameters
[in]global_row_sizeThe number of rows in the matrix
[in]global_col_sizeThe number of cols in the matrix
[in]local_row_sizeThe number of local cols in the matrix
[in]parallel_mngThe parallel manager

◆ MatrixDistribution() [10/12]

Alien::MatrixDistribution::MatrixDistribution ( Arccore::Integer global_row_size,
Arccore::Integer global_col_size,
Arccore::Integer local_row_size,
Arccore::Integer local_col_size,
std::shared_ptr< Arccore::MessagePassing::IMessagePassingMng > parallel_mng )

Constructor.

Parameters
[in]global_row_sizeThe number of rows in the matrix
[in]global_col_sizeThe number of cols in the matrix
[in]local_row_sizeThe number of local cols in the matrix
[in]local_col_sizeThe number of local cols in the matrix
[in]parallel_mngThe parallel manager

◆ MatrixDistribution() [11/12]

Alien::MatrixDistribution::MatrixDistribution ( const MatrixDistribution & dist)
default

Copy constructor.

Parameters
[in]distThe matrix distribution to copy

References MatrixDistribution().

◆ MatrixDistribution() [12/12]

Alien::MatrixDistribution::MatrixDistribution ( MatrixDistribution && dist)
default

Rvalue constructor.

Parameters
[in]distThe distribution to take

References MatrixDistribution().

Member Function Documentation

◆ clone()

std::shared_ptr< MatrixDistribution > Alien::MatrixDistribution::clone ( ) const

Clone the distribution.

Returns
A clone of this distribution

Definition at line 624 of file MatrixDistribution.cc.

Referenced by colOffset(), and Alien::Move::MatrixData::init().

◆ colDistribution()

const VectorDistribution & Alien::MatrixDistribution::colDistribution ( ) const

Get the col distribution.

Returns
The col distribution

Definition at line 484 of file MatrixDistribution.cc.

Referenced by colSpace(), and operator=().

◆ colOffset() [1/2]

Integer Alien::MatrixDistribution::colOffset ( ) const

Get the col offset.

Returns
The col offset

Definition at line 600 of file MatrixDistribution.cc.

Referenced by rowOffset().

◆ colOffset() [2/2]

Arccore::Integer Alien::MatrixDistribution::colOffset ( Arccore::Integer p) const

Get the col offset for a specific proc.

Parameters
[in]pThe requested proc
Returns
The col offset for the specific proc

References clone().

◆ colSpace()

const ISpace & Alien::MatrixDistribution::colSpace ( ) const

Get the col space.

Returns
The col space

Definition at line 495 of file MatrixDistribution.cc.

References colDistribution(), and Alien::VectorDistribution::space().

Referenced by operator=().

◆ globalColSize()

Integer Alien::MatrixDistribution::globalColSize ( ) const

Get the global col size.

Returns
The global col size

Definition at line 570 of file MatrixDistribution.cc.

Referenced by Alien::operator<<(), and operator=().

◆ globalRowSize()

Integer Alien::MatrixDistribution::globalRowSize ( ) const

Get the global row size.

Returns
The global row size

Definition at line 561 of file MatrixDistribution.cc.

Referenced by Alien::computeBlockOffsets(), Alien::operator<<(), and operator=().

◆ isParallel()

bool Alien::MatrixDistribution::isParallel ( ) const

Whether or not the run is parallel.

Returns
Whether or not the run is parallel

Definition at line 522 of file MatrixDistribution.cc.

Referenced by Alien::operator<<(), and operator=().

◆ localColSize()

Integer Alien::MatrixDistribution::localColSize ( ) const

Get the local col size.

Returns
The local col size

Definition at line 549 of file MatrixDistribution.cc.

Referenced by operator=().

◆ localRowSize()

Integer Alien::MatrixDistribution::localRowSize ( ) const

Get the local row size.

Returns
The local row size

Definition at line 540 of file MatrixDistribution.cc.

Referenced by Alien::operator<<(), operator=(), Alien::VBlockImpl::VBlockImpl(), and Alien::VBlockSizes::VBlockSizes().

◆ operator=() [1/2]

MatrixDistribution & Alien::MatrixDistribution::operator= ( const MatrixDistribution & dist)
default

Operator equal.

Parameters
[in]distThe matrix distribution to copy
Returns
The new matrix distribution

References MatrixDistribution().

◆ operator=() [2/2]

MatrixDistribution & Alien::MatrixDistribution::operator= ( MatrixDistribution && dist)
default

Operator equal.

Parameters
[in]distThe matrix distribution to copy
Returns
The new matrix distribution

References colDistribution(), colSpace(), globalColSize(), globalRowSize(), isParallel(), localColSize(), localRowSize(), MatrixDistribution(), operator==(), parallelMng(), rowDistribution(), rowOffset(), and rowSpace().

◆ operator==()

bool Alien::MatrixDistribution::operator== ( const MatrixDistribution & dist) const

Comparison operator.

Parameters
[in]distThe matrix distribution to compare
Returns
Whether or not the matrices distribution are the same

Definition at line 514 of file MatrixDistribution.cc.

References MatrixDistribution().

Referenced by operator=().

◆ parallelMng()

IMessagePassingMng * Alien::MatrixDistribution::parallelMng ( ) const

Get the parallel manager.

Returns
The parallel manager

Definition at line 531 of file MatrixDistribution.cc.

Referenced by Alien::computeBlockOffsets(), operator=(), Alien::LinearSolver< Tag >::solve(), and Alien::VBlockSizes::VBlockSizes().

◆ rowDistribution()

const VectorDistribution & Alien::MatrixDistribution::rowDistribution ( ) const

Get the row distribution.

Returns
The row distribution

Definition at line 466 of file MatrixDistribution.cc.

Referenced by operator=().

◆ rowOffset() [1/2]

Integer Alien::MatrixDistribution::rowOffset ( ) const

Get the row offset.

Returns
The row offset

Definition at line 582 of file MatrixDistribution.cc.

Referenced by Alien::computeBlockOffsets(), Alien::operator<<(), operator=(), Alien::VBlockImpl::VBlockImpl(), and Alien::VBlockSizes::VBlockSizes().

◆ rowOffset() [2/2]

Arccore::Integer Alien::MatrixDistribution::rowOffset ( Arccore::Integer p) const

Get the row offset for a specific proc.

Parameters
[in]pThe requested proc
Returns
The row offset for the specific proc

References colOffset().

◆ rowSpace()

const ISpace & Alien::MatrixDistribution::rowSpace ( ) const

Get the row space.

Returns
The row space

Definition at line 475 of file MatrixDistribution.cc.

Referenced by operator=().


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