Line data Source code
1 1 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : /// \file
5 : /// Defines enum class amr::Isotropy.
6 :
7 : #pragma once
8 :
9 : #include <iosfwd>
10 :
11 : /// \cond
12 : namespace Options {
13 : class Option;
14 : template <typename T>
15 : struct create_from_yaml;
16 : } // namespace Options
17 : /// \endcond
18 :
19 : namespace amr {
20 :
21 : /// \ingroup AmrGroup
22 : /// \brief Isotropy of adaptive mesh refinement
23 1 : enum class Isotropy {
24 : Anisotropic, /**< each dimension can be refined independently */
25 : Isotropic /**< all dimensions must be refined the same */
26 : };
27 :
28 : /// Output operator for isotropy.
29 1 : std::ostream& operator<<(std::ostream& os, const Isotropy& isotropy);
30 : } // namespace amr
31 :
32 : template <>
33 0 : struct Options::create_from_yaml<amr::Isotropy> {
34 : template <typename Metavariables>
35 0 : static amr::Isotropy create(const Options::Option& options) {
36 : return create<void>(options);
37 : }
38 : };
39 :
40 : template <>
41 0 : amr::Isotropy Options::create_from_yaml<amr::Isotropy>::create<void>(
42 : const Options::Option& options);
|