SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/Systems/SelfForce/Scalar - Tags.hpp Hit Total Coverage
Commit: 6c07040310c093b5fbed1dd2b7e9a5199069d22a Lines: 8 16 50.0 %
Date: 2025-11-12 14:32: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 "DataStructures/DataBox/Tag.hpp"
       7             : #include "DataStructures/Tensor/TypeAliases.hpp"
       8             : 
       9             : /// \cond
      10             : class ComplexDataVector;
      11             : class DataVector;
      12             : /// \endcond
      13             : 
      14             : /*!
      15             :  * \ingroup EllipticSystemsGroup
      16             :  * \brief Items related to solving the self force of a scalar charge on a Kerr
      17             :  * background.
      18             :  *
      19             :  * \see ScalarSelfForce::FirstOrderSystem
      20             :  */
      21             : namespace ScalarSelfForce {}
      22             : 
      23             : /// Tags for the ScalarSelfForce system.
      24           1 : namespace ScalarSelfForce::Tags {
      25             : 
      26             : /*!
      27             :  * \brief The complex m-mode field $\Psi_m$.
      28             :  *
      29             :  * Defined by the m-mode decomposition of the complex scalar field $\Phi$
      30             :  * [Eq. (2.6) in \cite Osburn:2022bby ]:
      31             :  *
      32             :  * \begin{equation}
      33             :  * \Phi(t,r,\theta,\phi) = \frac{1}{r} \sum_{m=-\infty}^{\infty}
      34             :  *   \Psi_m(r,\theta) e^{im\Delta\phi(r)} e^{im(\phi - \Omega t)}
      35             :  * \end{equation}
      36             :  *
      37             :  * where $\Delta\phi(r) = \frac{a}{r_\plus - r_\minus}
      38             :  * \ln(\frac{r-r_\plus}{r-r_\minus})$.
      39             :  */
      40           1 : struct MMode : db::SimpleTag {
      41           0 :   using type = Scalar<ComplexDataVector>;
      42             : };
      43             : 
      44             : /*!
      45             :  * \brief The factor multiplying the angular derivative in the principal part of
      46             :  * the equations.
      47             :  *
      48             :  * This is the factor $\alpha$ that defines the principal part of the equations
      49             :  * and allows to write it in first-order flux form given by
      50             :  * \begin{equation}
      51             :  * -\partial_i F^i + \beta \Psi_m + \gamma_i F^i = S_m
      52             :  * \end{equation}
      53             :  * with the flux
      54             :  * \begin{equation}
      55             :  * F^i = \{\partial_{r_\star}, \alpha \partial_{\cos\theta}\} \Psi_m
      56             :  * \text{.}
      57             :  * \end{equation}
      58             :  * This factor is set by the analytic data class (see
      59             :  * `ScalarSelfForce::AnalyticData::CircularOrbit`).
      60             :  */
      61           1 : struct Alpha : db::SimpleTag {
      62           0 :   using type = Scalar<ComplexDataVector>;
      63             : };
      64             : 
      65             : /*!
      66             :  * \brief The factor multiplying the non-derivative terms in the equations.
      67             :  *
      68             :  * This is the factor $\beta$ in the general form of the equations
      69             :  * \begin{equation}
      70             :  * -\partial_i F^i + \beta \Psi_m + \gamma_i F^i = S_m
      71             :  * \text{.}
      72             :  * \end{equation}
      73             :  * This factor is set by the analytic data class (see
      74             :  * `ScalarSelfForce::AnalyticData::CircularOrbit`).
      75             :  */
      76           1 : struct Beta : db::SimpleTag {
      77           0 :   using type = Scalar<ComplexDataVector>;
      78             : };
      79             : 
      80             : /*!
      81             :  * \brief The factor multiplying the first-derivative terms in the equations.
      82             :  *
      83             :  * This is the factor $\gamma_i$ in the general form of the equations
      84             :  * \begin{equation}
      85             :  * -\partial_i F^i + \beta \Psi_m + \gamma_i F^i = S_m
      86             :  * \text{.}
      87             :  * \end{equation}
      88             :  * This factor is set by the analytic data class (see
      89             :  * `ScalarSelfForce::AnalyticData::CircularOrbit`).
      90             :  */
      91           1 : struct Gamma : db::SimpleTag {
      92           0 :   using type = tnsr::i<ComplexDataVector, 2>;
      93             : };
      94             : 
      95             : /*!
      96             :  * \brief A flag indicating that we are solving for the regularized field in
      97             :  * this element.
      98             :  *
      99             :  * In elements at and around the scalar point charge we use the effective source
     100             :  * approach to split the m-mode field into a singular and a regular field
     101             :  * [Eq. (3.6) in \cite Osburn:2022bby ]:
     102             :  * \begin{equation}
     103             :  * \Psi_m = \Psi_m^\mathcal{P} + \Psi_m^\mathcal{R}
     104             :  * \text{.}
     105             :  * \end{equation}
     106             :  * In these elements, we solve for $\Psi_m^\mathcal{R}$ rather than $\Psi_m$.
     107             :  */
     108           1 : struct FieldIsRegularized : db::SimpleTag {
     109           0 :   using type = bool;
     110             : };
     111             : 
     112             : /*!
     113             :  * \brief The singular field $\Psi_m^\mathcal{P}$.
     114             :  *
     115             :  * Only defined where `FieldIsRegularized` is true.
     116             :  */
     117           1 : struct SingularField : db::SimpleTag {
     118           0 :   using type = Scalar<ComplexDataVector>;
     119             : };
     120             : 
     121             : /*!
     122             :  * \brief The Boyer-Lindquist radius $r$.
     123             :  *
     124             :  * Computed numerically from the tortoise radial coordinate $r_\star$
     125             :  * [see Eq. (2.12) in \cite Osburn:2022bby ].
     126             :  */
     127           1 : struct BoyerLindquistRadius : db::SimpleTag {
     128           0 :   using type = Scalar<DataVector>;
     129             : };
     130             : 
     131             : }  // namespace ScalarSelfForce::Tags

Generated by: LCOV version 1.14