SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/DiscontinuousGalerkin/Actions - InitializeDomain.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              : #include <optional>
       8              : #include <tuple>
       9              : #include <utility>
      10              : 
      11              : #include "DataStructures/DataBox/DataBox.hpp"
      12              : #include "Domain/Creators/Tags/Domain.hpp"
      13              : #include "Domain/Creators/Tags/FunctionsOfTime.hpp"
      14              : #include "Domain/Creators/Tags/InitialExtents.hpp"
      15              : #include "Domain/Creators/Tags/InitialRefinementLevels.hpp"
      16              : #include "Elliptic/DiscontinuousGalerkin/Initialization.hpp"
      17              : #include "Elliptic/DiscontinuousGalerkin/Tags.hpp"
      18              : #include "Parallel/AlgorithmExecution.hpp"
      19              : #include "Utilities/Gsl.hpp"
      20              : #include "Utilities/TMPL.hpp"
      21              : 
      22              : /// \cond
      23              : namespace Parallel {
      24              : template <typename Metavariables>
      25              : struct GlobalCache;
      26              : }  // namespace Parallel
      27              : namespace tuples {
      28              : template <typename... Tags>
      29              : struct TaggedTuple;
      30              : }  // namespace tuples
      31              : template <size_t VolumeDim>
      32              : class ElementId;
      33              : /// \endcond
      34              : 
      35              : namespace elliptic::dg::Actions {
      36              : /*!
      37              :  * \ingroup InitializationGroup
      38              :  * \brief Initialize items related to the basic structure of the element
      39              :  *
      40              :  * DataBox:
      41              :  * - Uses:
      42              :  *   - `domain::Tags::Domain<Dim, Frame::Inertial>`
      43              :  *   - `domain::Tags::InitialExtents<Dim>`
      44              :  *   - `domain::Tags::InitialRefinementLevels<Dim>`
      45              :  *   - `domain::Tags::FunctionsOfTime` (Parameters for maps that distort the
      46              :  *     domain. These are always evaluated at t=0.)
      47              :  * - Adds:
      48              :  *   - `domain::Tags::Mesh<Dim>`
      49              :  *   - `domain::Tags::Element<Dim>`
      50              :  *   - `domain::Tags::ElementMap<Dim, Frame::Inertial>`
      51              :  *   - `domain::Tags::Coordinates<Dim, Frame::ElementLogical>`
      52              :  *   - `domain::Tags::Coordinates<Dim, Frame::Inertial>`
      53              :  *   - `domain::Tags::InverseJacobian<Dim, Frame::ElementLogical,
      54              :  *      Frame::Inertial>`
      55              :  *   - `domain::Tags::DetInvJacobian<Frame::ElementLogical, Frame::Inertial>`
      56              :  */
      57              : template <size_t Dim>
      58            1 : struct InitializeDomain {
      59              :  private:
      60            0 :   using InitializeGeometry = elliptic::dg::InitializeGeometry<Dim>;
      61              : 
      62              :  public:
      63            0 :   using simple_tags_from_options =
      64              :       tmpl::list<domain::Tags::InitialExtents<Dim>,
      65              :                  domain::Tags::InitialRefinementLevels<Dim>>;
      66            0 :   using simple_tags = typename InitializeGeometry::return_tags;
      67            0 :   using compute_tags = tmpl::list<>;
      68            0 :   using const_global_cache_tags =
      69              :       tmpl::list<domain::Tags::FunctionsOfTimeInitialize,
      70              :                  elliptic::dg::Tags::Quadrature>;
      71              : 
      72              :   template <typename DbTagsList, typename... InboxTags, typename Metavariables,
      73              :             typename ActionList, typename ParallelComponent>
      74            0 :   static Parallel::iterable_action_return_t apply(
      75              :       db::DataBox<DbTagsList>& box,
      76              :       const tuples::TaggedTuple<InboxTags...>& /*inboxes*/,
      77              :       const Parallel::GlobalCache<Metavariables>& /*cache*/,
      78              :       const ElementId<Dim>& element_id, const ActionList /*meta*/,
      79              :       const ParallelComponent* const /*meta*/) {
      80              :     db::mutate_apply<InitializeGeometry>(make_not_null(&box), element_id);
      81              :     return {Parallel::AlgorithmExecution::Continue, std::nullopt};
      82              :   }
      83              : };
      84              : }  // namespace elliptic::dg::Actions
        

Generated by: LCOV version 2.0-1