SpECTRE Documentation Coverage Report
Current view: top level - ParallelAlgorithms/Interpolation/Actions - ElementReceiveInterpPoints.hpp Hit Total Coverage
Commit: 361cb8d8406bb752684a5f31c27320ec444a50e3 Lines: 1 3 33.3 %
Date: 2025-11-09 02:02:04
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include "DataStructures/DataBox/DataBox.hpp"
       7             : #include "DataStructures/IdPair.hpp"
       8             : #include "Domain/BlockLogicalCoordinates.hpp"
       9             : #include "ParallelAlgorithms/Interpolation/PointInfoTag.hpp"
      10             : #include "Utilities/Gsl.hpp"
      11             : #include "Utilities/Requires.hpp"
      12             : 
      13             : namespace Parallel {
      14             : template <typename Metavariables>
      15             : class GlobalCache;
      16             : }  // namespace Parallel
      17             : 
      18             : namespace intrp::Actions {
      19             : 
      20             : /// \ingroup ActionsGroup
      21             : /// \brief Receives interpolation points from an InterpolationTarget.
      22             : ///
      23             : /// Uses: nothing
      24             : ///
      25             : /// DataBox changes:
      26             : /// - Adds: nothing
      27             : /// - Removes: nothing
      28             : /// - Modifies:
      29             : ///   - `intrp::Tags::PointInfo`
      30             : template <typename InterpolationTargetTag>
      31           1 : struct ElementReceiveInterpPoints {
      32             :   template <typename ParallelComponent, typename DbTags, typename Metavariables,
      33             :             typename ArrayIndex, size_t Dim>
      34           0 :   static void apply(
      35             :       db::DataBox<DbTags>& box,
      36             :       const Parallel::GlobalCache<Metavariables>& /*cache*/,
      37             :       const ArrayIndex& /*array_index*/,
      38             :       tnsr::I<DataVector, Dim,
      39             :               typename InterpolationTargetTag::compute_target_points::frame>&&
      40             :           coords) {
      41             :     db::mutate<
      42             :         intrp::Tags::PointInfo<InterpolationTargetTag, tmpl::size_t<Dim>>>(
      43             :         [&coords](
      44             :             const gsl::not_null<tnsr::I<
      45             :                 DataVector, Dim,
      46             :                 typename InterpolationTargetTag::compute_target_points::frame>*>
      47             :                 point_infos) { (*point_infos) = std::move(coords); },
      48             :         make_not_null(&box));
      49             :   }
      50             : };
      51             : }  // namespace intrp::Actions

Generated by: LCOV version 1.14