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.
Public Types | Public Member Functions | Public Attributes | List of all members
Kratos::CombinedReduction< Reducer > Struct Template Reference

#include <reduction_utilities.h>

Collaboration diagram for Kratos::CombinedReduction< Reducer >:

Public Types

typedef std::tuple< typename Reducer::value_type... > value_type
 
typedef std::tuple< typename Reducer::return_type... > return_type
 

Public Member Functions

 CombinedReduction ()
 
return_type GetValue ()
 access to reduced value More...
 
template<int I, class T >
std::enable_if<(I< sizeof...(Reducer)), void >::type fill_value (T &v)
 
template<int I, class T >
std::enable_if<(I==sizeof...(Reducer)), void >::type fill_value (T &v)
 
template<class... T>
void LocalReduce (const std::tuple< T... > &&v)
 NON-THREADSAFE (fast) value of reduction, to be used within a single thread. More...
 
void ThreadSafeReduce (const CombinedReduction &other)
 THREADSAFE (needs some sort of lock guard) reduction, to be used to sync threads. More...
 

Public Attributes

std::tuple< Reducer... > mChild
 

Member Typedef Documentation

◆ return_type

template<class... Reducer>
typedef std::tuple<typename Reducer::return_type...> Kratos::CombinedReduction< Reducer >::return_type

◆ value_type

template<class... Reducer>
typedef std::tuple<typename Reducer::value_type...> Kratos::CombinedReduction< Reducer >::value_type

Constructor & Destructor Documentation

◆ CombinedReduction()

template<class... Reducer>
Kratos::CombinedReduction< Reducer >::CombinedReduction ( )
inline

Member Function Documentation

◆ fill_value() [1/2]

template<class... Reducer>
template<int I, class T >
std::enable_if<(I < sizeof...(Reducer)), void>::type Kratos::CombinedReduction< Reducer >::fill_value ( T &  v)
inline

◆ fill_value() [2/2]

template<class... Reducer>
template<int I, class T >
std::enable_if<(I == sizeof...(Reducer)), void>::type Kratos::CombinedReduction< Reducer >::fill_value ( T &  v)
inline

◆ GetValue()

template<class... Reducer>
return_type Kratos::CombinedReduction< Reducer >::GetValue ( )
inline

access to reduced value

◆ LocalReduce()

template<class... Reducer>
template<class... T>
void Kratos::CombinedReduction< Reducer >::LocalReduce ( const std::tuple< T... > &&  v)
inline

NON-THREADSAFE (fast) value of reduction, to be used within a single thread.

◆ ThreadSafeReduce()

template<class... Reducer>
void Kratos::CombinedReduction< Reducer >::ThreadSafeReduce ( const CombinedReduction< Reducer > &  other)
inline

THREADSAFE (needs some sort of lock guard) reduction, to be used to sync threads.

Member Data Documentation

◆ mChild

template<class... Reducer>
std::tuple<Reducer...> Kratos::CombinedReduction< Reducer >::mChild

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