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/CurvedScalarWave/BoundaryCorrections/Factory.hpp"
7 : #include "Evolution/Systems/GeneralizedHarmonic/BoundaryCorrections/Factory.hpp"
8 : #include "Evolution/Systems/ScalarTensor/BoundaryCorrections/ProductOfCorrections.hpp"
9 : #include "Utilities/TMPL.hpp"
10 :
11 1 : namespace ScalarTensor::BoundaryCorrections {
12 : namespace detail {
13 : template <typename GhList, typename ScalarList>
14 : struct AllProductCorrections;
15 :
16 : template <typename GhList, typename... ScalarCorrections>
17 : struct AllProductCorrections<GhList, tmpl::list<ScalarCorrections...>> {
18 : using type = tmpl::flatten<tmpl::list<
19 : tmpl::transform<GhList, tmpl::bind<ProductOfCorrections, tmpl::_1,
20 : tmpl::pin<ScalarCorrections>>>...>>;
21 : };
22 : } // namespace detail
23 :
24 0 : using standard_boundary_corrections = typename detail::AllProductCorrections<
25 : typename gh::BoundaryCorrections::standard_boundary_corrections<3>,
26 : typename CurvedScalarWave::BoundaryCorrections::
27 : standard_boundary_corrections<3>>::type;
28 : } // namespace ScalarTensor::BoundaryCorrections
|