Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "Evolution/Systems/GeneralizedHarmonic/BoundaryCorrections/Factory.hpp"
7 : #include "Evolution/Systems/GrMhd/GhValenciaDivClean/BoundaryCorrections/ProductOfCorrections.hpp"
8 : #include "Evolution/Systems/GrMhd/ValenciaDivClean/BoundaryCorrections/Factory.hpp"
9 : #include "Utilities/Literals.hpp"
10 : #include "Utilities/TMPL.hpp"
11 :
12 1 : namespace grmhd::GhValenciaDivClean::BoundaryCorrections {
13 : namespace detail {
14 : template <typename GhList, typename ValenciaList>
15 : struct AllProductCorrections;
16 :
17 : template <typename GhList, typename... ValenciaCorrections>
18 : struct AllProductCorrections<GhList, tmpl::list<ValenciaCorrections...>> {
19 : using type = tmpl::flatten<tmpl::list<
20 : tmpl::transform<GhList, tmpl::bind<ProductOfCorrections, tmpl::_1,
21 : tmpl::pin<ValenciaCorrections>>>...>>;
22 : };
23 : } // namespace detail
24 :
25 0 : using standard_boundary_corrections = typename detail::AllProductCorrections<
26 : typename gh::BoundaryCorrections::standard_boundary_corrections<3_st>,
27 : typename grmhd::ValenciaDivClean::BoundaryCorrections::
28 : standard_boundary_corrections>::type;
29 : } // namespace grmhd::GhValenciaDivClean::BoundaryCorrections
|