SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/CurvedScalarWave/Worldtube/SingletonActions - IterateAccelerationTerms.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 14.3 % 7 1
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 <optional>
       8              : #include <tuple>
       9              : 
      10              : #include "Evolution/Systems/CurvedScalarWave/Worldtube/Tags.hpp"
      11              : #include "NumericalAlgorithms/Strahlkorper/Tags.hpp"
      12              : #include "Parallel/AlgorithmExecution.hpp"
      13              : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      14              : #include "Utilities/Gsl.hpp"
      15              : 
      16              : namespace CurvedScalarWave::Worldtube {
      17              : 
      18              : /*!
      19              :  * \brief Computes the next iteration of the acceleration due to scalar self
      20              :  * force from the current iteration of the regular field, as well as the
      21              :  * quantities required to compute the acceleration terms of the puncture field.
      22              :  *
      23              :  * \details Analytic expressions for the computed terms are given in Section V.B
      24              :  * of \cite Wittek:2024gxn.
      25              :  */
      26            1 : struct IterateAccelerationTerms {
      27            0 :   static constexpr size_t Dim = 3;
      28            0 :   using simple_tags = tmpl::list<Tags::AccelerationTerms>;
      29            0 :   using return_tags = tmpl::list<Tags::AccelerationTerms>;
      30            0 :   using argument_tags = tmpl::list<
      31              :       Tags::ParticlePositionVelocity<Dim>, Tags::BackgroundQuantities<Dim>,
      32              :       Tags::GeodesicAcceleration<Dim>,
      33              :       Stf::Tags::StfTensor<Tags::PsiWorldtube, 0, Dim, Frame::Inertial>,
      34              :       Stf::Tags::StfTensor<::Tags::dt<Tags::PsiWorldtube>, 0, Dim,
      35              :                            Frame::Inertial>,
      36              :       Stf::Tags::StfTensor<Tags::PsiWorldtube, 1, Dim, Frame::Inertial>,
      37              :       Stf::Tags::StfTensor<::Tags::dt<Tags::PsiWorldtube>, 1, Dim,
      38              :                            Frame::Inertial>,
      39              :       Tags::Charge, Tags::Mass, ::Tags::Time, Tags::SelfForceTurnOnTime,
      40              :       Tags::SelfForceTurnOnInterval, Tags::CurrentIteration>;
      41            0 :   static void apply(
      42              :       gsl::not_null<Scalar<DataVector>*> acceleration_terms,
      43              :       const std::array<tnsr::I<double, Dim>, 2>& pos_vel,
      44              :       const tuples::TaggedTuple<
      45              :           gr::Tags::SpacetimeMetric<double, Dim>,
      46              :           gr::Tags::InverseSpacetimeMetric<double, Dim>,
      47              :           gr::Tags::SpacetimeChristoffelSecondKind<double, Dim>,
      48              :           gr::Tags::TraceSpacetimeChristoffelSecondKind<double, Dim>,
      49              :           Tags::TimeDilationFactor>& background,
      50              :       const tnsr::I<double, Dim, Frame::Inertial>& geodesic_acc,
      51              :       const Scalar<double>& psi_monopole, const Scalar<double>& dt_psi_monopole,
      52              :       const tnsr::i<double, Dim, Frame::Inertial>& psi_dipole,
      53              :       const tnsr::i<double, Dim, Frame::Inertial>& dt_psi_dipole, double charge,
      54              :       std::optional<double> mass, double time,
      55              :       std::optional<double> turn_on_time,
      56              :       std::optional<double> turn_on_interval, size_t iteration);
      57              : };
      58              : 
      59              : }  // namespace CurvedScalarWave::Worldtube
        

Generated by: LCOV version 2.0-1