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 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

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: