SpECTRE Documentation Coverage Report
Current view: top level - Domain/Creators/TimeDependentOptions - GridCenters.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 11.8 % 17 2
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 <array>
       7              : #include <optional>
       8              : #include <string>
       9              : 
      10              : #include "DataStructures/DataVector.hpp"
      11              : #include "Domain/FunctionsOfTime/FunctionOfTime.hpp"
      12              : #include "Options/Auto.hpp"
      13              : #include "Options/Context.hpp"
      14              : #include "Options/String.hpp"
      15              : #include "Utilities/TMPL.hpp"
      16              : 
      17              : namespace domain::creators::time_dependent_options {
      18              : /*!
      19              :  * \brief Class that holds map options from the grid centers location.
      20              :  *
      21              :  * This is needed in BNS simulations where the stars are not at the centers of
      22              :  * the cubes.
      23              :  *
      24              :  * \details This class can also be used as an option tag with the \p type type
      25              :  * alias, `name()` function, and \p help string.
      26              :  */
      27            1 : struct GridCentersOptions {
      28            0 :   using type = Options::Auto<GridCentersOptions, Options::AutoLabel::None>;
      29            0 :   static std::string name() { return "GridCenters"; }
      30              : 
      31            0 :   struct SpecEvolutionParametersPerlFile {
      32            0 :     using type = std::string;
      33            0 :     static constexpr Options::String help = {
      34              :         "Path to the EvolutionParameters.perl file that SpEC outputs to parse "
      35              :         "for the initial positions and velocities."};
      36              :   };
      37              : 
      38            0 :   struct ScaleInspiralRateBy {
      39            0 :     using type = Options::Auto<double>;
      40            0 :     static constexpr Options::String help = {
      41              :         "The inspiral rate from the initial data is not exact because of gauge "
      42              :         "changes and in general that initial data is not perfect. The control "
      43              :         "system can have an easier time if the inspiral rate is scaled in some "
      44              :         "cases. You typically shouldn't need to scale by more than a factor of "
      45              :         "2 larger or smaller."};
      46              :   };
      47              : 
      48            0 :   using options =
      49              :       tmpl::list<SpecEvolutionParametersPerlFile, ScaleInspiralRateBy>;
      50            0 :   static constexpr Options::String help = {
      51              :       "Sets the initial value of the GridCenters of the objects."};
      52              : 
      53            0 :   GridCentersOptions();
      54            0 :   explicit GridCentersOptions(
      55              :       const std::string& spec_evolution_parameters_perl_file,
      56              :       std::optional<double> in_scale_inspiral_rate_by,
      57              :       const Options::Context& context = {});
      58              : 
      59            0 :   std::array<DataVector, 3> initial_values{};
      60            0 :   std::optional<double> scale_inspiral_rate_by{std::nullopt};
      61              : };
      62              : 
      63              : /*!
      64              :  * \brief Helper function that creates the FunctionOfTime from the center
      65              :  * options, initial time, and expiration time.
      66              :  */
      67            1 : std::unique_ptr<domain::FunctionsOfTime::FunctionOfTime> get_grid_centers(
      68              :     const GridCentersOptions& grid_centers_options, double initial_time,
      69              :     double expiration_time);
      70              : }  // namespace domain::creators::time_dependent_options
        

Generated by: LCOV version 2.0-1