39 assert(propagation >= 0);
41 switch (propagation) {
54 case TRANS_LANGEVIN_NPT:
57#ifdef ESPRESSO_VIRTUAL_SITES_CENTER_OF_MASS
58 case TRANS_VS_CENTER_OF_MASS:
61#ifdef ESPRESSO_ROTATION
69 case TRANS_LB_MOMENTUM_EXCHANGE:
71#ifdef ESPRESSO_VIRTUAL_SITES_INERTIALESS_TRACERS
75#ifdef ESPRESSO_ROTATION
77 case TRANS_NEWTON | ROT_EULER:
79 case TRANS_LANGEVIN | ROT_LANGEVIN:
81 case TRANS_BROWNIAN | ROT_BROWNIAN:
83#ifdef ESPRESSO_STOKESIAN_DYNAMICS
84 case TRANS_STOKESIAN | ROT_STOKESIAN:
88 case TRANS_LB_MOMENTUM_EXCHANGE | ROT_EULER:
90 case TRANS_LB_MOMENTUM_EXCHANGE | ROT_LANGEVIN:
92#ifdef ESPRESSO_VIRTUAL_SITES_RELATIVE
93 case TRANS_VS_RELATIVE | ROT_VS_RELATIVE:
95 case TRANS_VS_RELATIVE | ROT_VS_INDEPENDENT:
97 case TRANS_VS_RELATIVE | ROT_VS_RELATIVE | TRANS_LB_MOMENTUM_EXCHANGE:
99 case TRANS_VS_RELATIVE | ROT_VS_RELATIVE | TRANS_LANGEVIN | ROT_LANGEVIN:
101 case TRANS_VS_RELATIVE | ROT_VS_RELATIVE | TRANS_LB_MOMENTUM_EXCHANGE |
112 std::unordered_map<std::string, int> enum_values{};
113 enum_values[
"NONE"] =
NONE;
114 enum_values[
"SYSTEM_DEFAULT"] = SYSTEM_DEFAULT;
115 enum_values[
"TRANS_NEWTON"] = TRANS_NEWTON;
116 enum_values[
"TRANS_LANGEVIN"] = TRANS_LANGEVIN;
117 enum_values[
"TRANS_LANGEVIN_NPT"] = TRANS_LANGEVIN_NPT;
118 enum_values[
"TRANS_VS_RELATIVE"] = TRANS_VS_RELATIVE;
119 enum_values[
"TRANS_LB_MOMENTUM_EXCHANGE"] = TRANS_LB_MOMENTUM_EXCHANGE;
120 enum_values[
"TRANS_LB_TRACER"] = TRANS_LB_TRACER;
121 enum_values[
"TRANS_BROWNIAN"] = TRANS_BROWNIAN;
122 enum_values[
"TRANS_STOKESIAN"] = TRANS_STOKESIAN;
123 enum_values[
"TRANS_VS_CENTER_OF_MASS"] = TRANS_VS_CENTER_OF_MASS;
124 enum_values[
"ROT_EULER"] = ROT_EULER;
125 enum_values[
"ROT_LANGEVIN"] = ROT_LANGEVIN;
126 enum_values[
"ROT_VS_RELATIVE"] = ROT_VS_RELATIVE;
127 enum_values[
"ROT_VS_INDEPENDENT"] = ROT_VS_INDEPENDENT;
128 enum_values[
"ROT_BROWNIAN"] = ROT_BROWNIAN;
129 enum_values[
"ROT_STOKESIAN"] = ROT_STOKESIAN;