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