SpECTRE  v2024.04.12
intrp::Actions::ReceivePoints< InterpolationTargetTag > Struct Template Reference

Receives target points from an InterpolationTarget. More...

#include <InterpolatorReceivePoints.hpp>

Static Public Member Functions

template<typename ParallelComponent , typename DbTags , typename Metavariables , typename ArrayIndex , size_t VolumeDim>
static void apply (db::DataBox< DbTags > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &, const typename InterpolationTargetTag::temporal_id::type &temporal_id, std::vector< std::optional< IdPair< domain::BlockId, tnsr::I< double, VolumeDim, typename ::Frame::BlockLogical > > > > &&block_logical_coords, const size_t iteration=0_st)
 

Detailed Description

template<typename InterpolationTargetTag>
struct intrp::Actions::ReceivePoints< InterpolationTargetTag >

Receives target points from an InterpolationTarget.

After receiving the points, interpolates volume data onto them if it already has all the volume data.

The iteration parameter is used to order receives of block_logical_coords. Because of the asynchronous nature of communication, it is possible that a more recent set of points arrives before an older set. It is assumed that if a more recent set arrives, then the old set is no longer needed. This iteration parameter tags each communication as "more recent" or "older" so if we receive an older set of points after a more recent set, we don't overwrite the more recent set.

Note
If the interpolator receives points with the same iteration, an ERROR will occur.

Uses:

DataBox changes:

For requirements on InterpolationTargetTag, see InterpolationTarget


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