Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "PointwiseFunctions/AnalyticSolutions/WaveEquation/PlaneWave.hpp"
7 : #include "PointwiseFunctions/AnalyticSolutions/WaveEquation/RegularSphericalWave.hpp"
8 : #include "PointwiseFunctions/AnalyticSolutions/WaveEquation/SecondOrderWrapper.hpp"
9 : #include "PointwiseFunctions/AnalyticSolutions/WaveEquation/SemidiscretizedDg.hpp"
10 : #include "PointwiseFunctions/AnalyticSolutions/WaveEquation/StandingWave.hpp"
11 : #include "Utilities/TMPL.hpp"
12 :
13 1 : namespace ScalarWave::Solutions {
14 : /// \brief List of all analytic solutions
15 : template <size_t Dim>
16 1 : using all_solutions = tmpl::append<
17 : tmpl::list<PlaneWave<Dim>, StandingWave<Dim>>,
18 : tmpl::conditional_t<Dim == 1, tmpl::list<SemidiscretizedDg>, tmpl::list<>>,
19 : tmpl::conditional_t<Dim == 3, tmpl::list<RegularSphericalWave>,
20 : tmpl::list<>>>;
21 : } // namespace ScalarWave::Solutions
22 :
23 1 : namespace SecondOrderScalarWave::Solutions {
24 : /// \brief List of all analytic solutions for the second-order in space scalar
25 : /// wave system
26 : template <size_t Dim>
27 1 : using all_solutions =
28 : tmpl::list<SecondOrderWrapper<ScalarWave::Solutions::PlaneWave<Dim>>,
29 : SecondOrderWrapper<ScalarWave::Solutions::StandingWave<Dim>>>;
30 : } // namespace SecondOrderScalarWave::Solutions
|