Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches

Interface to handle abstract vectors implementation. More...

#include <core/alien/core/impl/IVectorImpl.h>

Inheritance diagram for Alien::IVectorImpl:
Collaboration diagram for Alien::IVectorImpl:

Public Types

typedef Arccore::Real ValueType
 Type of the values stored in the vectors.

Public Member Functions

 IVectorImpl (const MultiVectorImpl *multi_impl, BackEndId backend="")
 Constructor.
virtual ~IVectorImpl () override
 Free resources.
 IVectorImpl (const IVectorImpl &src)=delete
 IVectorImpl (IVectorImpl &&src)=delete
IVectorImpl & operator= (const IVectorImpl &src)=delete
IVectorImpl & operator= (IVectorImpl &&src)=delete
virtual void clear ()
 Wipe out internal data.
virtual void init (const VectorDistribution &dist, bool do_alloc)
 Initialize vector datas.
virtual const ISpace & space () const
 Get the vector space.
virtual BackEndId backend () const
virtual const VectorDistribution & distribution () const
 Get the distribution of the vector.
virtual const Block * block () const
 Get block datas of the vector.
virtual const VBlock * vblock () const
 Get block datas of the vector.
virtual Arccore::Integer scalarizedLocalSize () const
 Get the "scalarized" local size.
virtual Arccore::Integer scalarizedGlobalSize () const
 Get the "scalarized" global size.
virtual Arccore::Integer scalarizedOffset () const
 Get the "scalarized" offset.
const MultiVectorImpl * impls () const
Public Member Functions inherited from Alien::Timestamp
 Timestamp (const TimestampMng *manager)
virtual ~Timestamp ()
 Destructeur de la classe.
virtual Int64 timestamp () const
 Donne la valeur courante du timestamp.
void updateTimestamp ()
 Met à jour le timestamp.
void copyTimestamp (const Timestamp &v)
 Copy un autre timestamp.
void setTimestamp (const TimestampMng *manager, const Int64 timestamp)
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 Attributes

const MultiVectorImpl * m_multi_impl
 Pointer on vectors implementations.
BackEndId m_backend
 Backend id.
VBlockSizes * m_vblock_sizes
 Variable blocks size data.

Additional Inherited Members

Protected Member Functions inherited from Alien::ObjectWithTrace
TraceMessage cout () const

Detailed Description

Interface to handle abstract vectors implementation.

Definition at line 45 of file IVectorImpl.h.

Member Typedef Documentation

◆ ValueType

typedef Arccore::Real Alien::IVectorImpl::ValueType

Type of the values stored in the vectors.

Definition at line 50 of file IVectorImpl.h.

Constructor & Destructor Documentation

◆ IVectorImpl()

Alien::IVectorImpl::IVectorImpl ( const MultiVectorImpl * multi_impl,
BackEndId backend = "" )
explicit

Constructor.

Parameters
[in]multi_implPointer to the multivector handler, null if not associated
[in]backendName of the underneath backend, empty string if not associated

Definition at line 40 of file IVectorImpl.cc.

References backend(), m_backend, m_multi_impl, and m_vblock_sizes.

Referenced by Alien::HCSRVector< ValueT >::HCSRVector(), Alien::HCSRVector< ValueT >::HCSRVector(), Alien::SimpleCSRVector< Arccore::Real >::SimpleCSRVector(), Alien::SimpleCSRVector< Arccore::Real >::SimpleCSRVector(), Alien::SYCLVector< ValueT >::SYCLVector(), Alien::SYCLVector< ValueT >::SYCLVector(), Alien::CompositeKernel::Vector::Vector(), and Alien::CompositeKernel::Vector::Vector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~IVectorImpl()

virtual Alien::IVectorImpl::~IVectorImpl ( )
inlineoverridevirtual

Free resources.

Definition at line 61 of file IVectorImpl.h.

References m_vblock_sizes.

Member Function Documentation

◆ backend()

virtual BackEndId Alien::IVectorImpl::backend ( ) const
inlinevirtual

Get the vector backend id

Returns
The backend if associated to the vector

Definition at line 95 of file IVectorImpl.h.

References m_backend.

Referenced by Alien::IVectorConverter::cast(), Alien::IVectorConverter::cast(), Alien::MultiVectorImpl::get(), Alien::MultiVectorImpl::get(), IVectorImpl(), and Alien::MultiVectorImpl::updateImpl().

Here is the caller graph for this function:

◆ block()

const Block * Alien::IVectorImpl::block ( ) const
virtual

Get block datas of the vector.

Get the block datas of the vector. This method should be used only with uniform blocks vectors, otherwise il will return a nullptr

Returns
Block data for block vector, nullptr for scalar and variable block vector

Definition at line 69 of file IVectorImpl.cc.

References m_multi_impl.

Referenced by Alien::NormalizeOpt::_normalize(), Alien::DoKToSimpleCSRVectorConverter::convert(), Alien::RedistributorToSimpleCSRVectorConverter::convert(), Alien::SimpleCSRtoDoKVectorConverter::convert(), Alien::SimpleCSRtoRedistributorVectorConverter::convert(), scalarizedGlobalSize(), scalarizedLocalSize(), and scalarizedOffset().

Here is the caller graph for this function:

◆ clear()

◆ distribution()

const VectorDistribution & Alien::IVectorImpl::distribution ( ) const
virtual

◆ impls()

const MultiVectorImpl * Alien::IVectorImpl::impls ( ) const
inline

Definition at line 144 of file IVectorImpl.h.

◆ init()

virtual void Alien::IVectorImpl::init ( const VectorDistribution & dist,
bool do_alloc )
inlinevirtual

◆ scalarizedGlobalSize()

Integer Alien::IVectorImpl::scalarizedGlobalSize ( ) const
virtual

Get the "scalarized" global size.

See also
VBlockSizes for "scalarized" definition
Returns
The actual global size

Reimplemented in Alien::HCSRVector< ValueT >, Alien::HCSRVector< T >, Alien::InternalType< ValueT >, Alien::SimpleCSRVector< ValueT >, Alien::SimpleCSRVector< Arccore::Real >, Alien::SimpleCSRVector< Real >, Alien::SimpleCSRVector< T >, Alien::SimpleCSRVector< ValueType >, Alien::SYCLVector< ValueT >, Alien::SYCLVector< T >, and Alien::SYCLVector< ValueType >.

Definition at line 105 of file IVectorImpl.cc.

References block(), m_multi_impl, m_vblock_sizes, Alien::Block::size(), and vblock().

Referenced by Alien::InternalType< ValueT >::scalarizedGlobalSize(), Alien::SimpleCSRVector< Arccore::Real >::scalarizedGlobalSize(), and Alien::SYCLVector< ValueType >::scalarizedGlobalSize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scalarizedLocalSize()

Integer Alien::IVectorImpl::scalarizedLocalSize ( ) const
virtual

Get the "scalarized" local size.

See also
VBlockSizes for "scalarized" definition
Returns
The actual local size

Reimplemented in Alien::HCSRVector< ValueT >, Alien::HCSRVector< T >, Alien::InternalType< ValueT >, Alien::SimpleCSRVector< ValueT >, Alien::SimpleCSRVector< Arccore::Real >, Alien::SimpleCSRVector< Real >, Alien::SimpleCSRVector< T >, Alien::SimpleCSRVector< ValueType >, Alien::SYCLVector< ValueT >, Alien::SYCLVector< T >, and Alien::SYCLVector< ValueType >.

Definition at line 87 of file IVectorImpl.cc.

References block(), m_multi_impl, m_vblock_sizes, Alien::Block::size(), and vblock().

Referenced by Alien::InternalType< ValueT >::scalarizedLocalSize(), Alien::SimpleCSRVector< Arccore::Real >::scalarizedLocalSize(), and Alien::SYCLVector< ValueType >::scalarizedLocalSize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scalarizedOffset()

Integer Alien::IVectorImpl::scalarizedOffset ( ) const
virtual

Get the "scalarized" offset.

See also
VBlockSizes for "scalarized" definition
Returns
The actual offset

Reimplemented in Alien::HCSRVector< ValueT >, Alien::HCSRVector< T >, Alien::InternalType< ValueT >, Alien::SimpleCSRVector< ValueT >, Alien::SimpleCSRVector< Arccore::Real >, Alien::SimpleCSRVector< Real >, Alien::SimpleCSRVector< T >, Alien::SimpleCSRVector< ValueType >, Alien::SYCLVector< ValueT >, Alien::SYCLVector< T >, and Alien::SYCLVector< ValueType >.

Definition at line 123 of file IVectorImpl.cc.

References block(), m_multi_impl, m_vblock_sizes, Alien::Block::size(), and vblock().

Referenced by Alien::InternalType< ValueT >::scalarizedOffset(), Alien::SimpleCSRVector< Arccore::Real >::scalarizedOffset(), and Alien::SYCLVector< ValueType >::scalarizedOffset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ space()

const ISpace & Alien::IVectorImpl::space ( ) const
virtual

Get the vector space.

Returns
The space associated to the vector

Definition at line 51 of file IVectorImpl.cc.

References m_multi_impl.

Referenced by Alien::CompositeKernel::Vector::Vector().

Here is the caller graph for this function:

◆ vblock()

const VBlock * Alien::IVectorImpl::vblock ( ) const
virtual

Get block datas of the vector.

Get the block datas of the vector. This method should be used only with variable blocks vectors, otherwise il will return a nullptr

Returns
Block data for variable block vector, nullptr for scalar and block vector

Definition at line 78 of file IVectorImpl.cc.

References m_multi_impl.

Referenced by Alien::SimpleCSRVector< Arccore::Real >::init(), scalarizedGlobalSize(), scalarizedLocalSize(), and scalarizedOffset().

Here is the caller graph for this function:

Member Data Documentation

◆ m_backend

BackEndId Alien::IVectorImpl::m_backend
protected

Backend id.

Definition at line 151 of file IVectorImpl.h.

Referenced by backend(), and IVectorImpl().

◆ m_multi_impl

◆ m_vblock_sizes

VBlockSizes* Alien::IVectorImpl::m_vblock_sizes
mutableprotected

Variable blocks size data.

Definition at line 153 of file IVectorImpl.h.

Referenced by IVectorImpl(), scalarizedGlobalSize(), scalarizedLocalSize(), scalarizedOffset(), and ~IVectorImpl().


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