SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/ScalarWave - Initialize.hpp Hit Total Coverage
Commit: 37c384043430860f87787999aa7399d01bb3d213 Lines: 1 6 16.7 %
Date: 2024-04-20 02:24:02
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 <optional>
       7             : 
       8             : #include "DataStructures/DataBox/DataBox.hpp"
       9             : #include "DataStructures/Tensor/EagerMath/Norms.hpp"
      10             : #include "DataStructures/Variables.hpp"
      11             : #include "Evolution/Systems/ScalarWave/Constraints.hpp"
      12             : #include "Evolution/Systems/ScalarWave/System.hpp"
      13             : #include "Evolution/Systems/ScalarWave/Tags.hpp"
      14             : #include "NumericalAlgorithms/LinearOperators/PartialDerivatives.hpp"
      15             : #include "Parallel/AlgorithmExecution.hpp"
      16             : #include "Parallel/GlobalCache.hpp"
      17             : #include "ParallelAlgorithms/Initialization/MutateAssign.hpp"
      18             : #include "Utilities/ErrorHandling/Assert.hpp"
      19             : 
      20             : namespace ScalarWave {
      21           0 : namespace Actions {
      22             : /// \ingroup InitializationGroup
      23             : /// \brief Initialize items related to constraints of the ScalarWave system
      24             : ///
      25             : /// We add both constraints and the constraint damping parameter to the
      26             : /// evolution databox.
      27             : ///
      28             : /// DataBox changes:
      29             : /// - Adds:
      30             : ///   * `ScalarWave::Tags::ConstraintGamma2`
      31             : /// - Removes: nothing
      32             : /// - Modifies: nothing
      33             : template <size_t Dim>
      34           1 : struct InitializeConstraints {
      35           0 :   using simple_tags = tmpl::list<ScalarWave::Tags::ConstraintGamma2>;
      36             : 
      37           0 :   using compute_tags = tmpl::list<>;
      38             : 
      39             :   template <typename DbTagsList, typename... InboxTags, typename Metavariables,
      40             :             typename ArrayIndex, typename ActionList,
      41             :             typename ParallelComponent>
      42           0 :   static Parallel::iterable_action_return_t apply(
      43             :       db::DataBox<DbTagsList>& 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             :     const auto& mesh = db::get<domain::Tags::Mesh<Dim>>(box);
      49             :     Scalar<DataVector> gamma_2{mesh.number_of_grid_points(), 0.};
      50             : 
      51             :     Initialization::mutate_assign<simple_tags>(make_not_null(&box),
      52             :                                                std::move(gamma_2));
      53             : 
      54             :     return {Parallel::AlgorithmExecution::Continue, std::nullopt};
      55             :   }
      56             : };
      57             : }  // namespace Actions
      58             : }  // namespace ScalarWave

Generated by: LCOV version 1.14