SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/CurvedScalarWave/Worldtube/SingletonActions - SendAccelerationTerms.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 20.0 % 5 1
Test Date: 2026-10-22 17:29:42
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 <cstddef>
       7              : #include <optional>
       8              : 
       9              : #include "DataStructures/DataBox/DataBox.hpp"
      10              : #include "Domain/Structure/ElementId.hpp"
      11              : #include "Domain/Tags.hpp"
      12              : #include "Evolution/Systems/CurvedScalarWave/Worldtube/Inboxes.hpp"
      13              : #include "Evolution/Systems/CurvedScalarWave/Worldtube/SingletonActions/ReceiveElementData.hpp"
      14              : #include "Evolution/Systems/CurvedScalarWave/Worldtube/Tags.hpp"
      15              : #include "Parallel/AlgorithmExecution.hpp"
      16              : #include "Time/TimeStepId.hpp"
      17              : 
      18              : namespace CurvedScalarWave::Worldtube::Actions {
      19              : 
      20              : /*!
      21              :  * \brief Sends the acceleration terms to worldtube neighbors
      22              :  */
      23              : template <typename Metavariables>
      24            1 : struct SendAccelerationTerms {
      25            0 :   static constexpr size_t Dim = Metavariables::volume_dim;
      26            0 :   using simple_tags = tmpl::list<Tags::AccelerationTerms>;
      27              :   template <typename DbTagsList, typename... InboxTags, typename ArrayIndex,
      28              :             typename ActionList, typename ParallelComponent>
      29            0 :   static Parallel::iterable_action_return_t apply(
      30              :       db::DataBox<DbTagsList>& box,
      31              :       tuples::TaggedTuple<InboxTags...>& /*inboxes*/,
      32              :       Parallel::GlobalCache<Metavariables>& cache,
      33              :       const ArrayIndex& /*array_index*/, const ActionList /*meta*/,
      34              :       const ParallelComponent* const /*meta*/) {
      35              :     const auto& faces_grid_coords =
      36              :         get<Tags::ElementFacesGridCoordinates<Dim>>(box);
      37              :     auto& element_proxies = Parallel::get_parallel_component<
      38              :         typename Metavariables::dg_element_array>(cache);
      39              :     for (const auto& [element_id, _] : faces_grid_coords) {
      40              :       auto data_to_send = db::get<Tags::AccelerationTerms>(box);
      41              :       Parallel::receive_data<Tags::SelfForceInbox<Dim>>(
      42              :           element_proxies[element_id], db::get<::Tags::TimeStepId>(box),
      43              :           std::move(data_to_send));
      44              :     }
      45              :     return {Parallel::AlgorithmExecution::Continue,
      46              :             tmpl::index_of<ActionList, ReceiveElementData>::value};
      47              :   }
      48              : };
      49              : }  // namespace CurvedScalarWave::Worldtube::Actions
        

Generated by: LCOV version 2.0-1