SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/GeneralizedHarmonic/Bbh - CompletionCriteria.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 14.4 % 90 13
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 <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 2.0-1