SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/Cce/Actions - Psi0Matching.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 20.0 % 5 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              : #include <tuple>
       8              : #include <utility>
       9              : 
      10              : #include "DataStructures/DataBox/DataBox.hpp"
      11              : #include "Evolution/Systems/Cce/NewmanPenrose.hpp"
      12              : #include "Evolution/Systems/Cce/PreSwshDerivatives.hpp"
      13              : 
      14              : namespace Cce {
      15              : namespace Actions {
      16              : 
      17              : /*!
      18              :  * \ingroup ActionsGroup
      19              :  * \brief Calculate \f$\Psi_0\f$ and its radial derivative
      20              :  * \f$\partial_\underline{\lambda}\Psi_0\f$ at the inner boundary of
      21              :  * the CCE grid.
      22              :  *
      23              :  * \details This action is to be called after `Tags::BondiJ` has been updated.
      24              :  * Note that `Tags::BondiJ` is in the asymptotically inertial frame, while the
      25              :  * returned \f$\Psi_0\f$ and its radial derivative are in the Cauchy frame.
      26              :  * \f$\underline \lambda\f$ is an affine parameter along the null
      27              :  * rays generated by \f$l\f$, see Eq. (19a) of \cite Moxon2020gha.
      28              :  */
      29            1 : struct CalculatePsi0AndDerivAtInnerBoundary {
      30            0 :   using const_global_cache_tags = tmpl::list<Tags::LMax>;
      31            0 :   using mutators =
      32              :       tmpl::list<TransformBondiJToCauchyCoords,
      33              :                  PreSwshDerivatives<Tags::Dy<Tags::BondiJCauchyView>>,
      34              :                  PreSwshDerivatives<Tags::Dy<Tags::Dy<Tags::BondiJCauchyView>>>,
      35              :                  VolumeWeyl<Tags::Psi0Match>,
      36              :                  PreSwshDerivatives<Tags::Dy<Tags::Psi0Match>>,
      37              :                  InnerBoundaryWeyl>;
      38              : 
      39              :   template <typename DbTags, typename... InboxTags, typename Metavariables,
      40              :             typename ArrayIndex, typename ActionList,
      41              :             typename ParallelComponent>
      42            0 :   static Parallel::iterable_action_return_t apply(
      43              :       db::DataBox<DbTags>& box,
      44              :       const tuples::TaggedTuple<InboxTags...>& /*inboxes*/,
      45              :       const Parallel::GlobalCache<Metavariables>& /*cache*/,
      46              :       const ArrayIndex& /*array_index*/, const ActionList /*meta*/,
      47              :       const ParallelComponent* const /*meta*/) {
      48              :     tmpl::for_each<mutators>([&box](auto mutator_v) {
      49              :       using mutator = typename decltype(mutator_v)::type;
      50              :       db::mutate_apply<mutator>(make_not_null(&box));
      51              :     });
      52              :     return {Parallel::AlgorithmExecution::Continue, std::nullopt};
      53              :   }
      54              : };
      55              : }  // namespace Actions
      56              : }  // namespace Cce
        

Generated by: LCOV version 2.0-1