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 ylm {
17 : /*!
18 : * \brief Label for the ordering of spherical harmonic points on a sphere
19 : *
20 : * \details `%Strahlkorper` refers to points on a sphere ordered by SPHEREPACK
21 : * because `Strahlkorper`s hold YlmSpherePacks internally. `%Cce` refers to
22 : * points on a sphere ordered by Libsharp because Cce uses Libsharp internally.
23 : */
24 0 : enum class AngularOrdering { Strahlkorper, Cce };
25 0 : std::ostream& operator<<(std::ostream& os, AngularOrdering ordering);
26 : } // namespace ylm
27 :
28 : template <>
29 0 : struct Options::create_from_yaml<ylm::AngularOrdering> {
30 : template <typename Metavariables>
31 0 : static ylm::AngularOrdering create(const Options::Option& options) {
32 : return create<void>(options);
33 : }
34 : };
35 :
36 : template <>
37 0 : ylm::AngularOrdering
38 : Options::create_from_yaml<ylm::AngularOrdering>::create<void>(
39 : const Options::Option& options);
|