SpECTRE  2021.08.02
intrp::Actions::RegisterElementWithInterpolator Struct Reference

Invoked on DgElementArray to register all its elements with the Interpolator. More...

#include <InterpolatorRegisterElement.hpp>

Static Public Member Functions

template<typename ParallelComponent , typename DbTagList , typename Metavariables , typename ArrayIndex >
static void perform_registration (const db::DataBox< DbTagList > &, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index) noexcept
 
template<typename ParallelComponent , typename DbTagList , typename Metavariables , typename ArrayIndex >
static void perform_deregistration (const db::DataBox< DbTagList > &, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index) noexcept
 
template<typename DbTagList , typename... InboxTags, typename Metavariables , typename ArrayIndex , typename ActionList , typename ParallelComponent >
static std::tuple< db::DataBox< DbTagList > && > apply (db::DataBox< DbTagList > &box, const tuples::TaggedTuple< InboxTags... > &, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const ActionList, const ParallelComponent *const) noexcept
 

Detailed Description

Invoked on DgElementArray to register all its elements with the Interpolator.

Uses: nothing

DataBox changes:

  • Adds: nothing
  • Removes: nothing
  • Modifies: nothing

When this struct is used as an action, the apply function will perform the registration with the interpolator. However, this struct also offers the static member functions perform_registration and perform_deregistration that are needed for either registering when an element is added to a core outside of initialization or deregistering when an element is being eliminated from a core. The use of separate functions is necessary to provide an interface usable outside of iterable actions, e.g. in specialized pup functions.