Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <ostream>
7 :
8 1 : namespace Options {
9 : class Option;
10 : template <typename T>
11 : struct create_from_yaml;
12 : } // namespace Options
13 :
14 : namespace Limiters {
15 : /// \ingroup LimitersGroup
16 : /// \brief Possible types of the minmod slope limiter and/or troubled-cell
17 : /// indicator.
18 : ///
19 : /// \see Limiters::Minmod for a description and reference.
20 0 : enum class MinmodType { LambdaPi1, LambdaPiN, Muscl };
21 :
22 0 : std::ostream& operator<<(std::ostream& os, Limiters::MinmodType minmod_type);
23 : } // namespace Limiters
24 :
25 : template <>
26 0 : struct Options::create_from_yaml<Limiters::MinmodType> {
27 : template <typename Metavariables>
28 0 : static Limiters::MinmodType create(const Options::Option& options) {
29 : return create<void>(options);
30 : }
31 : };
32 : template <>
33 0 : Limiters::MinmodType
34 : Options::create_from_yaml<Limiters::MinmodType>::create<void>(
35 : const Options::Option& options);
|