SpECTRE  v2021.11.01
Actions::UpdateMessageQueue< QueueTag, LinkedMessageQueueTag, Processor > Struct Template Reference

Add data to a LinkedMessageQueue. More...

#include <UpdateMessageQueue.hpp>

Static Public Member Functions

template<typename ParallelComponent , typename DbTags , typename Metavariables , typename ArrayIndex >
static void apply (db::DataBox< DbTags > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const LinkedMessageId< typename LinkedMessageQueueTag::type::IdType > &id_and_previous, typename QueueTag::type message)

Detailed Description

template<typename QueueTag, typename LinkedMessageQueueTag, typename Processor>
struct Actions::UpdateMessageQueue< QueueTag, LinkedMessageQueueTag, Processor >

Add data to a LinkedMessageQueue.

Add the passed id_and_previous and message to the queue QueueTag in the LinkedMessageQueue stored in the DataBox tag LinkedMessageQueueTag. Then, for each ID for which the message queue has all required messages, call Processor::apply. The signature for an apply function for a message queue containing Queue1 and Queue2 with ID type int is:

template <typename DbTags, typename Metavariables, typename ArrayIndex>
static void apply(const gsl::not_null<db::DataBox<DbTags>*> box,
const ArrayIndex& /*array_index*/, const int id,
A Charm++ chare that caches constant data once per Charm++ node or non-constant data once per Charm++...
Definition: GlobalCache.hpp:272
Require a pointer to not be a nullptr
Definition: Gsl.hpp:183
An associative container that is indexed by structs.
Definition: TaggedTuple.hpp:259

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