28#include <alien/core/backend/BackEnd.h>
35#include <alien/utils/ObjectWithLock.h>
36#include <alien/utils/Precomp.h>
37#include <alien/utils/UserFeatureMng.h>
38#include <alien/utils/time_stamp/TimestampMng.h>
66,
public UserFeatureMng
67,
public ObjectWithTrace
68,
public ObjectWithLock
80 MultiMatrixImpl(std::shared_ptr<ISpace> row_space, std::shared_ptr<ISpace> col_space,
81 std::shared_ptr<MatrixDistribution> dist);
152 const Block* block()
const;
159 const VBlock* vblock()
const;
166 const VBlock* rowBlock()
const;
173 const VBlock* colBlock()
const;
184 template <
typename tag>
196 template <
typename tag>
200 template <
typename tag>
201 void release()
const;
221 template <
typename matrix_type>
236 template <
typename matrix_type>
261template <
typename tag>
279template <
typename tag>
299template <
typename tag>
305 delete finder->second, finder->second = NULL;
311template <
typename matrix_type>
315 auto inserter =
m_impls2.insert(MultiMatrixImplMap::value_type(backend, NULL));
330template <
typename matrix_type>
334 alien_fatal([&] { cout() <<
"try to insert already inserted value"; });
MatrixConverterRegisterer.h.
Block elements for block matrices.
Interface to handle abstract matrices implementation.
virtual BackEndId backend() const
Interface for algebraic space objects.
Computes a matrix distribution.
Multi matrices representation container.
void setColBlockInfos(const VBlock *blocks)
Set variable col block information.
void insert(BackEndId backend, matrix_type *m)
Insert a matrix implementation in the multi matrix container.
std::shared_ptr< ISpace > m_row_space
The matrix row space.
std::shared_ptr< MatrixDistribution > m_distribution
The matrix distribution.
void setRowBlockInfos(const VBlock *blocks)
Set variable row block information.
void updateImpl(IMatrixImpl *target) const
Update a matrix implementation.
void release() const
Release a matrix implementation.
MultiMatrixImpl()
Default constructor.
std::shared_ptr< VBlock > m_cols_block
The variable col block datas.
std::shared_ptr< Block > m_block
The uniform block datas.
std::map< BackEndId, IMatrixImpl * > MultiMatrixImplMap
The type of the matrix container.
void clear()
Clear resources.
const MatrixDistribution & distribution() const
Get the matrix distribution.
void free()
Free resources.
IMatrixImpl *& getImpl(BackEndId backend) const
Get a specific matrix implementation.
std::shared_ptr< ISpace > m_col_space
The matrix column space.
const ISpace & rowSpace() const
Get the row space associated to the matrix.
std::shared_ptr< VBlock > m_rows_block
The variable row block datas.
MultiMatrixImplMap m_impls2
The matrices container.
const AlgebraTraits< tag >::matrix_type & get() const
Get a specific matrix implementation.
const ISpace & colSpace() const
Get the col space associated to the matrix.
void setBlockInfos(Arccore::Integer block_size)
Set uniform block information.
void updateTimestamp()
Met à jour le timestamp.
Variable size block elements for block matrices.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --