Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <iosfwd> 7 : 8 : #include "Options/Options.hpp" 9 : 10 : namespace hydro { 11 : /// \brief Used to specify how to handle the magnetic field. 12 1 : enum MagneticFieldTreatment { 13 : /// Assume the magnetic field is zero 14 : AssumeZero, 15 : /// Check if the magnetic field is zero 16 : CheckIfZero, 17 : /// Assume the magnetic field is non-zero 18 : AssumeNonZero 19 : }; 20 : 21 0 : std::ostream& operator<<(std::ostream& os, MagneticFieldTreatment t); 22 : } // namespace hydro 23 : 24 : /// \cond 25 : template <> 26 : struct Options::create_from_yaml<hydro::MagneticFieldTreatment> { 27 : using type = hydro::MagneticFieldTreatment; 28 : template <typename Metavariables> 29 : static type create(const Options::Option& options) { 30 : return create<void>(options); 31 : } 32 : }; 33 : 34 : template <> 35 : hydro::MagneticFieldTreatment 36 : Options::create_from_yaml<hydro::MagneticFieldTreatment>::create<void>( 37 : const Options::Option& options); 38 : /// \endcond