SpECTRE Documentation Coverage Report
Current view: top level - Evolution/DgSubcell - NeighborReconstructedFaceSolution.hpp Hit Total Coverage
Commit: 1f2210958b4f38fdc0400907ee7c6d5af5111418 Lines: 1 2 50.0 %
Date: 2025-12-05 05:03:31
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/Access.hpp"
      12             : #include "DataStructures/DataVector.hpp"
      13             : #include "Domain/Structure/DirectionalIdMap.hpp"
      14             : #include "Evolution/DiscontinuousGalerkin/BoundaryData.hpp"
      15             : #include "NumericalAlgorithms/Spectral/Mesh.hpp"
      16             : #include "Time/TimeStepId.hpp"
      17             : #include "Utilities/Gsl.hpp"
      18             : 
      19             : namespace evolution::dg::subcell {
      20             : /*!
      21             :  * \brief Invoked in directions where the neighbor is doing subcell, this
      22             :  * function computes the neighbor data on the mortar via reconstruction on
      23             :  * nearest neighbor subcells.
      24             :  *
      25             :  *
      26             :  * The data needed for reconstruction is copied over into
      27             :  * `subcell::Tags::GhostDataForReconstruction`.
      28             :  * Additionally, the max/min of the evolved variables from neighboring elements
      29             :  * that is used for the relaxed discrete maximum principle troubled-cell
      30             :  * indicator is combined with the data from the local element and stored in
      31             :  * `subcell::Tags::DataForRdmpTci`. We handle the RDMP
      32             :  * data now because it is sent in the same buffer as the data for
      33             :  * reconstruction.
      34             :  *
      35             :  * A list of all the directions that are doing subcell is created and then
      36             :  * passed to the mutator
      37             :  * `Metavariables::SubcellOptions::DgComputeSubcellNeighborPackagedData::apply`,
      38             :  * which must return a
      39             :  *
      40             :  * \code
      41             :  *  DirectionalIdMap<volume_dim, DataVector>
      42             :  * \endcode
      43             :  *
      44             :  * which holds the reconstructed `dg_packaged_data` on the face (stored in the
      45             :  * `DataVector`) for the boundary correction. A
      46             :  * `std::vector<DirectionalId<volume_dim>>`
      47             :  * holding the list of mortars that need to be reconstructed to is passed in as
      48             :  * the last argument to
      49             :  * `Metavariables::SubcellOptions::DgComputeSubcellNeighborPackagedData::apply`.
      50             :  */
      51             : template <size_t VolumeDim, typename DgComputeSubcellNeighborPackagedData>
      52           1 : void neighbor_reconstructed_face_solution(
      53             :     gsl::not_null<db::Access*> box,
      54             :     gsl::not_null<std::pair<
      55             :         TimeStepId,
      56             :         DirectionalIdMap<VolumeDim, evolution::dg::BoundaryData<VolumeDim>>>*>
      57             :         received_temporal_id_and_data);
      58             : }  // namespace evolution::dg::subcell

Generated by: LCOV version 1.14