XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
label.hpp
Go to the documentation of this file.
1 #ifndef LABEL_HPP
2 #define LABEL_HPP
3 
4 /* List of fields
5  */
6 enum class Label{
7  E,
8  dpot,
9  E00,
10  ddpotdt,
11  dAh,
12  Ah,
13  dAs,
14  As,
15  Ah_cv,
16  Epar_em,
17  E_gyro,
18  dAh_gyro,
19  Ah_gyro,
20  dAs_gyro,
21  As_gyro,
23  dEr_B2,
24  dEz_B2,
25  du2_E_rho,
27 };
28 
29 /* Compile-time function to use 2D vector if field-following planes are not used (i.e. XGCa) */
30 //template<PhiInterpType PIT> constexpr VarType vec_type();
31 //template<> constexpr VarType vec_type<PhiInterpType::Planes>(){return VarType::Vector;}
32 //template<> constexpr VarType vec_type<PhiInterpType::None>(){return VarType::Vector2D;}
33 
34 
35 /* Simple struct tracking the compile-time VarType and PhiInterpType values for a field */
36 //template<PhiInterpType PIT, VarType VT> struct FieldProperties{
37 // static constexpr auto var_type = VT;
38 // static constexpr auto phi_interp_type = PIT;
39 //};
40 
41 //template <typename ...FNs> struct FieldList{};
42 
43 template<typename T, Label FN>
44 struct Labeled{
45  using var_type = T;
46  static constexpr Label name = FN;
48 };
49 
50 #endif
T var_type
Definition: label.hpp:45
static constexpr Label name
Definition: label.hpp:46
Definition: label.hpp:44
Label
Definition: label.hpp:6
var_type v
Definition: label.hpp:47