SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/Triggers - HasConverged.hpp Hit Total Coverage
Commit: 37c384043430860f87787999aa7399d01bb3d213 Lines: 1 6 16.7 %
Date: 2024-04-20 02:24:02
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 <pup.h>
       7             : 
       8             : #include "NumericalAlgorithms/Convergence/HasConverged.hpp"
       9             : #include "NumericalAlgorithms/Convergence/Tags.hpp"
      10             : #include "Options/String.hpp"
      11             : #include "ParallelAlgorithms/EventsAndTriggers/Trigger.hpp"
      12             : #include "Utilities/Serialization/CharmPupable.hpp"
      13             : #include "Utilities/TMPL.hpp"
      14             : 
      15             : namespace elliptic::Triggers {
      16             : /// \ingroup EventsAndTriggersGroup
      17             : /// Trigger when the solver identified by the `Label` has converged.
      18             : template <typename Label>
      19           1 : class HasConverged : public Trigger {
      20             :  public:
      21             :   /// \cond
      22             :   HasConverged() = default;
      23             :   explicit HasConverged(CkMigrateMessage* /*unused*/) {}
      24             :   using PUP::able::register_constructor;
      25             :   WRAPPED_PUPable_decl_template(HasConverged);  // NOLINT
      26             :   /// \endcond
      27             : 
      28           0 :   using options = tmpl::list<>;
      29           0 :   static constexpr Options::String help{
      30             :       "Trigger when the solver has converged."};
      31             : 
      32           0 :   using argument_tags = tmpl::list<Convergence::Tags::HasConverged<Label>>;
      33             : 
      34           0 :   bool operator()(const Convergence::HasConverged& has_converged) const {
      35             :     return static_cast<bool>(has_converged);
      36             :   }
      37             : };
      38             : 
      39             : /// \cond
      40             : template <typename Label>
      41             : PUP::able::PUP_ID HasConverged<Label>::my_PUP_ID = 0;  // NOLINT
      42             : /// \endcond
      43             : }  // namespace elliptic::Triggers

Generated by: LCOV version 1.14