Public Member Functions | |
| MultiVectorImpl () | |
| Multi vectors representation container. | |
| MultiVectorImpl (std::shared_ptr< ISpace > space, std::shared_ptr< VectorDistribution > dist) | |
| Constructor. | |
| ~MultiVectorImpl () override | |
| Free resources. | |
| MultiVectorImpl (MultiVectorImpl &&impl)=delete | |
| void | operator= (const MultiVectorImpl &)=delete |
| void | operator= (MultiVectorImpl &&)=delete |
| void | setBlockInfos (const Block *blocks) |
| Set uniform block information. | |
| void | setBlockInfos (const VBlock *blocks) |
| Set variable block information. | |
| void | setBlockInfos (Arccore::Integer block_size) |
| Set uniform block information. | |
| void | free () |
| Free resources. | |
| void | clear () |
| Clear resources. | |
| const ISpace & | space () const |
| Get the space associated with the vector. | |
| const VectorDistribution & | distribution () const |
| Get the vector distribution. | |
| const Block * | block () const |
| Get uniform block datas. | |
| const VBlock * | vblock () const |
| Get variable block datas. | |
| MultiVectorImpl * | clone () const |
| Clone this object. | |
| template<typename tag> | |
| const AlgebraTraits< tag >::vector_type & | get () const |
| Get a specific vector implementation. | |
| template<typename tag> | |
| AlgebraTraits< tag >::vector_type & | get (bool update_stamp) |
| Get a specific vector implementation. | |
| template<typename tag> | |
| void | release () const |
| Release a vector implementation. | |
| Public Member Functions inherited from Alien::TimestampMng | |
| TimestampMng (const TimestampMng &tm) | |
| Int64 | timestamp () const |
| Valeur du timestamp de référence. | |
| void | updateTimestamp (Timestamp *ts) const |
| Requête de mise à jour d'un Timestamp. | |
| void | addObserver (std::shared_ptr< ITimestampObserver > observer) |
| void | clearObservers () |
| Public Member Functions inherited from Alien::UserFeatureMng | |
| bool | hasFeature (const String &feature) const |
| void | setFeature (const String &feature) |
| Public Member Functions inherited from Alien::ObjectWithTrace | |
| template<typename T> | |
| void | alien_info (T &&t) const |
| template<typename T> | |
| void | alien_debug (T &&t) const |
| template<typename T> | |
| void | alien_warning (T &&t) const |
| template<typename T> | |
| void | alien_fatal (T &&t) const |
| ITraceMng * | traceMng () const |
Protected Member Functions | |
| MultiVectorImpl (const MultiVectorImpl &impl) | |
| Copy constructor. | |
| template<typename vector_type> | |
| void | insert (const BackEndId &backend, vector_type *v) |
| Insert a vector implementation in the multi vector container. | |
| Protected Member Functions inherited from Alien::ObjectWithTrace | |
| TraceMessage | cout () const |
Private Types | |
| typedef std::map< BackEndId, IVectorImpl * > | MultiVectorImplMap |
| The type of the vector container. | |
Private Member Functions | |
| template<typename vector_type> | |
| IVectorImpl *& | getImpl (BackEndId backend) const |
| Get a specific vector implementation. | |
| void | updateImpl (IVectorImpl *target) const |
| Update a vector implementation. | |
Private Attributes | |
| std::shared_ptr< ISpace > | m_space |
| The vector space. | |
| std::shared_ptr< VectorDistribution > | m_distribution |
| The vector distribution. | |
| MultiVectorImplMap | m_impls2 |
| The vectors container. | |
| std::shared_ptr< Block > | m_block |
| The uniform block datas. | |
| std::shared_ptr< VBlock > | m_variable_block |
| The variable block datas. | |
Definition at line 49 of file MultiVectorImpl.h.
|
private |
The type of the vector container.
Definition at line 210 of file MultiVectorImpl.h.
| Alien::MultiVectorImpl::MultiVectorImpl | ( | std::shared_ptr< ISpace > | space, |
| std::shared_ptr< VectorDistribution > | dist ) |
Constructor.
| [in] | space | The space of the vector |
| [in] | dist | The distribution of the vector |
Definition at line 47 of file MultiVectorImpl.cc.
References distribution(), m_block, m_distribution, m_space, m_variable_block, and space().
|
override |
Free resources.
Definition at line 74 of file MultiVectorImpl.cc.
References free().
|
protected |
Copy constructor.
| [in] | Internal data structure access. | The MultiVectorImpl to copy |
Definition at line 58 of file MultiVectorImpl.cc.
References m_block, m_distribution, m_space, m_variable_block, and MultiVectorImpl().
| const Block * Alien::MultiVectorImpl::block | ( | ) | const |
Get uniform block datas.
Definition at line 129 of file MultiVectorImpl.cc.
References m_block.
| void Alien::MultiVectorImpl::clear | ( | ) |
Clear resources.
Definition at line 118 of file MultiVectorImpl.cc.
References m_impls2.
Referenced by Alien::Move::VectorData::clear(), and setBlockInfos().
| MultiVectorImpl * Alien::MultiVectorImpl::clone | ( | ) | const |
Clone this object.
Definition at line 147 of file MultiVectorImpl.cc.
References get(), MultiVectorImpl(), Alien::Timestamp::timestamp(), and Alien::Timestamp::updateTimestamp().
|
inline |
Get the vector distribution.
Definition at line 130 of file MultiVectorImpl.h.
References m_distribution.
Referenced by MultiVectorImpl().
| void Alien::MultiVectorImpl::free | ( | ) |
Free resources.
Definition at line 106 of file MultiVectorImpl.cc.
References m_impls2.
Referenced by Alien::Move::VectorData::free(), setBlockInfos(), and ~MultiVectorImpl().
| const AlgebraTraits< tag >::vector_type & Alien::MultiVectorImpl::get | ( | ) | const |
Get a specific vector implementation.
Might induce a conversion, depending on the up to date and requested vector implementation
Definition at line 224 of file MultiVectorImpl.h.
References Alien::IVectorImpl::backend(), getImpl(), and updateImpl().
Referenced by Alien::LinearAlgebra< Tag, TagV >::axpy(), Alien::LinearAlgebraExpr< Tag, TagV >::axpy(), Alien::LinearAlgebra< Tag, TagV >::aypx(), Alien::LinearAlgebraExpr< Tag, TagV >::aypx(), clone(), Alien::SchurOp::computePrimarySystem(), Alien::LinearAlgebra< Tag, TagV >::copy(), Alien::LinearAlgebraExpr< Tag, TagV >::copy(), Alien::LinearAlgebra< Tag, TagV >::diagonal(), Alien::LinearAlgebraExpr< Tag, TagV >::diagonal(), Alien::LinearAlgebra< Tag, TagV >::dot(), Alien::LinearAlgebraExpr< Tag, TagV >::dot(), Alien::LinearAlgebra< Tag, TagV >::dump(), Alien::LinearAlgebraExpr< Tag, TagV >::dump(), Alien::Move::VectorData::impl(), Alien::Move::VectorData::impl(), Alien::LinearAlgebra< Tag, TagV >::mult(), Alien::LinearAlgebraExpr< Tag, TagV >::mult(), Alien::LinearAlgebra< Tag, TagV >::norm0(), Alien::LinearAlgebraExpr< Tag, TagV >::norm0(), Alien::LinearAlgebra< Tag, TagV >::norm1(), Alien::LinearAlgebraExpr< Tag, TagV >::norm1(), Alien::LinearAlgebra< Tag, TagV >::norm2(), Alien::LinearAlgebraExpr< Tag, TagV >::norm2(), Alien::NormalizeOpt::normalize(), Alien::NormalizeOpt::normalize(), Alien::LinearAlgebra< Tag, TagV >::normInf(), Alien::LinearAlgebraExpr< Tag, TagV >::normInf(), Alien::LinearAlgebra< Tag, TagV >::pointwiseMult(), Alien::LinearAlgebraExpr< Tag, TagV >::pointwiseMult(), Alien::LinearAlgebra< Tag, TagV >::reciprocal(), Alien::LinearAlgebraExpr< Tag, TagV >::reciprocal(), Alien::Redistributor::redistribute(), Alien::LinearAlgebra< Tag, TagV >::scal(), Alien::LinearAlgebraExpr< Tag, TagV >::scal(), and Alien::LinearSolver< Tag >::solve().
| AlgebraTraits< tag >::vector_type & Alien::MultiVectorImpl::get | ( | bool | update_stamp | ) |
Get a specific vector implementation.
Might induce a conversion, depending on the up to date and requested vector implementation
| [in] | update_stamp | Whether or not the timestamp should be increased or not |
Definition at line 239 of file MultiVectorImpl.h.
References Alien::IVectorImpl::backend(), getImpl(), updateImpl(), and Alien::Timestamp::updateTimestamp().
|
private |
Get a specific vector implementation.
| [in] | backend | The id of the specific implementation |
Definition at line 269 of file MultiVectorImpl.h.
References m_distribution, and m_impls2.
Referenced by get(), get(), and updateImpl().
|
protected |
Insert a vector implementation in the multi vector container.
| [in] | backend | The implementation backend id |
| [in] | v | The vector to insert |
Definition at line 285 of file MultiVectorImpl.h.
References m_impls2.
| void Alien::MultiVectorImpl::release | ( | ) | const |
Release a vector implementation.
Definition at line 256 of file MultiVectorImpl.h.
References m_impls2.
| void Alien::MultiVectorImpl::setBlockInfos | ( | Arccore::Integer | block_size | ) |
| void Alien::MultiVectorImpl::setBlockInfos | ( | const Block * | blocks | ) |
Set uniform block information.
| [in] | blocks | The block data |
Definition at line 82 of file MultiVectorImpl.cc.
References Alien::Block::clone(), and m_block.
| void Alien::MultiVectorImpl::setBlockInfos | ( | const VBlock * | blocks | ) |
Set variable block information.
| [in] | blocks | The block data |
Definition at line 90 of file MultiVectorImpl.cc.
References Alien::VBlock::clone(), and m_variable_block.
|
inline |
Get the space associated with the vector.
Definition at line 124 of file MultiVectorImpl.h.
References m_space.
Referenced by MultiVectorImpl(), and Alien::Move::VectorData::space().
|
private |
Update a vector implementation.
| [in] | target | The targeted implementation |
Definition at line 179 of file MultiVectorImpl.cc.
References Alien::IVectorImpl::backend(), Alien::Timestamp::copyTimestamp(), Alien::VectorConverterRegisterer::getConverter(), getImpl(), m_impls2, Alien::Timestamp::timestamp(), and Alien::TimestampMng::timestamp().
Referenced by get(), and get().
| const VBlock * Alien::MultiVectorImpl::vblock | ( | ) | const |
Get variable block datas.
Definition at line 138 of file MultiVectorImpl.cc.
References m_variable_block.
|
private |
The uniform block datas.
Definition at line 214 of file MultiVectorImpl.h.
Referenced by block(), MultiVectorImpl(), MultiVectorImpl(), MultiVectorImpl(), and setBlockInfos().
|
private |
The vector distribution.
Definition at line 208 of file MultiVectorImpl.h.
Referenced by distribution(), getImpl(), MultiVectorImpl(), and MultiVectorImpl().
|
mutableprivate |
The vectors container.
Definition at line 212 of file MultiVectorImpl.h.
Referenced by clear(), free(), getImpl(), insert(), release(), and updateImpl().
|
private |
The vector space.
Definition at line 206 of file MultiVectorImpl.h.
Referenced by MultiVectorImpl(), MultiVectorImpl(), and space().
|
private |
The variable block datas.
Definition at line 216 of file MultiVectorImpl.h.
Referenced by MultiVectorImpl(), MultiVectorImpl(), MultiVectorImpl(), setBlockInfos(), and vblock().