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 : #include "PointwiseFunctions/MathFunctions/Gaussian.hpp"
9 : #include "PointwiseFunctions/MathFunctions/PowX.hpp"
10 : #include "PointwiseFunctions/MathFunctions/Sinusoid.hpp"
11 : #include "Utilities/TMPL.hpp"
12 :
13 1 : namespace MathFunctions {
14 : namespace Factory_detail {
15 : template <size_t VolumeDim, typename Fr>
16 : struct all_math_functions {
17 : using type = tmpl::list<MathFunctions::Gaussian<VolumeDim, Fr>>;
18 : };
19 :
20 : template <typename Fr>
21 : struct all_math_functions<1, Fr> {
22 : using type =
23 : tmpl::list<MathFunctions::Gaussian<1, Fr>, MathFunctions::PowX<1, Fr>,
24 : MathFunctions::Sinusoid<1, Fr>>;
25 : };
26 : } // namespace Factory_detail
27 :
28 : template <size_t VolumeDim, typename Fr>
29 0 : using all_math_functions =
30 : typename Factory_detail::all_math_functions<VolumeDim, Fr>::type;
31 : } // namespace MathFunctions
|