SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/Cce - KleinGordonSystem.hpp Hit Total Coverage
Commit: 8f6d7ed2ad592dd78354983fd8e5ec2be7abb468 Lines: 1 5 20.0 %
Date: 2024-05-02 15:57:06
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 size_t volume_dim = 3;
      59           0 :   using variables_tag = tmpl::list<
      60             :       ::Tags::Variables<tmpl::list<Tags::BondiJ, Tags::KleinGordonPsi>>,
      61             :       ::Tags::Variables<tmpl::conditional_t<
      62             :           EvolveCcm,
      63             :           tmpl::list<Cce::Tags::CauchyCartesianCoords,
      64             :                      Cce::Tags::PartiallyFlatCartesianCoords,
      65             :                      Cce::Tags::InertialRetardedTime>,
      66             :           tmpl::list<Cce::Tags::CauchyCartesianCoords,
      67             :                      Cce::Tags::InertialRetardedTime>>>>;
      68             : 
      69           0 :   static constexpr bool has_primitive_and_conservative_vars = false;
      70             : };
      71             : } // namespace Cce

Generated by: LCOV version 1.14