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

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 ISpacespace () const
 Get the space associated with the vector.
const VectorDistributiondistribution () const
 Get the vector distribution.
const Blockblock () const
 Get uniform block datas.
const VBlockvblock () const
 Get variable block datas.
MultiVectorImplclone () const
 Clone this object.
template<typename tag>
const AlgebraTraits< tag >::vector_typeget () const
 Get a specific vector implementation.
template<typename tag>
AlgebraTraits< tag >::vector_typeget (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

Detailed Description

Definition at line 49 of file MultiVectorImpl.h.

Constructor & Destructor Documentation

◆ MultiVectorImpl() [1/2]

Alien::MultiVectorImpl::MultiVectorImpl ( std::shared_ptr< ISpace > space,
std::shared_ptr< VectorDistribution > dist )

Constructor.

Parameters
[in]spaceThe space of the vector
[in]distThe distribution of the vector

Definition at line 47 of file MultiVectorImpl.cc.

References distribution(), and space().

◆ ~MultiVectorImpl()

Alien::MultiVectorImpl::~MultiVectorImpl ( )
override

Free resources.

Definition at line 74 of file MultiVectorImpl.cc.

References free().

◆ MultiVectorImpl() [2/2]

Alien::MultiVectorImpl::MultiVectorImpl ( const MultiVectorImpl & impl)
protected

Copy constructor.

Parameters
[in]Internal data structure access.The MultiVectorImpl to copy

Definition at line 58 of file MultiVectorImpl.cc.

References MultiVectorImpl().

Member Function Documentation

◆ block()

const Block * Alien::MultiVectorImpl::block ( ) const

Get uniform block datas.

Returns
The vector block data, or a nullptr if the vector is scalar or has variable blocks

Definition at line 129 of file MultiVectorImpl.cc.

◆ clear()

void Alien::MultiVectorImpl::clear ( )

Clear resources.

Definition at line 118 of file MultiVectorImpl.cc.

Referenced by Alien::Move::VectorData::clear(), and setBlockInfos().

◆ clone()

MultiVectorImpl * Alien::MultiVectorImpl::clone ( ) const

Clone this object.

Returns
A clone of this object

Definition at line 147 of file MultiVectorImpl.cc.

References get(), MultiVectorImpl(), Alien::Timestamp::timestamp(), and Alien::Timestamp::updateTimestamp().

◆ distribution()

const VectorDistribution & Alien::MultiVectorImpl::distribution ( ) const
inline

Get the vector distribution.

Returns
The vector distribution

Definition at line 130 of file MultiVectorImpl.h.

Referenced by MultiVectorImpl().

◆ free()

void Alien::MultiVectorImpl::free ( )

Free resources.

Definition at line 106 of file MultiVectorImpl.cc.

Referenced by Alien::Move::VectorData::free(), setBlockInfos(), and ~MultiVectorImpl().

◆ get() [1/2]

template<typename tag>
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

Returns
The up to date vector in the requested implementation

Definition at line 224 of file MultiVectorImpl.h.

References Alien::IVectorImpl::backend().

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::CompositeVector::impl(), Alien::CompositeVector::impl(), 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().

◆ get() [2/2]

template<typename tag>
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

Parameters
[in]update_stampWhether or not the timestamp should be increased or not
Returns
The up to date vector in the requested implementation

Definition at line 239 of file MultiVectorImpl.h.

References Alien::IVectorImpl::backend(), and Alien::Timestamp::updateTimestamp().

◆ insert()

template<typename vector_type>
void Alien::MultiVectorImpl::insert ( const BackEndId & backend,
vector_type * v )
protected

Insert a vector implementation in the multi vector container.

Parameters
[in]backendThe implementation backend id
[in]vThe vector to insert

Definition at line 285 of file MultiVectorImpl.h.

◆ release()

template<typename tag>
void Alien::MultiVectorImpl::release ( ) const

Release a vector implementation.

Definition at line 256 of file MultiVectorImpl.h.

◆ setBlockInfos() [1/3]

void Alien::MultiVectorImpl::setBlockInfos ( Arccore::Integer block_size)

Set uniform block information.

Parameters
[in]block_sizeThe size of the blocks

References clear(), and free().

◆ setBlockInfos() [2/3]

void Alien::MultiVectorImpl::setBlockInfos ( const Block * blocks)

Set uniform block information.

Parameters
[in]blocksThe block data

Definition at line 82 of file MultiVectorImpl.cc.

References Alien::Block::clone().

◆ setBlockInfos() [3/3]

void Alien::MultiVectorImpl::setBlockInfos ( const VBlock * blocks)

Set variable block information.

Parameters
[in]blocksThe block data

Definition at line 90 of file MultiVectorImpl.cc.

References Alien::VBlock::clone().

◆ space()

const ISpace & Alien::MultiVectorImpl::space ( ) const
inline

Get the space associated with the vector.

Returns
The space

Definition at line 124 of file MultiVectorImpl.h.

Referenced by MultiVectorImpl(), and Alien::Move::VectorData::space().

◆ vblock()

const VBlock * Alien::MultiVectorImpl::vblock ( ) const

Get variable block datas.

Returns
The vector block data or a nullptr if the vector is scalar or has uniform blocks

Definition at line 138 of file MultiVectorImpl.cc.


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