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
|