Factory.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
11 #include "Utilities/TMPL.hpp"
12 
13 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>,
25 };
26 } // namespace Factory_detail
27 
28 template <size_t VolumeDim, typename Fr>
29 using all_math_functions =
30  typename Factory_detail::all_math_functions<VolumeDim, Fr>::type;
31 } // namespace MathFunctions
PowX.hpp
MathFunctions
Definition: Factory.hpp:13
cstddef
Sinusoid.hpp
MathFunctions::PowX< 1, Fr >
Power of X .
Definition: PowX.hpp:29
Gaussian.hpp
MathFunctions::Sinusoid< 1, Fr >
Sinusoid .
Definition: Sinusoid.hpp:31
TMPL.hpp