SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/GeneralizedHarmonic/Bbh - CompletionCriteria.hpp Hit Total Coverage
Commit: 1e29a35ad8559408f21493dc5db8a49a237bb2f0 Lines: 13 90 14.4 %
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             : #include <string>
       8             : 
       9             : #include "DataStructures/DataBox/Tag.hpp"
      10             : #include "Options/String.hpp"
      11             : #include "Utilities/Gsl.hpp"
      12             : #include "Utilities/TMPL.hpp"
      13             : 
      14             : namespace gh::bbh {
      15           0 : namespace OptionTags {
      16             : /// BBH inspiral-completion controls that are read from input options.
      17           1 : struct CompletionCriteria {
      18           0 :   static std::string name() { return "BbhCompletionCriteria"; }
      19           0 :   static constexpr Options::String help =
      20             :       "Options controlling inspiral termination based on global BBH criteria.";
      21             : };
      22             : 
      23           0 : struct MinCommonHorizonSuccessesBeforeChecks {
      24           0 :   using type = size_t;
      25           0 :   using group = CompletionCriteria;
      26           0 :   static constexpr Options::String help =
      27             :       "Do not evaluate binary-black-hole completion checks before this many "
      28             :       "successful common-horizon finds.";
      29             : };
      30             : 
      31           0 : struct MaxCommonHorizonSuccesses {
      32           0 :   using type = size_t;
      33           0 :   using group = CompletionCriteria;
      34           0 :   static constexpr Options::String help =
      35             :       "When successful common-horizon finds reach this count in a "
      36             :       "binary-black-hole simulation, request completion.";
      37             : };
      38             : 
      39           0 : struct GaugeConstraintLinfThreshold {
      40           0 :   using type = double;
      41           0 :   using group = CompletionCriteria;
      42           0 :   static constexpr Options::String help =
      43             :       "When the reduced Linf norm of the gauge constraint is greater than or "
      44             :       "equal to this threshold in a binary-black-hole simulation, request "
      45             :       "completion.";
      46             : };
      47             : 
      48           0 : struct ThreeIndexConstraintLinfThreshold {
      49           0 :   using type = double;
      50           0 :   using group = CompletionCriteria;
      51           0 :   static constexpr Options::String help =
      52             :       "When the reduced Linf norm of the three-index constraint is greater "
      53             :       "than or equal to this threshold in a binary-black-hole simulation, "
      54             :       "request completion.";
      55             : };
      56             : 
      57           0 : struct CommonHorizonLMaxThreshold {
      58           0 :   using type = size_t;
      59           0 :   using group = CompletionCriteria;
      60           0 :   static constexpr Options::String help =
      61             :       "When the common-horizon LMax is less than or equal to this value in a "
      62             :       "binary-black-hole simulation, request completion (after the minimum "
      63             :       "common-horizon success count is reached).";
      64             : };
      65             : 
      66           0 : struct ConstraintCheckVerbose {
      67           0 :   using type = bool;
      68           0 :   using group = CompletionCriteria;
      69           0 :   static constexpr Options::String help =
      70             :       "Whether to print reduced binary-black-hole constraint norms at each "
      71             :       "constraint-threshold check.";
      72             : };
      73             : }  // namespace OptionTags
      74             : 
      75           0 : namespace Tags {
      76             : /// Minimum number of successful common-horizon finds required before
      77             : /// completion checks are evaluated.
      78           1 : struct MinCommonHorizonSuccessesBeforeChecks : db::SimpleTag {
      79           0 :   using type = size_t;
      80           0 :   using option_tags =
      81             :       tmpl::list<OptionTags::MinCommonHorizonSuccessesBeforeChecks>;
      82             : 
      83           0 :   static constexpr bool pass_metavariables = false;
      84           0 :   static type create_from_options(const type value) { return value; }
      85             : };
      86             : 
      87             : /// Number of successful common-horizon finds that triggers completion.
      88             : /// Controlled by `gh::bbh::OptionTags::MaxCommonHorizonSuccesses`.
      89           1 : struct MaxCommonHorizonSuccesses : db::SimpleTag {
      90           0 :   using type = size_t;
      91           0 :   using option_tags = tmpl::list<OptionTags::MaxCommonHorizonSuccesses>;
      92             : 
      93           0 :   static constexpr bool pass_metavariables = false;
      94           0 :   static type create_from_options(const type value) { return value; }
      95             : };
      96             : 
      97             : /// Threshold for requesting completion from the reduced gauge-constraint Linf
      98             : /// criterion:
      99             : /// when Linf(gauge constraint) >= this threshold in a binary-black-hole
     100             : /// simulation, request completion.
     101             : /// Controlled by `gh::bbh::OptionTags::GaugeConstraintLinfThreshold`.
     102           1 : struct GaugeConstraintLinfThreshold : db::SimpleTag {
     103           0 :   using type = double;
     104           0 :   using option_tags = tmpl::list<OptionTags::GaugeConstraintLinfThreshold>;
     105             : 
     106           0 :   static constexpr bool pass_metavariables = false;
     107           0 :   static type create_from_options(const type value) { return value; }
     108             : };
     109             : 
     110             : /// Threshold for requesting completion from the reduced three-index-constraint
     111             : /// Linf criterion:
     112             : /// when Linf(three-index constraint) >= this threshold in a binary-black-hole
     113             : /// simulation, request completion.
     114             : /// Controlled by `gh::bbh::OptionTags::ThreeIndexConstraintLinfThreshold`.
     115           1 : struct ThreeIndexConstraintLinfThreshold : db::SimpleTag {
     116           0 :   using type = double;
     117           0 :   using option_tags = tmpl::list<OptionTags::ThreeIndexConstraintLinfThreshold>;
     118             : 
     119           0 :   static constexpr bool pass_metavariables = false;
     120           0 :   static type create_from_options(const type value) { return value; }
     121             : };
     122             : 
     123             : /// Common-horizon `LMax` threshold criterion for requesting completion
     124             : /// (after the minimum common-horizon success count is reached):
     125             : /// when common-horizon `LMax` <= this threshold in a binary-black-hole
     126             : /// simulation, request completion.
     127             : /// Controlled by `gh::bbh::OptionTags::CommonHorizonLMaxThreshold`.
     128           1 : struct CommonHorizonLMaxThreshold : db::SimpleTag {
     129           0 :   using type = size_t;
     130           0 :   using option_tags = tmpl::list<OptionTags::CommonHorizonLMaxThreshold>;
     131             : 
     132           0 :   static constexpr bool pass_metavariables = false;
     133           0 :   static type create_from_options(const type value) { return value; }
     134             : };
     135             : 
     136             : /// Verbosity control for reduced constraint checks.
     137             : /// Controlled by `gh::bbh::OptionTags::ConstraintCheckVerbose`.
     138           1 : struct ConstraintCheckVerbose : db::SimpleTag {
     139           0 :   using type = bool;
     140           0 :   using option_tags = tmpl::list<OptionTags::ConstraintCheckVerbose>;
     141             : 
     142           0 :   static constexpr bool pass_metavariables = false;
     143           0 :   static type create_from_options(const type value) { return value; }
     144             : };
     145             : 
     146             : /// Latch indicating that the reduced gauge-constraint criterion was met.
     147           1 : struct GaugeConstraintExceeded : db::SimpleTag {
     148           0 :   using type = bool;
     149           0 :   using option_tags = tmpl::list<>;
     150             : 
     151           0 :   static constexpr bool pass_metavariables = false;
     152           0 :   static type create_from_options() { return false; }
     153             : };
     154             : 
     155             : /// Latch indicating that the reduced three-index-constraint criterion was met.
     156           1 : struct ThreeIndexConstraintExceeded : db::SimpleTag {
     157           0 :   using type = bool;
     158           0 :   using option_tags = tmpl::list<>;
     159             : 
     160           0 :   static constexpr bool pass_metavariables = false;
     161           0 :   static type create_from_options() { return false; }
     162             : };
     163             : 
     164             : /// Latch indicating that a successful common-horizon find satisfied the `LMax`
     165             : /// criterion.
     166           1 : struct CommonHorizonLMaxBelowOrEqualThreshold : db::SimpleTag {
     167           0 :   using type = bool;
     168           0 :   using option_tags = tmpl::list<>;
     169             : 
     170           0 :   static constexpr bool pass_metavariables = false;
     171           0 :   static type create_from_options() { return false; }
     172             : };
     173             : 
     174             : /// Count of successful common-horizon finds.
     175           1 : struct CommonHorizonSuccessCount : db::SimpleTag {
     176           0 :   using type = size_t;
     177           0 :   using option_tags = tmpl::list<>;
     178             : 
     179           0 :   static constexpr bool pass_metavariables = false;
     180           0 :   static type create_from_options() { return 0; }
     181             : };
     182             : 
     183             : /// Latch used by phase control to checkpoint-and-exit the binary-black-hole
     184             : /// simulation when completion is requested by any criterion.
     185           1 : struct CompletionRequested : db::SimpleTag {
     186           0 :   using type = bool;
     187           0 :   using option_tags = tmpl::list<>;
     188             : 
     189           0 :   static constexpr bool pass_metavariables = false;
     190           0 :   static type create_from_options() { return false; }
     191             : };
     192             : 
     193             : /// Element-local latch mirrored from the BBH completion singleton and used by
     194             : /// phase control to request checkpoint-and-exit.
     195           1 : struct ElementCompletionRequested : db::SimpleTag {
     196           0 :   using type = bool;
     197           0 :   using option_tags = tmpl::list<>;
     198             : 
     199           0 :   static constexpr bool pass_metavariables = false;
     200           0 :   static type create_from_options() { return false; }
     201             : };
     202             : }  // namespace Tags
     203             : }  // namespace gh::bbh

Generated by: LCOV version 1.14