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 : /// \cond 9 : namespace Options { 10 : class Option; 11 : template <typename T> 12 : struct create_from_yaml; 13 : } // namespace Options 14 : /// \endcond 15 : 16 : namespace domain::CoordinateMaps { 17 : 18 : /*! 19 : * \brief Distribution of grid points in one dimension 20 : * 21 : * Used to select a distribution of grid points in the input file. 22 : * 23 : * \see domain::CoordinateMaps::Wedge 24 : */ 25 0 : enum class Distribution { 26 : Linear, 27 : Equiangular, 28 : Logarithmic, 29 : Inverse, 30 : Projective 31 : }; 32 : 33 0 : std::ostream& operator<<(std::ostream& os, Distribution distribution); 34 : 35 : } // namespace domain::CoordinateMaps 36 : 37 : template <> 38 0 : struct Options::create_from_yaml<domain::CoordinateMaps::Distribution> { 39 : template <typename Metavariables> 40 0 : static domain::CoordinateMaps::Distribution create( 41 : const Options::Option& options) { 42 : return create<void>(options); 43 : } 44 : }; 45 : template <> 46 0 : domain::CoordinateMaps::Distribution 47 : Options::create_from_yaml<domain::CoordinateMaps::Distribution>::create<void>( 48 : const Options::Option& options);