SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/Cce - KleinGordonSystem.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 12.5 % 8 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/VariablesTag.hpp"
       9              : #include "Evolution/Systems/Cce/Tags.hpp"
      10              : #include "Utilities/TMPL.hpp"
      11              : 
      12              : namespace Cce {
      13              : 
      14              : /*!
      15              :  * \brief Performing Cauchy characteristic evolution and Cauchy characteristic
      16              :  * matching for Einstein-Klein-Gordon system.
      17              :  *
      18              :  * \details The code adopts the characteristic formulation to solve the field
      19              :  * equations for scalar-tensor theory as considered in \cite Ma2023sok. Working
      20              :  * in the Einstein frame, a real-valued scalar field \f$\psi\f$ is minimally
      21              :  * coupled with the spacetime metric \f$g_{\mu\nu}\f$. The corresponding action
      22              :  * is expressed as follows:
      23              :  *
      24              :  * \f[
      25              :  * S = \int d^4x \sqrt{-g} \left(\frac{R}{16 \pi}  - \frac{1}{2} \nabla_\mu \psi
      26              :  * \nabla^\mu \psi\right).
      27              :  * \f]
      28              :  *
      29              :  * The system consists of two sectors: scalar and tensor (metric). The scalar
      30              :  * field follows the Klein-Gordon (KG) equation
      31              :  *
      32              :  * \f[
      33              :  * \Box \psi = 0.
      34              :  * \f]
      35              :  *
      36              :  * Its characteristic expression is given in \cite Barreto2004fn, yielding
      37              :  * the hypersurface equation for \f$\partial_u\psi=\Pi\f$, where
      38              :  * \f$\partial_u\f$ represents differentiation with respect to retarded time $u$
      39              :  * at fixed numerical radius \f$y\f$. The code first integrates the KG equation
      40              :  * radially to determine \f$\Pi\f$. Subsequently, the time integration is
      41              :  * performed to evolve the scalar field \f$\psi\f$ forward in time.
      42              :  *
      43              :  * The tensor (metric) sector closely aligns with the current GR CCE system,
      44              :  * incorporating additional source terms that depend only on the scalar field
      45              :  * \f$\psi\f$ and its spatial derivatives, rather than its time derivative
      46              :  * \f$(\Pi)\f$. This feature preserves the hierarchical structure of the
      47              :  * equations. As a result, the Einstein-Klein-Gordon system can be divided into
      48              :  * three major sequential steps:
      49              :  *  - Integrate the metric hypersurface equations with the existing
      50              :  *    infrastructure
      51              :  *  - Integrate the KG equation for \f$\Pi\f$
      52              :  *  - Evolve two variables, \f$\psi\f$ (scalar) and \f$J\f$ (tensor) to the next
      53              :  *    time step
      54              :  *
      55              :  */
      56              : template <bool EvolveCcm>
      57            1 : struct KleinGordonSystem {
      58            0 :   static constexpr bool evolve_ccm = EvolveCcm;
      59            0 :   static constexpr size_t volume_dim = 3;
      60              : 
      61            0 :   using evolved_swsh_tag =
      62              :       ::Tags::Variables<tmpl::list<Tags::BondiJ, Tags::KleinGordonPsi>>;
      63            0 :   using evolved_coordinates_variables_tag = ::Tags::Variables<
      64              :       tmpl::conditional_t<EvolveCcm,
      65              :                           tmpl::list<Cce::Tags::CauchyCartesianCoords,
      66              :                                      Cce::Tags::PartiallyFlatCartesianCoords,
      67              :                                      Cce::Tags::InertialRetardedTime>,
      68              :                           tmpl::list<Cce::Tags::CauchyCartesianCoords,
      69              :                                      Cce::Tags::InertialRetardedTime>>>;
      70              : 
      71            0 :   using variables_tag =
      72              :       tmpl::list<evolved_swsh_tag, evolved_coordinates_variables_tag>;
      73              : 
      74            0 :   static constexpr bool has_primitive_and_conservative_vars = false;
      75              : };
      76              : }  // namespace Cce
        

Generated by: LCOV version 2.0-1