KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::DistributedSparseGraph< TIndexType > Class Template Referencefinal

Short class definition. More...

#include <distributed_sparse_graph.h>

Collaboration diagram for Kratos::DistributedSparseGraph< TIndexType >:

Public Member Functions

Life Cycle
 DistributedSparseGraph (const IndexType LocalSize, DataCommunicator &rComm)
 constructor. More...
 
 ~DistributedSparseGraph ()
 Destructor. More...
 
const DataCommunicatorGetComm () const
 
const DataCommunicatorpGetComm () const
 
const DistributedNumbering< IndexType > & GetRowNumbering () const
 
IndexType Size () const
 
IndexType LocalSize () const
 
bool Has (const IndexType GlobalI, const IndexType GlobalJ) const
 
void ComputeLocalMinMaxColumnIndex (IndexType &rMinJ, IndexType &rMaxJ) const
 
IndexType ComputeMaxGlobalColumnIndex () const
 
Operators
const LocalGraphType::GraphType::value_typeoperator[] (const IndexType &LocalPosition) const
 
void Clear ()
 
void AddEntry (const IndexType RowIndex, const IndexType ColIndex)
 
template<class TContainerType >
void AddEntries (const IndexType RowIndex, const TContainerType &rColIndices)
 
template<class TIteratorType >
void AddEntries (const IndexType RowIndex, const TIteratorType &rColBegin, const TIteratorType &rColEnd)
 
template<class TContainerType >
void AddEntries (const TContainerType &rIndices)
 
template<class TContainerType >
void AddEntries (const TContainerType &rRowIndices, const TContainerType &rColIndices)
 
void Finalize ()
 
const LocalGraphTypeGetLocalGraph () const
 
const NonLocalGraphTypeGetNonLocalGraph (IndexType Rank) const
 
const DenseVector< NonLocalGraphType > & GetNonLocalGraphs () const
 
Input and output
std::string Info () const
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 

Type Definitions

typedef TIndexType IndexType
 
typedef int MpiIndexType
 
typedef SparseContiguousRowGraph< IndexTypeLocalGraphType
 
typedef SparseGraph< IndexTypeNonLocalGraphType
 
 KRATOS_CLASS_POINTER_DEFINITION (DistributedSparseGraph)
 Pointer definition of DistributedSparseGraph. More...
 

Private Operators

class Serializer
 

Detailed Description

template<class TIndexType = std::size_t>
class Kratos::DistributedSparseGraph< TIndexType >

Short class definition.

This class is designed to store a matrix graph, aimed at the fast construction of other sparse matrix formats (particularly CSR) IMPORTANT NOTE: it is BY DESIGN NOT threadsafe! (a graph should be computed in each thread and then merged)

Member Typedef Documentation

◆ IndexType

template<class TIndexType = std::size_t>
typedef TIndexType Kratos::DistributedSparseGraph< TIndexType >::IndexType

◆ LocalGraphType

template<class TIndexType = std::size_t>
typedef SparseContiguousRowGraph<IndexType> Kratos::DistributedSparseGraph< TIndexType >::LocalGraphType

◆ MpiIndexType

template<class TIndexType = std::size_t>
typedef int Kratos::DistributedSparseGraph< TIndexType >::MpiIndexType

◆ NonLocalGraphType

template<class TIndexType = std::size_t>
typedef SparseGraph<IndexType> Kratos::DistributedSparseGraph< TIndexType >::NonLocalGraphType

Constructor & Destructor Documentation

◆ DistributedSparseGraph()

template<class TIndexType = std::size_t>
Kratos::DistributedSparseGraph< TIndexType >::DistributedSparseGraph ( const IndexType  LocalSize,
DataCommunicator rComm 
)
inline

constructor.

◆ ~DistributedSparseGraph()

template<class TIndexType = std::size_t>
Kratos::DistributedSparseGraph< TIndexType >::~DistributedSparseGraph ( )
inline

Destructor.

Member Function Documentation

◆ AddEntries() [1/4]

template<class TIndexType = std::size_t>
template<class TContainerType >
void Kratos::DistributedSparseGraph< TIndexType >::AddEntries ( const IndexType  RowIndex,
const TContainerType &  rColIndices 
)
inline

◆ AddEntries() [2/4]

template<class TIndexType = std::size_t>
template<class TIteratorType >
void Kratos::DistributedSparseGraph< TIndexType >::AddEntries ( const IndexType  RowIndex,
const TIteratorType &  rColBegin,
const TIteratorType &  rColEnd 
)
inline

◆ AddEntries() [3/4]

template<class TIndexType = std::size_t>
template<class TContainerType >
void Kratos::DistributedSparseGraph< TIndexType >::AddEntries ( const TContainerType &  rIndices)
inline

◆ AddEntries() [4/4]

template<class TIndexType = std::size_t>
template<class TContainerType >
void Kratos::DistributedSparseGraph< TIndexType >::AddEntries ( const TContainerType &  rRowIndices,
const TContainerType &  rColIndices 
)
inline

◆ AddEntry()

template<class TIndexType = std::size_t>
void Kratos::DistributedSparseGraph< TIndexType >::AddEntry ( const IndexType  RowIndex,
const IndexType  ColIndex 
)
inline

◆ Clear()

template<class TIndexType = std::size_t>
void Kratos::DistributedSparseGraph< TIndexType >::Clear ( )
inline

◆ ComputeLocalMinMaxColumnIndex()

template<class TIndexType = std::size_t>
void Kratos::DistributedSparseGraph< TIndexType >::ComputeLocalMinMaxColumnIndex ( IndexType rMinJ,
IndexType rMaxJ 
) const
inline

◆ ComputeMaxGlobalColumnIndex()

template<class TIndexType = std::size_t>
IndexType Kratos::DistributedSparseGraph< TIndexType >::ComputeMaxGlobalColumnIndex ( ) const
inline

◆ Finalize()

template<class TIndexType = std::size_t>
void Kratos::DistributedSparseGraph< TIndexType >::Finalize ( )
inline

◆ GetComm()

template<class TIndexType = std::size_t>
const DataCommunicator& Kratos::DistributedSparseGraph< TIndexType >::GetComm ( ) const
inline

◆ GetLocalGraph()

template<class TIndexType = std::size_t>
const LocalGraphType& Kratos::DistributedSparseGraph< TIndexType >::GetLocalGraph ( ) const
inline

◆ GetNonLocalGraph()

template<class TIndexType = std::size_t>
const NonLocalGraphType& Kratos::DistributedSparseGraph< TIndexType >::GetNonLocalGraph ( IndexType  Rank) const
inline

◆ GetNonLocalGraphs()

template<class TIndexType = std::size_t>
const DenseVector<NonLocalGraphType>& Kratos::DistributedSparseGraph< TIndexType >::GetNonLocalGraphs ( ) const
inline

◆ GetRowNumbering()

template<class TIndexType = std::size_t>
const DistributedNumbering<IndexType>& Kratos::DistributedSparseGraph< TIndexType >::GetRowNumbering ( ) const
inline

◆ Has()

template<class TIndexType = std::size_t>
bool Kratos::DistributedSparseGraph< TIndexType >::Has ( const IndexType  GlobalI,
const IndexType  GlobalJ 
) const
inline

◆ Info()

template<class TIndexType = std::size_t>
std::string Kratos::DistributedSparseGraph< TIndexType >::Info ( ) const
inline

Turn back information as a string.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TIndexType = std::size_t>
Kratos::DistributedSparseGraph< TIndexType >::KRATOS_CLASS_POINTER_DEFINITION ( DistributedSparseGraph< TIndexType >  )

Pointer definition of DistributedSparseGraph.

◆ LocalSize()

template<class TIndexType = std::size_t>
IndexType Kratos::DistributedSparseGraph< TIndexType >::LocalSize ( ) const
inline

◆ operator[]()

template<class TIndexType = std::size_t>
const LocalGraphType::GraphType::value_type& Kratos::DistributedSparseGraph< TIndexType >::operator[] ( const IndexType LocalPosition) const
inline

◆ pGetComm()

template<class TIndexType = std::size_t>
const DataCommunicator* Kratos::DistributedSparseGraph< TIndexType >::pGetComm ( ) const
inline

◆ PrintData()

template<class TIndexType = std::size_t>
void Kratos::DistributedSparseGraph< TIndexType >::PrintData ( std::ostream &  rOStream) const
inline

Print object's data.

◆ PrintInfo()

template<class TIndexType = std::size_t>
void Kratos::DistributedSparseGraph< TIndexType >::PrintInfo ( std::ostream &  rOStream) const
inline

Print information about this object.

◆ Size()

template<class TIndexType = std::size_t>
IndexType Kratos::DistributedSparseGraph< TIndexType >::Size ( ) const
inline

Friends And Related Function Documentation

◆ Serializer

template<class TIndexType = std::size_t>
friend class Serializer
friend

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