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);