SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/Systems/SelfForce/GeneralRelativity - FirstOrderSystem.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 9.1 % 11 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              : 
       8              : #include "DataStructures/DataBox/Prefixes.hpp"
       9              : #include "Elliptic/BoundaryConditions/BoundaryCondition.hpp"
      10              : #include "Elliptic/Protocols/FirstOrderSystem.hpp"
      11              : #include "Elliptic/Systems/SelfForce/GeneralRelativity/Equations.hpp"
      12              : #include "Elliptic/Systems/SelfForce/GeneralRelativity/Tags.hpp"
      13              : #include "Utilities/ProtocolHelpers.hpp"
      14              : #include "Utilities/TMPL.hpp"
      15              : 
      16              : namespace GrSelfForce {
      17              : 
      18              : /*!
      19              :  * \brief Gravitational self-force of a small gravitating body in a Kerr
      20              :  * background.
      21              :  *
      22              :  * Extension of the `ScalarSelfForce::FirstOrderSystem` to the gravitational
      23              :  * case. We solve a 2D elliptic equation for the 10 independent components of
      24              :  * the symmetric m-mode field $(\Psi_m)_{ab}$. The two dimensions are a
      25              :  * radial and angular coordinate, specifically the tortoise radius $r_\star$ and
      26              :  * polar angle $\theta$. We parametrize the 2D elliptic equations as:
      27              :  * \begin{equation}
      28              :  * -\Delta_m (\Psi_m)_{ab} = -\partial_i F^i_{ab} + \beta_{ab}^{cd}
      29              :  *   (\Psi_m)_{cd} + \gamma_{iab}^{cd} F^i_{cd} = 0
      30              :  * \end{equation}
      31              :  * with the flux
      32              :  * \begin{equation}
      33              :  * F^i_{ab} = \{\partial_{r_\star}, \alpha \partial_\theta\} (\Psi_m)_{ab}
      34              :  * \text{,}
      35              :  * \end{equation}
      36              :  * where $\alpha$, $\beta_{ab}^{cd}$, and $\gamma_{iab}^{cd}$ are coefficients
      37              :  * that define the elliptic equations. The particular coefficients for a
      38              :  * circular equatorial orbit in Kerr are implemented in
      39              :  * `GrSelfForce::AnalyticData::CircularOrbit`.
      40              :  *
      41              :  * See `ScalarSelfForce::FirstOrderSystem` for a description of the
      42              :  * regularization and modified boundary data.
      43              :  *
      44              :  * Once the 2D elliptic equations are solved for a given m-mode, the
      45              :  * contribution to the self-force can be extracted from the gradient of
      46              :  * $(\Psi_m)_{ab}$ at the location of the small body. These self-force
      47              :  * contributions are then summed over all m-modes up to some cutoff. The
      48              :  * resulting self-force can be used to drive a quasi-adiabatic inspiral to
      49              :  * generate waveforms. For details and more references see \cite Osburn:2022bby
      50              :  * for now (more references will be added when they are published).
      51              :  */
      52            1 : struct FirstOrderSystem
      53              :     : tt::ConformsTo<elliptic::protocols::FirstOrderSystem> {
      54            0 :   static constexpr size_t volume_dim = 2;
      55              : 
      56            0 :   using primal_fields = tmpl::list<Tags::MMode>;
      57            0 :   using primal_fluxes =
      58              :       tmpl::list<::Tags::Flux<Tags::MMode, tmpl::size_t<2>, Frame::Inertial>>;
      59              : 
      60            0 :   using background_fields =
      61              :       tmpl::list<Tags::Alpha, Tags::Beta, Tags::GammaRstar, Tags::GammaTheta>;
      62            0 :   using inv_metric_tag = void;
      63              : 
      64            0 :   using fluxes_computer = Fluxes;
      65            0 :   using sources_computer = Sources;
      66            0 :   using modify_boundary_data = ModifyBoundaryData;
      67              : 
      68            0 :   using boundary_conditions_base =
      69              :       elliptic::BoundaryConditions::BoundaryCondition<2>;
      70              : };
      71              : 
      72              : }  // namespace GrSelfForce
        

Generated by: LCOV version 2.0-1