SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/GeneralizedHarmonic/Bbh/Callbacks - UpdateCompletionCriteria.hpp Hit Total Coverage
Commit: 1e29a35ad8559408f21493dc5db8a49a237bb2f0 Lines: 1 6 16.7 %
Date: 2026-03-31 22:27:51
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             : 
       8             : #include "DataStructures/DataBox/DataBox.hpp"
       9             : #include "Evolution/Systems/GeneralizedHarmonic/Bbh/CompletionCriteria.hpp"
      10             : #include "Evolution/Systems/GeneralizedHarmonic/Bbh/CompletionSingleton.hpp"
      11             : #include "NumericalAlgorithms/SphericalHarmonics/Tags.hpp"
      12             : #include "Parallel/GlobalCache.hpp"
      13             : #include "Parallel/Invoke.hpp"
      14             : #include "ParallelAlgorithms/ApparentHorizonFinder/FastFlow.hpp"
      15             : #include "ParallelAlgorithms/ApparentHorizonFinder/Protocols/Callback.hpp"
      16             : #include "ParallelAlgorithms/ApparentHorizonFinder/Tags.hpp"
      17             : #include "Utilities/ErrorHandling/Assert.hpp"
      18             : #include "Utilities/ProtocolHelpers.hpp"
      19             : #include "Utilities/TMPL.hpp"
      20             : 
      21           0 : namespace gh::bbh::callbacks {
      22             : /*!
      23             :  * \brief Apparent-horizon callback that updates binary-black-hole completion
      24             :  * criteria from successful common-horizon finds.
      25             :  *
      26             :  * \details This callback forwards each successful AhC find (`temporal_id`,
      27             :  * `LMax`) to `gh::bbh::CompletionSingleton`, where completion criteria are
      28             :  * evaluated in a temporally robust, centralized way.
      29             :  */
      30             : template <typename HorizonMetavars>
      31           1 : struct UpdateCompletionCriteria : tt::ConformsTo<ah::protocols::Callback> {
      32           0 :   using const_global_cache_tags = tmpl::list<>;
      33           0 :   using mutable_global_cache_tags = tmpl::list<>;
      34             : 
      35             :   template <typename DbTags, typename Metavariables>
      36           0 :   static void apply(const db::DataBox<DbTags>& box,
      37             :                     Parallel::GlobalCache<Metavariables>& cache,
      38             :                     const FastFlow::Status /*status*/) {
      39             :     const auto& current_time = db::get<ah::Tags::CurrentTime>(box);
      40             :     ASSERT(current_time.has_value(),
      41             :            "AhC completion callback requires a current temporal id.");
      42             :     const size_t l_max =
      43             :         db::get<ylm::Tags::Strahlkorper<typename HorizonMetavars::frame>>(box)
      44             :             .l_max();
      45             :     Parallel::simple_action<gh::bbh::Actions::RecordCommonHorizonSuccess>(
      46             :         Parallel::get_parallel_component<
      47             :             gh::bbh::CompletionSingleton<Metavariables>>(cache),
      48             :         *current_time, l_max);
      49             :   }
      50             : };
      51             : }  // namespace gh::bbh::callbacks

Generated by: LCOV version 1.14