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::DistributedSystemVector< TDataType, TIndexType > Class Template Referencefinal

Provides a DistributedSystemVector which implements FEM assemble capabilities. More...

#include <distributed_system_vector.h>

Collaboration diagram for Kratos::DistributedSystemVector< TDataType, TIndexType >:

Public Member Functions

Life Cycle
 DistributedSystemVector (const DistributedSparseGraph< IndexType > &rGraph)
 
 DistributedSystemVector (DistributedSystemVector const &rOther)
 Copy constructor. More...
 
 DistributedSystemVector (const DistributedNumbering< IndexType > &rNumbering)
 
 ~DistributedSystemVector ()
 Destructor. More...
 
Operators
const DataCommunicatorGetComm () const
 
const DataCommunicatorpGetComm () const
 
const DistributedNumbering< IndexType > & GetNumbering () const
 
void Clear ()
 
void SetValue (const TDataType value)
 
TDataType & operator() (IndexType I)
 
const TDataType & operator() (IndexType I) const
 
TDataType & operator[] (IndexType I)
 
const TDataType & operator[] (IndexType I) const
 
IndexType Size () const
 
IndexType LocalSize () const
 
DenseVector< TDataType > & GetLocalData ()
 
const DenseVector< TDataType > & GetLocalData () const
 
const DistributedVectorExporter< TIndexType > & GetExporter () const
 
void AddEntry (TIndexType GlobalI)
 
template<class TIteratorType >
void AddEntries (TIteratorType it_begin, TIteratorType it_end)
 
TDataType Dot (const DistributedSystemVector &rOtherVector, MpiIndexType gather_on_rank=0)
 
void Add (const TDataType factor, const DistributedSystemVector &rOtherVector)
 
DistributedSystemVectoroperator= (DistributedSystemVector const &rOtherVector)
 Assignment operator. More...
 
DistributedSystemVectoroperator+= (const DistributedSystemVector &rOtherVector)
 
DistributedSystemVectoroperator-= (const DistributedSystemVector &rOtherVector)
 
DistributedSystemVectoroperator*= (const TDataType &multiplier_factor)
 
DistributedSystemVectoroperator/= (const TDataType &divide_factor)
 
Operations
void BeginAssemble ()
 
void FinalizeAssemble ()
 
template<class TVectorType , class TIndexVectorType >
void Assemble (const TVectorType &rVectorInput, const TIndexVectorType &EquationId)
 
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 TDataType value_type
 
typedef TIndexType IndexType
 
typedef int MpiIndexType
 
 KRATOS_CLASS_POINTER_DEFINITION (DistributedSystemVector)
 Pointer definition of DistributedSystemVector. More...
 

Detailed Description

template<class TDataType = double, class TIndexType = std::size_t>
class Kratos::DistributedSystemVector< TDataType, TIndexType >

Provides a DistributedSystemVector which implements FEM assemble capabilities.

Member Typedef Documentation

◆ IndexType

template<class TDataType = double, class TIndexType = std::size_t>
typedef TIndexType Kratos::DistributedSystemVector< TDataType, TIndexType >::IndexType

◆ MpiIndexType

template<class TDataType = double, class TIndexType = std::size_t>
typedef int Kratos::DistributedSystemVector< TDataType, TIndexType >::MpiIndexType

◆ value_type

template<class TDataType = double, class TIndexType = std::size_t>
typedef TDataType Kratos::DistributedSystemVector< TDataType, TIndexType >::value_type

Constructor & Destructor Documentation

◆ DistributedSystemVector() [1/3]

template<class TDataType = double, class TIndexType = std::size_t>
Kratos::DistributedSystemVector< TDataType, TIndexType >::DistributedSystemVector ( const DistributedSparseGraph< IndexType > &  rGraph)
inline

◆ DistributedSystemVector() [2/3]

template<class TDataType = double, class TIndexType = std::size_t>
Kratos::DistributedSystemVector< TDataType, TIndexType >::DistributedSystemVector ( DistributedSystemVector< TDataType, TIndexType > const &  rOther)
inlineexplicit

Copy constructor.

◆ DistributedSystemVector() [3/3]

template<class TDataType = double, class TIndexType = std::size_t>
Kratos::DistributedSystemVector< TDataType, TIndexType >::DistributedSystemVector ( const DistributedNumbering< IndexType > &  rNumbering)
inline

◆ ~DistributedSystemVector()

template<class TDataType = double, class TIndexType = std::size_t>
Kratos::DistributedSystemVector< TDataType, TIndexType >::~DistributedSystemVector ( )
inline

Destructor.

Member Function Documentation

◆ Add()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::Add ( const TDataType  factor,
const DistributedSystemVector< TDataType, TIndexType > &  rOtherVector 
)
inline

◆ AddEntries()

template<class TDataType = double, class TIndexType = std::size_t>
template<class TIteratorType >
void Kratos::DistributedSystemVector< TDataType, TIndexType >::AddEntries ( TIteratorType  it_begin,
TIteratorType  it_end 
)
inline

◆ AddEntry()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::AddEntry ( TIndexType  GlobalI)
inline

◆ Assemble()

template<class TDataType = double, class TIndexType = std::size_t>
template<class TVectorType , class TIndexVectorType >
void Kratos::DistributedSystemVector< TDataType, TIndexType >::Assemble ( const TVectorType &  rVectorInput,
const TIndexVectorType &  EquationId 
)
inline

◆ BeginAssemble()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::BeginAssemble ( )
inline

◆ Clear()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::Clear ( )
inline

◆ Dot()

template<class TDataType = double, class TIndexType = std::size_t>
TDataType Kratos::DistributedSystemVector< TDataType, TIndexType >::Dot ( const DistributedSystemVector< TDataType, TIndexType > &  rOtherVector,
MpiIndexType  gather_on_rank = 0 
)
inline

◆ FinalizeAssemble()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::FinalizeAssemble ( )
inline

◆ GetComm()

template<class TDataType = double, class TIndexType = std::size_t>
const DataCommunicator& Kratos::DistributedSystemVector< TDataType, TIndexType >::GetComm ( ) const
inline

◆ GetExporter()

template<class TDataType = double, class TIndexType = std::size_t>
const DistributedVectorExporter<TIndexType>& Kratos::DistributedSystemVector< TDataType, TIndexType >::GetExporter ( ) const
inline

◆ GetLocalData() [1/2]

template<class TDataType = double, class TIndexType = std::size_t>
DenseVector<TDataType>& Kratos::DistributedSystemVector< TDataType, TIndexType >::GetLocalData ( )
inline

◆ GetLocalData() [2/2]

template<class TDataType = double, class TIndexType = std::size_t>
const DenseVector<TDataType>& Kratos::DistributedSystemVector< TDataType, TIndexType >::GetLocalData ( ) const
inline

◆ GetNumbering()

template<class TDataType = double, class TIndexType = std::size_t>
const DistributedNumbering<IndexType>& Kratos::DistributedSystemVector< TDataType, TIndexType >::GetNumbering ( ) const
inline

◆ Info()

template<class TDataType = double, class TIndexType = std::size_t>
std::string Kratos::DistributedSystemVector< TDataType, TIndexType >::Info ( ) const
inline

Turn back information as a string.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TDataType = double, class TIndexType = std::size_t>
Kratos::DistributedSystemVector< TDataType, TIndexType >::KRATOS_CLASS_POINTER_DEFINITION ( DistributedSystemVector< TDataType, TIndexType >  )

Pointer definition of DistributedSystemVector.

◆ LocalSize()

template<class TDataType = double, class TIndexType = std::size_t>
IndexType Kratos::DistributedSystemVector< TDataType, TIndexType >::LocalSize ( ) const
inline

◆ operator()() [1/2]

template<class TDataType = double, class TIndexType = std::size_t>
TDataType& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator() ( IndexType  I)
inline

◆ operator()() [2/2]

template<class TDataType = double, class TIndexType = std::size_t>
const TDataType& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator() ( IndexType  I) const
inline

◆ operator*=()

template<class TDataType = double, class TIndexType = std::size_t>
DistributedSystemVector& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator*= ( const TDataType &  multiplier_factor)
inline

◆ operator+=()

template<class TDataType = double, class TIndexType = std::size_t>
DistributedSystemVector& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator+= ( const DistributedSystemVector< TDataType, TIndexType > &  rOtherVector)
inline

◆ operator-=()

template<class TDataType = double, class TIndexType = std::size_t>
DistributedSystemVector& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator-= ( const DistributedSystemVector< TDataType, TIndexType > &  rOtherVector)
inline

◆ operator/=()

template<class TDataType = double, class TIndexType = std::size_t>
DistributedSystemVector& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator/= ( const TDataType &  divide_factor)
inline

◆ operator=()

template<class TDataType = double, class TIndexType = std::size_t>
DistributedSystemVector& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator= ( DistributedSystemVector< TDataType, TIndexType > const &  rOtherVector)
inline

Assignment operator.

◆ operator[]() [1/2]

template<class TDataType = double, class TIndexType = std::size_t>
TDataType& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator[] ( IndexType  I)
inline

◆ operator[]() [2/2]

template<class TDataType = double, class TIndexType = std::size_t>
const TDataType& Kratos::DistributedSystemVector< TDataType, TIndexType >::operator[] ( IndexType  I) const
inline

◆ pGetComm()

template<class TDataType = double, class TIndexType = std::size_t>
const DataCommunicator* Kratos::DistributedSystemVector< TDataType, TIndexType >::pGetComm ( ) const
inline

◆ PrintData()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::PrintData ( std::ostream &  rOStream) const
inline

Print object's data.

◆ PrintInfo()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::PrintInfo ( std::ostream &  rOStream) const
inline

Print information about this object.

◆ SetValue()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::DistributedSystemVector< TDataType, TIndexType >::SetValue ( const TDataType  value)
inline

◆ Size()

template<class TDataType = double, class TIndexType = std::size_t>
IndexType Kratos::DistributedSystemVector< TDataType, TIndexType >::Size ( ) const
inline

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