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