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

Provides a SystemVector which implements FEM assemble capabilities, as well as some vector operations. More...

#include <system_vector.h>

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

Public Member Functions

Life Cycle
 SystemVector (const SparseGraph< IndexType > &rGraph)
 
 SystemVector (const SparseContiguousRowGraph< IndexType > &rGraph)
 
 SystemVector (IndexType size, DataCommunicator &rComm=ParallelEnvironment::GetDataCommunicator("Serial"))
 
 SystemVector (const Vector &data, DataCommunicator &rComm=ParallelEnvironment::GetDataCommunicator("Serial"))
 
 SystemVector (const SystemVector< TDataType, TIndexType > &rOtherVector)
 Copy constructor. More...
 
 ~SystemVector ()
 Destructor. More...
 
const DataCommunicatorGetComm () const
 
const DataCommunicatorpGetComm () const
 
Operators
void Clear ()
 
void SetValue (const TDataType value)
 
IndexType size () const
 
TDataType & operator() (IndexType I)
 
const TDataType & operator() (IndexType I) const
 
TDataType & operator[] (IndexType I)
 
const TDataType & operator[] (IndexType I) const
 
DenseVector< TDataType > & data ()
 provides low level access to internal data More...
 
const DenseVector< TDataType > & data () const
 provides low level access to internal data More...
 
void Add (const TDataType factor, const SystemVector &rOtherVector)
 
SystemVectoroperator= (SystemVector const &rOtherVector)
 Assignment operator. More...
 
SystemVectoroperator+= (const SystemVector &rOtherVector)
 
SystemVectoroperator-= (const SystemVector &rOtherVector)
 
SystemVectoroperator*= (const TDataType multiplier_factor)
 
SystemVectoroperator/= (const TDataType divide_factor)
 
TDataType Dot (const SystemVector &rOtherVector, IndexType gather_on_rank=0)
 
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 TIndexType IndexType
 
 KRATOS_CLASS_POINTER_DEFINITION (SystemVector)
 Pointer definition of SystemVector. More...
 

Detailed Description

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

Provides a SystemVector which implements FEM assemble capabilities, as well as some vector operations.

Member Typedef Documentation

◆ IndexType

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

Constructor & Destructor Documentation

◆ SystemVector() [1/5]

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

◆ SystemVector() [2/5]

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

◆ SystemVector() [3/5]

template<class TDataType = double, class TIndexType = std::size_t>
Kratos::SystemVector< TDataType, TIndexType >::SystemVector ( IndexType  size,
DataCommunicator rComm = ParallelEnvironment::GetDataCommunicator("Serial") 
)
inline

◆ SystemVector() [4/5]

template<class TDataType = double, class TIndexType = std::size_t>
Kratos::SystemVector< TDataType, TIndexType >::SystemVector ( const Vector data,
DataCommunicator rComm = ParallelEnvironment::GetDataCommunicator("Serial") 
)
inline

◆ SystemVector() [5/5]

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

Copy constructor.

◆ ~SystemVector()

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

Destructor.

Member Function Documentation

◆ Add()

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

◆ Assemble()

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

◆ BeginAssemble()

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

◆ Clear()

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

◆ data() [1/2]

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

provides low level access to internal data

◆ data() [2/2]

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

provides low level access to internal data

◆ Dot()

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

◆ FinalizeAssemble()

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

◆ GetComm()

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

◆ Info()

template<class TDataType = double, class TIndexType = std::size_t>
std::string Kratos::SystemVector< 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::SystemVector< TDataType, TIndexType >::KRATOS_CLASS_POINTER_DEFINITION ( SystemVector< TDataType, TIndexType >  )

Pointer definition of SystemVector.

◆ operator()() [1/2]

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

◆ operator()() [2/2]

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

◆ operator*=()

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

◆ operator+=()

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

◆ operator-=()

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

◆ operator/=()

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

◆ operator=()

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

Assignment operator.

◆ operator[]() [1/2]

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

◆ operator[]() [2/2]

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

◆ pGetComm()

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

◆ PrintData()

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

Print object's data.

◆ PrintInfo()

template<class TDataType = double, class TIndexType = std::size_t>
void Kratos::SystemVector< 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::SystemVector< TDataType, TIndexType >::SetValue ( const TDataType  value)
inline

◆ size()

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

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