SpECTRE  v2024.05.11
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 global data once per Charm++ node.
Definition: GlobalCache.hpp:221
Require a pointer to not be a nullptr
Definition: Gsl.hpp:183
An associative container that is indexed by structs.
Definition: TaggedTuple.hpp:261

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