SpECTRE Documentation Coverage Report
Current view: top level - ParallelAlgorithms/EventsAndTriggers - Trigger.hpp Hit Total Coverage
Commit: fbcce2ed065a8e48da2f38009a84bbfbc0c260ee Lines: 1 5 20.0 %
Date: 2025-11-14 20:55:50
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/DataBox/MetavariablesTag.hpp"
       8             : #include "Utilities/CallWithDynamicType.hpp"
       9             : #include "Utilities/Serialization/CharmPupable.hpp"
      10             : #include "Utilities/TMPL.hpp"
      11             : 
      12             : /*!
      13             :  * \ingroup EventsAndTriggersGroup
      14             :  * \brief Contains the available triggers.
      15             :  */
      16             : namespace Triggers {}
      17             : 
      18             : /// \ingroup EventsAndTriggersGroup
      19             : /// Base class for checking whether to run an Event.
      20           1 : class Trigger : public PUP::able {
      21             :  protected:
      22             :   /// \cond
      23             :   Trigger() = default;
      24             :   Trigger(const Trigger&) = default;
      25             :   Trigger(Trigger&&) = default;
      26             :   Trigger& operator=(const Trigger&) = default;
      27             :   Trigger& operator=(Trigger&&) = default;
      28             :   /// \endcond
      29             : 
      30             :  public:
      31           0 :   ~Trigger() override = default;
      32             : 
      33           0 :   WRAPPED_PUPable_abstract(Trigger);  // NOLINT
      34             : 
      35             :   template <typename DbTags>
      36           0 :   bool is_triggered(const db::DataBox<DbTags>& box) const {
      37             :     using factory_classes =
      38             :         typename std::decay_t<decltype(db::get<Parallel::Tags::Metavariables>(
      39             :             box))>::factory_creation::factory_classes;
      40             :     return call_with_dynamic_type<bool, tmpl::at<factory_classes, Trigger>>(
      41             :         this, [&box](auto* const trigger) { return db::apply(*trigger, box); });
      42             :   }
      43             : };

Generated by: LCOV version 1.14