@@ -68,70 +68,5 @@ class Fanourgakis : public EnergyImplementation<Fanourgakis> {
6868#endif
6969};
7070
71- #ifdef NLOHMANN_JSON_HPP
72- inline std::shared_ptr<SchemeBase> createScheme (const nlohmann::json &j) {
73- const std::map<std::string, Scheme> m = {{" plain" , Scheme::plain},
74- {" qpotential" , Scheme::qpotential},
75- {" wolf" , Scheme::wolf},
76- {" poisson" , Scheme::poisson},
77- {" reactionfield" , Scheme::reactionfield},
78- {" spline" , Scheme::spline},
79- {" fanourgakis" , Scheme::fanourgakis},
80- {" fennell" , Scheme::fennell},
81- {" zahn" , Scheme::zahn},
82- {" zerodipole" , Scheme::zerodipole},
83- {" ewald" , Scheme::ewald},
84- {" ewaldt" , Scheme::ewaldt}}; // map string keyword to scheme type
85-
86- std::string name = j.at (" type" ).get <std::string>();
87- auto it = m.find (name);
88- if (it == m.end ()) {
89- throw std::runtime_error (" unknown coulomb scheme " + name);
90- }
91-
92- std::shared_ptr<SchemeBase> scheme;
93- switch (it->second ) {
94- case Scheme::plain:
95- scheme = std::make_shared<Plain>(j);
96- break ;
97- case Scheme::wolf:
98- scheme = std::make_shared<Wolf>(j);
99- break ;
100- case Scheme::zahn:
101- scheme = std::make_shared<Zahn>(j);
102- break ;
103- case Scheme::fennell:
104- scheme = std::make_shared<Fennell>(j);
105- break ;
106- case Scheme::zerodipole:
107- scheme = std::make_shared<ZeroDipole>(j);
108- break ;
109- case Scheme::fanourgakis:
110- scheme = std::make_shared<Fanourgakis>(j);
111- break ;
112- case Scheme::qpotential5:
113- scheme = std::make_shared<qPotentialFixedOrder<5 >>(j);
114- break ;
115- case Scheme::qpotential:
116- scheme = std::make_shared<qPotential>(j);
117- break ;
118- case Scheme::ewald:
119- scheme = std::make_shared<Ewald>(j);
120- break ;
121- case Scheme::ewaldt:
122- scheme = std::make_shared<EwaldTruncated>(j);
123- break ;
124- case Scheme::poisson:
125- scheme = std::make_shared<Poisson>(j);
126- break ;
127- case Scheme::reactionfield:
128- scheme = std::make_shared<ReactionField>(j);
129- break ;
130- default :
131- break ;
132- }
133- return scheme;
134- }
135- #endif
13671
13772} // namespace CoulombGalore
0 commit comments