SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/Punctures - AdmIntegrals.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 30.0 % 10 3
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/DataVector.hpp"
       9              : #include "DataStructures/Tensor/Tensor.hpp"
      10              : #include "Elliptic/Systems/Punctures/Tags.hpp"
      11              : #include "Utilities/Gsl.hpp"
      12              : #include "Utilities/TMPL.hpp"
      13              : 
      14              : namespace Punctures {
      15              : 
      16              : /// @{
      17              : /*!
      18              :  * \brief The volume integrand for the ADM mass $M_\mathrm{ADM}$
      19              :  *
      20              :  * The ADM mass for Punctures is (Eq. (12.56) in \cite BaumgarteShapiro)
      21              :  *
      22              :  * \begin{equation}
      23              :  * M_\mathrm{ADM} = \sum_I M_I + \frac{1}{2\pi} \int
      24              :  *   \beta \left(\alpha \left(1 + u\right) + 1\right)^{-7}
      25              :  * \end{equation}
      26              :  *
      27              :  * \see Punctures
      28              :  */
      29            1 : void adm_mass_integrand(const gsl::not_null<Scalar<DataVector>*> result,
      30              :                         const Scalar<DataVector>& field,
      31              :                         const Scalar<DataVector>& alpha,
      32              :                         const Scalar<DataVector>& beta);
      33              : 
      34            1 : Scalar<DataVector> adm_mass_integrand(const Scalar<DataVector>& field,
      35              :                                       const Scalar<DataVector>& alpha,
      36              :                                       const Scalar<DataVector>& beta);
      37              : /// @}
      38              : 
      39              : namespace Tags {
      40              : 
      41              : /// @{
      42            0 : struct AdmMassIntegrand : db::SimpleTag {
      43            0 :   using type = Scalar<DataVector>;
      44              : };
      45              : 
      46              : /*!
      47              :  * \brief The volume integrand for the ADM mass $M_\mathrm{ADM}$
      48              :  *
      49              :  * \see adm_mass_integrand
      50              :  */
      51            1 : struct AdmMassIntegrandCompute : AdmMassIntegrand, db::ComputeTag {
      52            0 :   using base = AdmMassIntegrand;
      53            0 :   using argument_tags = tmpl::list<Field, Alpha, Beta>;
      54            0 :   using return_type = Scalar<DataVector>;
      55            0 :   static constexpr auto function =
      56              :       static_cast<void (*)(gsl::not_null<Scalar<DataVector>*>,
      57              :                            const Scalar<DataVector>&, const Scalar<DataVector>&,
      58              :                            const Scalar<DataVector>&)>(&adm_mass_integrand);
      59              : };
      60              : /// @}
      61              : 
      62              : }  // namespace Tags
      63              : }  // namespace Punctures
        

Generated by: LCOV version 2.0-1