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 : /// \cond 9 : namespace db { 10 : class Access; 11 : } // namespace db 12 : namespace gsl { 13 : template <class T> 14 : class not_null; 15 : } // namespace gsl 16 : /// \endcond 17 : 18 : namespace evolution::dg::subcell { 19 : /*! 20 : * \brief Invoked in directions where the neighbor is doing subcell, this 21 : * function computes the neighbor data on the mortar via reconstruction on 22 : * nearest neighbor subcells. 23 : * 24 : * A list of all the directions that are doing subcell is created and then 25 : * passed to the mutator 26 : * `Metavariables::SubcellOptions::DgComputeSubcellNeighborPackagedData::apply`, 27 : * which must return a 28 : * 29 : * \code 30 : * DirectionalIdMap<volume_dim, DataVector> 31 : * \endcode 32 : * 33 : * which holds the reconstructed `dg_packaged_data` on the face (stored in the 34 : * `DataVector`) for the boundary correction. A 35 : * `std::vector<DirectionalId<volume_dim>>` 36 : * holding the list of mortars that need to be reconstructed to is passed in as 37 : * the last argument to 38 : * `Metavariables::SubcellOptions::DgComputeSubcellNeighborPackagedData::apply`. 39 : */ 40 : template <size_t VolumeDim, typename DgComputeSubcellNeighborPackagedData> 41 1 : void neighbor_reconstructed_face_solution(gsl::not_null<db::Access*> box); 42 : } // namespace evolution::dg::subcell