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
|