Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Alien::HCSRMatrix< ValueT > Class Template Reference
Inheritance diagram for Alien::HCSRMatrix< ValueT >:
Collaboration diagram for Alien::HCSRMatrix< ValueT >:

Classes

class  IsLocal

Public Types

typedef BackEnd::tag::hcsr TagType
typedef ValueT ValueType
typedef ValueT value_type
typedef SimpleCSRInternal::CSRStructInfo CSRStructInfo
typedef SimpleCSRInternal::CSRStructInfo ProfileType
typedef SYCLInternal::SYCLDistStructInfo DistStructInfo
typedef HCSRInternal::MatrixInternal< ValueType > MatrixInternal
typedef HCSRInternal::MatrixInternal< ValueType > InternalType
typedef ProfileType::IndexType IndexType
typedef HCSRViewT< HCSRMatrix< ValueType > > HCSRView
Public Types inherited from Alien::IMatrixImpl
typedef Arccore::Real ValueType
 Type of the values stored in the matrix.

Public Member Functions

 HCSRMatrix ()
 HCSRMatrix (const MultiMatrixImpl *multi_impl)
 Constructeur avec association ? un MultiImpl.
virtual ~HCSRMatrix ()
void setTraceMng (ITraceMng *trace_mng)
void allocate ()
CSRStructInfo & getCSRProfile ()
const CSRStructInfo & getCSRProfile () const
const CSRStructInfo & getProfile () const
const DistStructInfo & getDistStructInfo () const
IMessagePassingMng * getParallelMng ()
void sequentialStart ()
void parallelStart (ConstArrayView< Integer > offset, IMessagePassingMng *parallel_mng, bool need_sort_ghost_col=false)
bool initMatrix (Arccore::MessagePassing::IMessagePassingMng *parallel_mng, Integer local_offset, Integer global_size, std::size_t nrows, int const *kcol, int const *cols, SimpleCSRInternal::DistStructInfo const &matrix_dist_info)
HCSRMatrixcloneTo (const MultiMatrixImpl *multi) const
bool isParallel () const
Integer getLocalSize () const
Integer getLocalOffset () const
Integer getGlobalSize () const
Integer getGhostSize () const
Integer getAllocSize () const
bool setMatrixValues (Arccore::Real const *values, bool only_host)
void notifyChanges ()
void endUpdate ()
MatrixInternal * internal ()
MatrixInternal const * internal () const
void allocateDevicePointers (std::size_t nrows, std::size_t nnz, IndexType **rows, IndexType **ncols, IndexType **cols, ValueType **values) const
void initDevicePointers (IndexType **ncols, IndexType **rows, IndexType **cols, ValueType **values) const
void freeDevicePointers (IndexType *ncols, IndexType *rows, IndexType *cols, ValueType *values) const
void copyDevicePointers (std::size_t nrows, std::size_t nnz, IndexType *rows, IndexType *ncols, IndexType *cols, ValueType *values) const
HCSRView hcsrView (BackEnd::Memory::eType memory, int nrows, int nnz) const
void initCOODevicePointers (int **dof_uids, int **rows, int **cols, ValueType **values) const
void freeCOODevicePointers (int *dof_uids, int *rows, int *cols, ValueType *values) const
Public Member Functions inherited from Alien::IMatrixImpl
 IMatrixImpl (const MultiMatrixImpl *multi_impl, BackEndId backend="")
 Constructor.
virtual ~IMatrixImpl () override=default
 Free resources.
 IMatrixImpl (const IMatrixImpl &src)=delete
 IMatrixImpl (IMatrixImpl &&src)=delete
IMatrixImploperator= (const IMatrixImpl &src)=delete
IMatrixImploperator= (IMatrixImpl &&src)=delete
virtual void clear ()
 Wipe out internal data.
virtual const ISpacerowSpace () const
 Get the row space associated to the matrix \ returns The row space.
virtual const ISpacecolSpace () const
 Get the row space associated to the matrix \ returns The row space.
virtual const MatrixDistributiondistribution () const
 Get the distribution of the matrix.
virtual BackEndId backend () const
virtual const Blockblock () const
 Get block datas of the matrix.
virtual const VBlockvblock () const
 Get block datas of the matrix.
virtual const VBlockrowBlock () const
 Get row block datas of the matrix.
virtual const VBlockcolBlock () const
 Get col block datas of the matrix.
const MultiMatrixImplimpls () 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

Static Public Attributes

static const bool on_host_only = false

Private Member Functions

void sortGhostCols (ConstArrayView< Integer > offset)

Private Attributes

Alien::BackEnd::Memory::eType m_mem_kind = Alien::BackEnd::Memory::Device
std::unique_ptr< ProfileType > m_profile
std::unique_ptr< InternalType > m_internal
bool m_is_parallel = false
IMessagePassingMng * m_parallel_mng = nullptr
Integer m_nproc = 1
Integer m_myrank = 0
Integer m_local_size = 0
Integer m_local_offset = 0
Integer m_global_size = 0
Integer m_ghost_size = 0
DistStructInfo m_matrix_dist_info
ITraceMng * m_trace = nullptr

Additional Inherited Members

Protected Member Functions inherited from Alien::ObjectWithTrace
TraceMessage cout () const
Protected Attributes inherited from Alien::IMatrixImpl
const MultiMatrixImplm_multi_impl
 Pointer on matrices implementation.
BackEndId m_backend
 Backend id.

Detailed Description

template<typename ValueT>
class Alien::HCSRMatrix< ValueT >

Definition at line 42 of file HCSRMatrix.h.

Member Typedef Documentation

◆ CSRStructInfo

template<typename ValueT>
typedef SimpleCSRInternal::CSRStructInfo Alien::HCSRMatrix< ValueT >::CSRStructInfo

Definition at line 51 of file HCSRMatrix.h.

◆ DistStructInfo

template<typename ValueT>
typedef SYCLInternal::SYCLDistStructInfo Alien::HCSRMatrix< ValueT >::DistStructInfo

Definition at line 53 of file HCSRMatrix.h.

◆ HCSRView

template<typename ValueT>
typedef HCSRViewT<HCSRMatrix<ValueType> > Alien::HCSRMatrix< ValueT >::HCSRView

Definition at line 60 of file HCSRMatrix.h.

◆ IndexType

template<typename ValueT>
typedef ProfileType::IndexType Alien::HCSRMatrix< ValueT >::IndexType

Definition at line 57 of file HCSRMatrix.h.

◆ InternalType

template<typename ValueT>
typedef HCSRInternal::MatrixInternal<ValueType> Alien::HCSRMatrix< ValueT >::InternalType

Definition at line 55 of file HCSRMatrix.h.

◆ MatrixInternal

template<typename ValueT>
typedef HCSRInternal::MatrixInternal<ValueType> Alien::HCSRMatrix< ValueT >::MatrixInternal

Definition at line 54 of file HCSRMatrix.h.

◆ ProfileType

template<typename ValueT>
typedef SimpleCSRInternal::CSRStructInfo Alien::HCSRMatrix< ValueT >::ProfileType

Definition at line 52 of file HCSRMatrix.h.

◆ TagType

template<typename ValueT>
typedef BackEnd::tag::hcsr Alien::HCSRMatrix< ValueT >::TagType

Definition at line 47 of file HCSRMatrix.h.

◆ value_type

template<typename ValueT>
typedef ValueT Alien::HCSRMatrix< ValueT >::value_type

Definition at line 49 of file HCSRMatrix.h.

◆ ValueType

template<typename ValueT>
typedef ValueT Alien::HCSRMatrix< ValueT >::ValueType

Definition at line 48 of file HCSRMatrix.h.

Constructor & Destructor Documentation

◆ HCSRMatrix() [1/2]

template<typename ValueT>
Alien::HCSRMatrix< ValueT >::HCSRMatrix ( )

Constructeur de la classe

Definition at line 235 of file HCSRMatrixInternal.h.

References Alien::IMatrixImpl::IMatrixImpl().

Here is the call graph for this function:

◆ HCSRMatrix() [2/2]

template<typename ValueT>
Alien::HCSRMatrix< ValueT >::HCSRMatrix ( const MultiMatrixImpl * multi_impl)

Constructeur avec association ? un MultiImpl.

Constructeur de la classe

Definition at line 244 of file HCSRMatrixInternal.h.

References Alien::IMatrixImpl::IMatrixImpl().

Here is the call graph for this function:

◆ ~HCSRMatrix()

template<typename ValueT>
Alien::HCSRMatrix< ValueT >::~HCSRMatrix ( )
virtual

Destructeur de la classe

Definition at line 253 of file HCSRMatrixInternal.h.

Member Function Documentation

◆ allocate()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::allocate ( )

Definition at line 259 of file HCSRMatrixInternal.h.

◆ allocateDevicePointers()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::allocateDevicePointers ( std::size_t nrows,
std::size_t nnz,
IndexType ** rows,
IndexType ** ncols,
IndexType ** cols,
ValueType ** values ) const

Definition at line 18 of file HCSRMatrix.cc.

◆ copyDevicePointers()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::copyDevicePointers ( std::size_t nrows,
std::size_t nnz,
IndexType * rows,
IndexType * ncols,
IndexType * cols,
ValueType * values ) const

Definition at line 97 of file HCSRMatrix.cc.

◆ freeCOODevicePointers()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::freeCOODevicePointers ( int * dof_uids,
int * rows,
int * cols,
ValueType * values ) const

Definition at line 251 of file HCSRMatrix.cc.

◆ freeDevicePointers()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::freeDevicePointers ( IndexType * ncols,
IndexType * rows,
IndexType * cols,
ValueType * values ) const

Definition at line 240 of file HCSRMatrix.cc.

◆ getAllocSize()

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::getAllocSize ( ) const
inline

Definition at line 158 of file HCSRMatrix.h.

◆ getCSRProfile() [1/2]

template<typename ValueT>
CSRStructInfo & Alien::HCSRMatrix< ValueT >::getCSRProfile ( )
inline

Definition at line 78 of file HCSRMatrix.h.

◆ getCSRProfile() [2/2]

template<typename ValueT>
const CSRStructInfo & Alien::HCSRMatrix< ValueT >::getCSRProfile ( ) const
inline

Definition at line 80 of file HCSRMatrix.h.

◆ getDistStructInfo()

template<typename ValueT>
const DistStructInfo & Alien::HCSRMatrix< ValueT >::getDistStructInfo ( ) const
inline

Definition at line 84 of file HCSRMatrix.h.

◆ getGhostSize()

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::getGhostSize ( ) const
inline

Definition at line 156 of file HCSRMatrix.h.

◆ getGlobalSize()

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::getGlobalSize ( ) const
inline

Definition at line 154 of file HCSRMatrix.h.

◆ getLocalOffset()

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::getLocalOffset ( ) const
inline

Definition at line 152 of file HCSRMatrix.h.

◆ getLocalSize()

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::getLocalSize ( ) const
inline

Definition at line 150 of file HCSRMatrix.h.

◆ getParallelMng()

template<typename ValueT>
IMessagePassingMng * Alien::HCSRMatrix< ValueT >::getParallelMng ( )
inline

Definition at line 86 of file HCSRMatrix.h.

◆ getProfile()

template<typename ValueT>
const CSRStructInfo & Alien::HCSRMatrix< ValueT >::getProfile ( ) const
inline

Definition at line 82 of file HCSRMatrix.h.

◆ hcsrView()

template<typename ValueT>
HCSRMatrix< ValueT >::HCSRView Alien::HCSRMatrix< ValueT >::hcsrView ( BackEnd::Memory::eType memory,
int nrows,
int nnz ) const

Definition at line 152 of file HCSRMatrix.cc.

◆ initCOODevicePointers()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::initCOODevicePointers ( int ** dof_uids,
int ** rows,
int ** cols,
ValueType ** values ) const

Definition at line 160 of file HCSRMatrix.cc.

◆ initDevicePointers()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::initDevicePointers ( IndexType ** ncols,
IndexType ** rows,
IndexType ** cols,
ValueType ** values ) const

Definition at line 42 of file HCSRMatrix.cc.

◆ internal() [1/2]

template<typename ValueT>
MatrixInternal * Alien::HCSRMatrix< ValueT >::internal ( )
inline

Definition at line 165 of file HCSRMatrix.h.

◆ internal() [2/2]

template<typename ValueT>
MatrixInternal const * Alien::HCSRMatrix< ValueT >::internal ( ) const
inline

Definition at line 167 of file HCSRMatrix.h.

◆ isParallel()

template<typename ValueT>
bool Alien::HCSRMatrix< ValueT >::isParallel ( ) const
inline

Definition at line 148 of file HCSRMatrix.h.

◆ parallelStart()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::parallelStart ( ConstArrayView< Integer > offset,
IMessagePassingMng * parallel_mng,
bool need_sort_ghost_col = false )
inline

Definition at line 107 of file HCSRMatrix.h.

◆ sequentialStart()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::sequentialStart ( )
inline

Definition at line 92 of file HCSRMatrix.h.

◆ setTraceMng()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::setTraceMng ( ITraceMng * trace_mng)
inline

Definition at line 74 of file HCSRMatrix.h.

◆ sortGhostCols()

template<typename ValueT>
void Alien::HCSRMatrix< ValueT >::sortGhostCols ( ConstArrayView< Integer > offset)
inlineprivate

Definition at line 217 of file HCSRMatrix.h.

Member Data Documentation

◆ m_ghost_size

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::m_ghost_size = 0
private

Definition at line 285 of file HCSRMatrix.h.

◆ m_global_size

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::m_global_size = 0
private

Definition at line 284 of file HCSRMatrix.h.

◆ m_internal

template<typename ValueT>
std::unique_ptr<InternalType> Alien::HCSRMatrix< ValueT >::m_internal
private

Definition at line 273 of file HCSRMatrix.h.

◆ m_is_parallel

template<typename ValueT>
bool Alien::HCSRMatrix< ValueT >::m_is_parallel = false
private

Definition at line 277 of file HCSRMatrix.h.

◆ m_local_offset

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::m_local_offset = 0
private

Definition at line 283 of file HCSRMatrix.h.

◆ m_local_size

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::m_local_size = 0
private

Definition at line 282 of file HCSRMatrix.h.

◆ m_matrix_dist_info

template<typename ValueT>
DistStructInfo Alien::HCSRMatrix< ValueT >::m_matrix_dist_info
private

Definition at line 288 of file HCSRMatrix.h.

◆ m_mem_kind

template<typename ValueT>
Alien::BackEnd::Memory::eType Alien::HCSRMatrix< ValueT >::m_mem_kind = Alien::BackEnd::Memory::Device
private

Definition at line 271 of file HCSRMatrix.h.

◆ m_myrank

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::m_myrank = 0
private

Definition at line 280 of file HCSRMatrix.h.

◆ m_nproc

template<typename ValueT>
Integer Alien::HCSRMatrix< ValueT >::m_nproc = 1
private

Definition at line 279 of file HCSRMatrix.h.

◆ m_parallel_mng

template<typename ValueT>
IMessagePassingMng* Alien::HCSRMatrix< ValueT >::m_parallel_mng = nullptr
private

Definition at line 278 of file HCSRMatrix.h.

◆ m_profile

template<typename ValueT>
std::unique_ptr<ProfileType> Alien::HCSRMatrix< ValueT >::m_profile
private

Definition at line 272 of file HCSRMatrix.h.

◆ m_trace

template<typename ValueT>
ITraceMng* Alien::HCSRMatrix< ValueT >::m_trace = nullptr
private

Definition at line 289 of file HCSRMatrix.h.

◆ on_host_only

template<typename ValueT>
const bool Alien::HCSRMatrix< ValueT >::on_host_only = false
static

Definition at line 46 of file HCSRMatrix.h.


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