15#include <arccore/base/BaseTypes.h>
16#include <arccore/message_passing/MessagePassingGlobal.h>
53 Arccore::MessagePassing::IMessagePassingMng* parallel_mng);
62 Arccore::MessagePassing::IMessagePassingMng* parallel_mng);
71 std::shared_ptr<Arccore::MessagePassing::IMessagePassingMng> parallel_mng);
81 Integer local_row_size, IMessagePassingMng* parallel_mng);
92 Integer local_row_size, Integer local_col_size, IMessagePassingMng* parallel_mng);
102 Arccore::Integer local_row_size,
103 Arccore::MessagePassing::IMessagePassingMng* parallel_mng);
114 Arccore::Integer local_row_size, Arccore::Integer local_col_size,
115 Arccore::MessagePassing::IMessagePassingMng* parallel_mng);
125 Arccore::Integer local_row_size,
126 std::shared_ptr<Arccore::MessagePassing::IMessagePassingMng> parallel_mng);
137 Arccore::Integer local_row_size, Arccore::Integer local_col_size,
138 std::shared_ptr<Arccore::MessagePassing::IMessagePassingMng> parallel_mng);
186 Arccore::MessagePassing::IMessagePassingMng*
parallelMng()
const;
266 std::shared_ptr<MatrixDistribution>
clone()
const;
335 Arccore::Integer
owner(Arccore::Integer i, Arccore::Integer j)
const;
Interface for algebraic space objects.
Computes a matrix distribution.
const VectorDistribution & rowDistribution() const
Get the row distribution.
bool isParallel() const
Whether or not the run is parallel.
MatrixDistribution(const ISpace &row_space, const ISpace &col_space, Arccore::MessagePassing::IMessagePassingMng *parallel_mng)
Constructor.
Arccore::Integer rowGlobalToLocal(Arccore::Integer i) const
Get the local id of a row with its global id.
Arccore::Integer globalColSize() const
Get the global col size.
Arccore::Integer colGlobalToLocal(Arccore::Integer i) const
Get the local id of a col with its global id.
Arccore::Integer localColSize() const
Get the local col size.
Arccore::Integer rowGlobalToLocal(Arccore::Integer i, Arccore::Integer p) const
Get the local id of a non local row with its global id.
Arccore::Integer rowLocalToGlobal(Arccore::Integer i) const
Get the global id of a row with its local id.
Arccore::Integer localRowSize() const
Get the local row size.
MatrixDistribution & operator=(const MatrixDistribution &dist)
Operator equal.
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.
Arccore::Integer rowLocalToGlobal(Arccore::Integer i, Arccore::Integer p) const
Get the global id of a non local row with its local id.
const ISpace & rowSpace() const
Get the row space.
Arccore::Integer colGlobalToLocal(Arccore::Integer i, Arccore::Integer p) const
Get the local id of a non local col with its global id.
MatrixDistribution(const MatrixDistribution &dist)
Copy constructor.
MatrixDistribution(Arccore::Integer global_row_size, Arccore::Integer global_col_size, Arccore::MessagePassing::IMessagePassingMng *parallel_mng)
Constructor.
MatrixDistribution(MatrixDistribution &&dist)
Rvalue constructor.
std::shared_ptr< Internal > m_internal
Internal implementation of the matrix distribution.
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, std::shared_ptr< Arccore::MessagePassing::IMessagePassingMng > parallel_mng)
Constructor.
Arccore::Integer globalRowSize() const
Get the global row size.
bool operator==(const MatrixDistribution &dist) const
Comparison operator.
MatrixDistribution & operator=(MatrixDistribution &&dist)
Operator equal.
Arccore::Integer colLocalToGlobal(Arccore::Integer i, Arccore::Integer p) const
Get the global id of a non local col with its local id.
Arccore::Integer rowOffset(Arccore::Integer p) const
Get the row offset for a specific proc.
std::shared_ptr< MatrixDistribution > clone() const
Clone the distribution.
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.
const ISpace & colSpace() const
Get the col space.
MatrixDistribution()
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.
Arccore::Integer colLocalToGlobal(Arccore::Integer i) const
Get the global id of a col with its local id.
Arccore::Integer colOffset(Arccore::Integer p) const
Get the col offset for a specific proc.
const VectorDistribution & colDistribution() const
Get the col distribution.
Arccore::Integer colOffset() const
Get the col offset.
Arccore::Integer rowOffset() const
Get the row offset.
Arccore::MessagePassing::IMessagePassingMng * parallelMng() const
Get the parallel manager.
Arccore::Integer owner(Arccore::Integer i, Arccore::Integer j) const
Get the owner of an entry.
~MatrixDistribution()
Free resources.
Computes a vector distribution.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::ostream & operator<<(std::ostream &nout, const MatrixDistribution &dist)
Print the distribution.
Internal implementation of the matrix distribution.