SpECTRE  2021.08.02
PhaseControl::TagAndCombine< Tag, CombineMethod, MainCombineMethod > Struct Template Reference

A type for denoting a piece of data for deciding a phase change. More...

#include <PhaseControlReductionHelpers.hpp>

Public Types

using tag = Tag
 
using combine_method = CombineMethod
 
using main_combine_method = MainCombineMethod
 

Detailed Description

template<typename Tag, typename CombineMethod, typename MainCombineMethod = CombineMethod>
struct PhaseControl::TagAndCombine< Tag, CombineMethod, MainCombineMethod >

A type for denoting a piece of data for deciding a phase change.

Tag is intended to be a tag (with a type) for indexing a tuples::TaggedTuple, and CombineMethod is intended to be a Parallel::ReductionDatum-compatible invokable for combining the type of the Tag. The MainCombineMethod is provided to give flexibility for a different method of combination at the top level of the hierarchy (so, in the case of phase control reductions, performed by the main chare to combine reductions from different chares)