KIDS  ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
Loading...
Searching...
No Matches
opendf_test.cpp
Go to the documentation of this file.
1
2#include <pybind11/complex.h>
3#include <pybind11/eigen.h>
4#include <pybind11/embed.h>
5#include <pybind11/numpy.h>
6#include <pybind11/pybind11.h>
7#include <pybind11/stl.h>
8
9#include "../models/bath/bath.h"
10#include "../models/bo_forcefield/liquidne_model.h"
11#include "../models/bo_forcefield/md1d_models.h"
12#include "../models/bo_forcefield/sctest_models.h"
13#include "../models/bo_forcefield/smallmol_models.h"
14#include "../models/bo_forcefield/water_models.h"
15#include "../models/forcefieldbase.h"
16#include "../models/interface/interf_gausstddft.h"
17#include "../models/interface/interf_mndo99mrci.h"
18#include "../models/model.h"
19#include "../models/nad_forcefield/ZnPc.h"
20#include "../models/nad_forcefield/atomced.h"
21#include "../models/nad_forcefield/lvcm_model.h"
22#include "../models/nad_forcefield/manysite_models.h"
23#include "../models/nad_forcefield/nad1d_models.h"
24#include "../models/nad_forcefield/pyrincavity_models.h"
25#include "../models/nad_forcefield/scatter1d_models.h"
26#include "../models/nad_forcefield/spectrum_nadmodels.h"
27#include "../models/nad_forcefield/systembath.h"
28#include "../models/py_interface/interf_pythonff.h"
29#include "../models/thermostat/thermostat.h"
30#include "../solvers/solver.h"
31#include "../solvers/solvers_PI/cmd_solver.h"
32#include "../solvers/solvers_PI/pild_solver.h"
33#include "../solvers/solvers_el/basis_set.h"
34#include "../solvers/solvers_el/simple_integral_gto.h"
35#include "../solvers/solvers_el/solver_scf.h"
36#include "../solvers/solvers_md/mbpimd_solver.h"
37#include "../solvers/solvers_md/mespimd_solver.h"
38#include "../solvers/solvers_md/pimd_solver.h"
39#include "../solvers/solvers_md/pimdpara_solver.h"
40#include "../solvers/solvers_md/ppimd_solver.h"
41#include "../solvers/solvers_md/traj.h"
42#include "../solvers/solvers_nad/multi_nadtraj.h"
43#include "../solvers/solvers_nad/nadtcfer.h"
44#include "../solvers/solvers_nad/nadtraj.h"
45#include "../solvers/solvers_nad/solver_cmm.h"
46#include "../solvers/solvers_nad/solver_lsc.h"
47#include "../solvers/solvers_nad/solver_mmd.h"
48#include "../solvers/solvers_nad/solver_pmm.h"
49#include "../solvers/solvers_nad/solver_prodmps.h"
50#include "../solvers/solvers_nad/solver_qcpi.h"
51#include "../solvers/solvers_nad/solver_sh.h"
52#include "../solvers/solvers_nad/solver_smm.h"
53#include "../solvers/solvers_nad/solver_sqc.h"
54#include "../solvers/solvers_nad/solver_wmm.h"
55#include "../solvers/solvers_rd/solver_heom.h"
56#include "../solvers/solvers_rd/solver_redfield.h"
57#include "../solvers/solvers_rd/solver_sse.h"
58#include "../utils/definitions.h"
59
60namespace py = pybind11;
61
62// clang-format off
63PYBIND11_MODULE(libopendf, m) {
64
65 #include "opendf_phys.bind"
66
67 py::module models_m = m.def_submodule("models");
68 py::module solvers_m = m.def_submodule("solvers");
69
70
71
72 class PyTrampoline_Model : public Model {
73 public:
74 using Model::Model;
75 };
76
77 py::class_<Model, PyTrampoline_Model>(models_m, "Model", py::dynamic_attr())
78 .def(py::init<const Param&>())
79 .def(py::init<const std::string&>())
80 .def_readwrite("tag", &Model::tag)
81 .def("ref_workr", &Model::ref_workr, py::return_value_policy::reference_internal)
82 .def("ref_workc", &Model::ref_workc, py::return_value_policy::reference_internal);
83
84 class PyTrampoline_ForceField : public ForceField {
85 public:
86 using ForceField::ForceField;
87 };
88
89 py::class_<ForceField, Model, PyTrampoline_ForceField>(models_m, "ForceField", py::dynamic_attr())
90 .def(py::init<const Param&>())
91 .def(py::init<const std::string&>())
92 .def_readwrite("type", &ForceField::type);
93
94 class PyTrampoline_BO_ForceField : public BO_ForceField {
95 public:
96 using BO_ForceField::BO_ForceField;
97
98 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
99 PYBIND11_OVERRIDE(
100 int, // return type
101 BO_ForceField, // parent class
102 ForceField_init, // func name
103 nr, np, nm, rdim, itraj
104 );
105 }
106
107 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
108 PYBIND11_OVERRIDE(
109 int, // return type
110 BO_ForceField, // parent class
111 ForceField_spec, // func name
112 nr, np, nm, rdim
113 );
114 }
115
116 int nspec() override {
117 PYBIND11_OVERRIDE(
118 int, // return type
119 BO_ForceField, // parent class
120 nspec, // func name
121
122 );
123 }
124
125 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
126 const int& rdim) override {
127 PYBIND11_OVERRIDE(
128 int, // return type
129 BO_ForceField, // parent class
130 ForceField_npes, // func name
131 V, dV, ddV, R, P, flag, rdim
132 );
133 }
134
135 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
136 const int& rdim, const int& itraj, const int& isamp) override {
137 PYBIND11_OVERRIDE(
138 int, // return type
139 BO_ForceField, // parent class
140 ForceField_npes, // func name
141 V, dV, ddV, R, P, flag, rdim, itraj, isamp
142 );
143 }
144
145 int CheckForceField() override {
146 PYBIND11_OVERRIDE(
147 int, // return type
148 BO_ForceField, // parent class
149 CheckForceField, // func name
150
151 );
152 }
153
154 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
155 const int& itraj, const int& isamp) override {
156 PYBIND11_OVERRIDE(
157 int, // return type
158 BO_ForceField, // parent class
159 ForceField_write, // func name
160 ofs0, nr, np, nm, rdim, itraj, isamp
161 );
162 }
163 };
164
165 py::class_<BO_ForceField, ForceField, PyTrampoline_BO_ForceField>(models_m, "BO_ForceField", py::dynamic_attr())
166 .def(py::init<const Param&>())
167 .def(py::init<const std::string&>())
168 .def("ref_mod_M", &BO_ForceField::ref_mod_M, py::return_value_policy::reference_internal)
169 .def("ref_mod_W", &BO_ForceField::ref_mod_W, py::return_value_policy::reference_internal)
170 .def("ref_mod_R0", &BO_ForceField::ref_mod_R0, py::return_value_policy::reference_internal)
171 .def("ref_mod_P0", &BO_ForceField::ref_mod_P0, py::return_value_policy::reference_internal)
172 .def("ref_mod_sigmaR", &BO_ForceField::ref_mod_sigmaR, py::return_value_policy::reference_internal)
173 .def("ref_mod_sigmaP", &BO_ForceField::ref_mod_sigmaP, py::return_value_policy::reference_internal)
174 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
175 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
176 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
177 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
178 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
179 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
180 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
181 const int& rdim,
182 const int& itraj) {
183 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
184 }
185 )
186 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
187 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
188 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
189 const int& rdim) {
190 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
191 }
192 )
193 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
194 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
195 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
196 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
197 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
198 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
199 const int& flag,
200 const int& rdim) {
201 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
202 }
203 )
204 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
205 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
206 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
207 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
208 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
209 const int& flag,
210 const int& rdim,
211 const int& itraj,
212 const int& isamp) {
213 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
214 }
215 )
216 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
217 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
218 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
219 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
220 const int& rdim,
221 const int& itraj) {
222 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
223 }
224 )
225 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
226 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
227 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
228 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
229 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
230 const int& rdim,
231 const int& itraj,
232 const int& isamp) {
233 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
234 }
235 );
236
237 class PyTrampoline_Water_ForceField : public Water_ForceField {
238 public:
239 using Water_ForceField::Water_ForceField;
240
241 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& icycle) override {
242 PYBIND11_OVERRIDE(
243 int, // return type
244 Water_ForceField, // parent class
245 ForceField_init, // func name
246 nr, np, nm, rdim, icycle
247 );
248 }
249
250 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
251 PYBIND11_OVERRIDE(
252 int, // return type
253 Water_ForceField, // parent class
254 ForceField_spec, // func name
255 nr, np, nm, rdim
256 );
257 }
258
259 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
260 const int& rdim) override {
261 PYBIND11_OVERRIDE(
262 int, // return type
263 Water_ForceField, // parent class
264 ForceField_npes, // func name
265 V, dV, ddV, R, P, flag, rdim
266 );
267 }
268
269 int nspec() override {
270 PYBIND11_OVERRIDE(
271 int, // return type
272 BO_ForceField, // parent class
273 nspec, // func name
274
275 );
276 }
277
278 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
279 const int& rdim, const int& itraj, const int& isamp) override {
280 PYBIND11_OVERRIDE(
281 int, // return type
282 BO_ForceField, // parent class
283 ForceField_npes, // func name
284 V, dV, ddV, R, P, flag, rdim, itraj, isamp
285 );
286 }
287
288 int CheckForceField() override {
289 PYBIND11_OVERRIDE(
290 int, // return type
291 BO_ForceField, // parent class
292 CheckForceField, // func name
293
294 );
295 }
296
297 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
298 const int& itraj, const int& isamp) override {
299 PYBIND11_OVERRIDE(
300 int, // return type
301 BO_ForceField, // parent class
302 ForceField_write, // func name
303 ofs0, nr, np, nm, rdim, itraj, isamp
304 );
305 }
306 };
307
308 py::class_<Water_ForceField, BO_ForceField, PyTrampoline_Water_ForceField>(models_m, "Water_ForceField", py::dynamic_attr())
309 .def(py::init<const Param&>())
310 .def(py::init<const std::string&>())
311 .def("ref_charge_arr", &Water_ForceField::ref_charge_arr, py::return_value_policy::reference_internal)
312 .def("ref_pbox", &Water_ForceField::ref_pbox, py::return_value_policy::reference_internal)
313 .def_static("name", &Water_ForceField::name)
314 .def("ForceField_init", [](Water_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
315 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
316 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
317 const int& rdim,
318 const int& icycle) {
319 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, icycle);
320 }
321 )
322 .def("ForceField_spec", [](Water_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
323 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
324 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
325 const int& rdim) {
326 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
327 }
328 )
329 .def("ForceField_npes", [](Water_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
330 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
331 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
332 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
333 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
334 const int& flag,
335 const int& rdim) {
336 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
337 }
338 )
339 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
340 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
341 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
342 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
343 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
344 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
345 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
346 const int& rdim,
347 const int& itraj) {
348 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
349 }
350 )
351 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
352 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
353 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
354 const int& rdim) {
355 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
356 }
357 )
358 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
359 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
360 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
361 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
362 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
363 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
364 const int& flag,
365 const int& rdim) {
366 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
367 }
368 )
369 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
370 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
371 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
372 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
373 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
374 const int& flag,
375 const int& rdim,
376 const int& itraj,
377 const int& isamp) {
378 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
379 }
380 )
381 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
382 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
383 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
384 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
385 const int& rdim,
386 const int& itraj) {
387 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
388 }
389 )
390 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
391 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
392 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
393 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
394 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
395 const int& rdim,
396 const int& itraj,
397 const int& isamp) {
398 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
399 }
400 );
401
402 class PyTrampoline_SmallMol_ForceField : public SmallMol_ForceField {
403 public:
404 using SmallMol_ForceField::SmallMol_ForceField;
405
406 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& icycle) override {
407 PYBIND11_OVERRIDE(
408 int, // return type
409 SmallMol_ForceField, // parent class
410 ForceField_init, // func name
411 nr, np, nm, rdim, icycle
412 );
413 }
414
415 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
416 PYBIND11_OVERRIDE(
417 int, // return type
418 SmallMol_ForceField, // parent class
419 ForceField_spec, // func name
420 nr, np, nm, rdim
421 );
422 }
423
424 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
425 const int& rdim) override {
426 PYBIND11_OVERRIDE(
427 int, // return type
428 SmallMol_ForceField, // parent class
429 ForceField_npes, // func name
430 V, dV, ddV, R, P, flag, rdim
431 );
432 }
433
434 int nspec() override {
435 PYBIND11_OVERRIDE(
436 int, // return type
437 BO_ForceField, // parent class
438 nspec, // func name
439
440 );
441 }
442
443 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
444 const int& rdim, const int& itraj, const int& isamp) override {
445 PYBIND11_OVERRIDE(
446 int, // return type
447 BO_ForceField, // parent class
448 ForceField_npes, // func name
449 V, dV, ddV, R, P, flag, rdim, itraj, isamp
450 );
451 }
452
453 int CheckForceField() override {
454 PYBIND11_OVERRIDE(
455 int, // return type
456 BO_ForceField, // parent class
457 CheckForceField, // func name
458
459 );
460 }
461
462 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
463 const int& itraj, const int& isamp) override {
464 PYBIND11_OVERRIDE(
465 int, // return type
466 BO_ForceField, // parent class
467 ForceField_write, // func name
468 ofs0, nr, np, nm, rdim, itraj, isamp
469 );
470 }
471 };
472
473 py::class_<SmallMol_ForceField, BO_ForceField, PyTrampoline_SmallMol_ForceField>(models_m, "SmallMol_ForceField", py::dynamic_attr())
474 .def(py::init<const Param&>())
475 .def(py::init<const std::string&>())
476 .def_static("name", &SmallMol_ForceField::name)
477 .def("ForceField_init", [](SmallMol_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
478 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
479 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
480 const int& rdim,
481 const int& icycle) {
482 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, icycle);
483 }
484 )
485 .def("ForceField_spec", [](SmallMol_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
486 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
487 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
488 const int& rdim) {
489 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
490 }
491 )
492 .def("ForceField_npes", [](SmallMol_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
493 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
494 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
495 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
496 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
497 const int& flag,
498 const int& rdim) {
499 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
500 }
501 )
502 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
503 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
504 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
505 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
506 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
507 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
508 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
509 const int& rdim,
510 const int& itraj) {
511 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
512 }
513 )
514 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
515 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
516 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
517 const int& rdim) {
518 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
519 }
520 )
521 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
522 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
523 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
524 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
525 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
526 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
527 const int& flag,
528 const int& rdim) {
529 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
530 }
531 )
532 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
533 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
534 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
535 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
536 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
537 const int& flag,
538 const int& rdim,
539 const int& itraj,
540 const int& isamp) {
541 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
542 }
543 )
544 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
545 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
546 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
547 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
548 const int& rdim,
549 const int& itraj) {
550 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
551 }
552 )
553 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
554 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
555 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
556 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
557 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
558 const int& rdim,
559 const int& itraj,
560 const int& isamp) {
561 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
562 }
563 );
564
565 class PyTrampoline_SCTEST_ForceField : public SCTEST_ForceField {
566 public:
567 using SCTEST_ForceField::SCTEST_ForceField;
568
569 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& icycle) override {
570 PYBIND11_OVERRIDE(
571 int, // return type
572 SCTEST_ForceField, // parent class
573 ForceField_init, // func name
574 nr, np, nm, rdim, icycle
575 );
576 }
577
578 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
579 PYBIND11_OVERRIDE(
580 int, // return type
581 SCTEST_ForceField, // parent class
582 ForceField_spec, // func name
583 nr, np, nm, rdim
584 );
585 }
586
587 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
588 const int& rdim) override {
589 PYBIND11_OVERRIDE(
590 int, // return type
591 SCTEST_ForceField, // parent class
592 ForceField_npes, // func name
593 V, dV, ddV, R, P, flag, rdim
594 );
595 }
596
597 int nspec() override {
598 PYBIND11_OVERRIDE(
599 int, // return type
600 BO_ForceField, // parent class
601 nspec, // func name
602
603 );
604 }
605
606 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
607 const int& rdim, const int& itraj, const int& isamp) override {
608 PYBIND11_OVERRIDE(
609 int, // return type
610 BO_ForceField, // parent class
611 ForceField_npes, // func name
612 V, dV, ddV, R, P, flag, rdim, itraj, isamp
613 );
614 }
615
616 int CheckForceField() override {
617 PYBIND11_OVERRIDE(
618 int, // return type
619 BO_ForceField, // parent class
620 CheckForceField, // func name
621
622 );
623 }
624
625 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
626 const int& itraj, const int& isamp) override {
627 PYBIND11_OVERRIDE(
628 int, // return type
629 BO_ForceField, // parent class
630 ForceField_write, // func name
631 ofs0, nr, np, nm, rdim, itraj, isamp
632 );
633 }
634 };
635
636 py::class_<SCTEST_ForceField, BO_ForceField, PyTrampoline_SCTEST_ForceField>(models_m, "SCTEST_ForceField", py::dynamic_attr())
637 .def(py::init<const Param&>())
638 .def(py::init<const std::string&>())
639 .def_static("name", &SCTEST_ForceField::name)
640 .def("ForceField_init", [](SCTEST_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
641 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
642 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
643 const int& rdim,
644 const int& icycle) {
645 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, icycle);
646 }
647 )
648 .def("ForceField_spec", [](SCTEST_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
649 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
650 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
651 const int& rdim) {
652 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
653 }
654 )
655 .def("ForceField_npes", [](SCTEST_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
656 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
657 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
658 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
659 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
660 const int& flag,
661 const int& rdim) {
662 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
663 }
664 )
665 .def("ForceField_npes_SC1D", [](SCTEST_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
666 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
667 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
668 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
669 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
670 const int& flag,
671 const int& rdim) {
672 return self.ForceField_npes_SC1D(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
673 }
674 )
675 .def("ForceField_npes_SC2D", [](SCTEST_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
676 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
677 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
678 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
679 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
680 const int& flag,
681 const int& rdim) {
682 return self.ForceField_npes_SC2D(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
683 }
684 )
685 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
686 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
687 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
688 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
689 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
690 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
691 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
692 const int& rdim,
693 const int& itraj) {
694 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
695 }
696 )
697 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
698 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
699 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
700 const int& rdim) {
701 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
702 }
703 )
704 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
705 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
706 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
707 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
708 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
709 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
710 const int& flag,
711 const int& rdim) {
712 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
713 }
714 )
715 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
716 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
717 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
718 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
719 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
720 const int& flag,
721 const int& rdim,
722 const int& itraj,
723 const int& isamp) {
724 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
725 }
726 )
727 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
728 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
729 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
730 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
731 const int& rdim,
732 const int& itraj) {
733 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
734 }
735 )
736 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
737 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
738 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
739 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
740 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
741 const int& rdim,
742 const int& itraj,
743 const int& isamp) {
744 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
745 }
746 );
747
748 class PyTrampoline_LiquidNe_ForceField : public LiquidNe_ForceField {
749 public:
750 using LiquidNe_ForceField::LiquidNe_ForceField;
751
752 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& icycle) override {
753 PYBIND11_OVERRIDE(
754 int, // return type
755 LiquidNe_ForceField, // parent class
756 ForceField_init, // func name
757 nr, np, nm, rdim, icycle
758 );
759 }
760
761 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
762 PYBIND11_OVERRIDE(
763 int, // return type
764 LiquidNe_ForceField, // parent class
765 ForceField_spec, // func name
766 nr, np, nm, rdim
767 );
768 }
769
770 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
771 const int& rdim) override {
772 PYBIND11_OVERRIDE(
773 int, // return type
774 LiquidNe_ForceField, // parent class
775 ForceField_npes, // func name
776 V, dV, ddV, R, P, flag, rdim
777 );
778 }
779
780 int nspec() override {
781 PYBIND11_OVERRIDE(
782 int, // return type
783 BO_ForceField, // parent class
784 nspec, // func name
785
786 );
787 }
788
789 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
790 const int& rdim, const int& itraj, const int& isamp) override {
791 PYBIND11_OVERRIDE(
792 int, // return type
793 BO_ForceField, // parent class
794 ForceField_npes, // func name
795 V, dV, ddV, R, P, flag, rdim, itraj, isamp
796 );
797 }
798
799 int CheckForceField() override {
800 PYBIND11_OVERRIDE(
801 int, // return type
802 BO_ForceField, // parent class
803 CheckForceField, // func name
804
805 );
806 }
807
808 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
809 const int& itraj, const int& isamp) override {
810 PYBIND11_OVERRIDE(
811 int, // return type
812 BO_ForceField, // parent class
813 ForceField_write, // func name
814 ofs0, nr, np, nm, rdim, itraj, isamp
815 );
816 }
817 };
818
819 py::class_<LiquidNe_ForceField, BO_ForceField, PyTrampoline_LiquidNe_ForceField>(models_m, "LiquidNe_ForceField", py::dynamic_attr())
820 .def(py::init<const Param&>())
821 .def_static("name", &LiquidNe_ForceField::name)
822 .def("ForceField_init", [](LiquidNe_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
823 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
824 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
825 const int& rdim,
826 const int& icycle) {
827 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, icycle);
828 }
829 )
830 .def("ForceField_spec", [](LiquidNe_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
831 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
832 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
833 const int& rdim) {
834 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
835 }
836 )
837 .def("ForceField_npes", [](LiquidNe_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
838 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
839 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
840 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
841 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
842 const int& flag,
843 const int& rdim) {
844 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
845 }
846 )
847 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
848 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
849 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
850 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
851 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
852 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
853 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
854 const int& rdim,
855 const int& itraj) {
856 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
857 }
858 )
859 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
860 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
861 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
862 const int& rdim) {
863 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
864 }
865 )
866 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
867 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
868 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
869 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
870 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
871 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
872 const int& flag,
873 const int& rdim) {
874 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
875 }
876 )
877 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
878 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
879 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
880 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
881 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
882 const int& flag,
883 const int& rdim,
884 const int& itraj,
885 const int& isamp) {
886 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
887 }
888 )
889 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
890 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
891 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
892 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
893 const int& rdim,
894 const int& itraj) {
895 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
896 }
897 )
898 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
899 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
900 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
901 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
902 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
903 const int& rdim,
904 const int& itraj,
905 const int& isamp) {
906 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
907 }
908 );
909
910 class PyTrampoline_MD1D_ForceField : public MD1D_ForceField {
911 public:
912 using MD1D_ForceField::MD1D_ForceField;
913
914 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& icycle) override {
915 PYBIND11_OVERRIDE(
916 int, // return type
917 MD1D_ForceField, // parent class
918 ForceField_init, // func name
919 nr, np, nm, rdim, icycle
920 );
921 }
922
923 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
924 PYBIND11_OVERRIDE(
925 int, // return type
926 MD1D_ForceField, // parent class
927 ForceField_spec, // func name
928 nr, np, nm, rdim
929 );
930 }
931
932 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
933 const int& rdim) override {
934 PYBIND11_OVERRIDE(
935 int, // return type
936 MD1D_ForceField, // parent class
937 ForceField_npes, // func name
938 V, dV, ddV, R, P, flag, rdim
939 );
940 }
941
942 int nspec() override {
943 PYBIND11_OVERRIDE(
944 int, // return type
945 BO_ForceField, // parent class
946 nspec, // func name
947
948 );
949 }
950
951 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
952 const int& rdim, const int& itraj, const int& isamp) override {
953 PYBIND11_OVERRIDE(
954 int, // return type
955 BO_ForceField, // parent class
956 ForceField_npes, // func name
957 V, dV, ddV, R, P, flag, rdim, itraj, isamp
958 );
959 }
960
961 int CheckForceField() override {
962 PYBIND11_OVERRIDE(
963 int, // return type
964 BO_ForceField, // parent class
965 CheckForceField, // func name
966
967 );
968 }
969
970 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
971 const int& itraj, const int& isamp) override {
972 PYBIND11_OVERRIDE(
973 int, // return type
974 BO_ForceField, // parent class
975 ForceField_write, // func name
976 ofs0, nr, np, nm, rdim, itraj, isamp
977 );
978 }
979 };
980
981 py::class_<MD1D_ForceField, BO_ForceField, PyTrampoline_MD1D_ForceField>(models_m, "MD1D_ForceField", py::dynamic_attr())
982 .def(py::init<const Param&, const int&>())
983 .def(py::init<const Param&>())
984 .def(py::init<const std::string&>())
985 .def_static("name", &MD1D_ForceField::name)
986 .def("ForceField_init", [](MD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
987 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
988 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
989 const int& rdim,
990 const int& icycle) {
991 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, icycle);
992 }
993 )
994 .def("ForceField_spec", [](MD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
995 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
996 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
997 const int& rdim) {
998 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
999 }
1000 )
1001 .def("ForceField_npes", [](MD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1002 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1003 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1004 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1005 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1006 const int& flag,
1007 const int& rdim) {
1008 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1009 }
1010 )
1011 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
1012 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
1013 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
1014 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
1015 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1016 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1017 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1018 const int& rdim,
1019 const int& itraj) {
1020 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
1021 }
1022 )
1023 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1024 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1025 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1026 const int& rdim) {
1027 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
1028 }
1029 )
1030 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
1031 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1032 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1033 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1034 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1035 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1036 const int& flag,
1037 const int& rdim) {
1038 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1039 }
1040 )
1041 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1042 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1043 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1044 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1045 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1046 const int& flag,
1047 const int& rdim,
1048 const int& itraj,
1049 const int& isamp) {
1050 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
1051 }
1052 )
1053 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
1054 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1055 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1056 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1057 const int& rdim,
1058 const int& itraj) {
1059 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
1060 }
1061 )
1062 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
1063 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
1064 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1065 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1066 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1067 const int& rdim,
1068 const int& itraj,
1069 const int& isamp) {
1070 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
1071 }
1072 );
1073
1074 class PyTrampoline_Nad_ForceField : public Nad_ForceField {
1075 public:
1076 using Nad_ForceField::Nad_ForceField;
1077
1078 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
1079 PYBIND11_OVERRIDE(
1080 int, // return type
1081 Nad_ForceField, // parent class
1082 ForceField_spec, // func name
1083 nr, np, nm, rdim, fdim
1084 );
1085 }
1086
1087 int nspec() override {
1088 PYBIND11_OVERRIDE(
1089 int, // return type
1090 Nad_ForceField, // parent class
1091 nspec, // func name
1092
1093 );
1094 }
1095
1096 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
1097 const int& rdim) override {
1098 PYBIND11_OVERRIDE(
1099 int, // return type
1100 Nad_ForceField, // parent class
1101 ForceField_npes, // func name
1102 V, dV, ddV, R, P, flag, rdim
1103 );
1104 }
1105
1106 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
1107 const int& rdim, const int& itraj, const int& isamp) override {
1108 PYBIND11_OVERRIDE(
1109 int, // return type
1110 Nad_ForceField, // parent class
1111 ForceField_npes, // func name
1112 V, dV, ddV, R, P, flag, rdim, itraj, isamp
1113 );
1114 }
1115
1116 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
1117 int& eocc, const int& rdim, const int& fdim, const int& itraj) override {
1118 PYBIND11_OVERRIDE(
1119 int, // return type
1120 Nad_ForceField, // parent class
1121 ForceField_init, // func name
1122 nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj
1123 );
1124 }
1125
1126 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
1127 const int& fdim) override {
1128 PYBIND11_OVERRIDE(
1129 int, // return type
1130 Nad_ForceField, // parent class
1131 ForceField_epes, // func name
1132 V, dV, ddV, R, flag, rdim, fdim
1133 );
1134 }
1135
1136 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
1137 const int& fdim, const int& itraj, const int& isamp) override {
1138 PYBIND11_OVERRIDE(
1139 int, // return type
1140 Nad_ForceField, // parent class
1141 ForceField_epes, // func name
1142 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
1143 );
1144 }
1145
1146 int CheckForceField() override {
1147 PYBIND11_OVERRIDE(
1148 int, // return type
1149 Nad_ForceField, // parent class
1150 CheckForceField, // func name
1151
1152 );
1153 }
1154
1155 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
1156 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
1157 const int& itraj, const int& isamp) override {
1158 PYBIND11_OVERRIDE(
1159 int, // return type
1160 Nad_ForceField, // parent class
1161 ForceField_write, // func name
1162 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
1163 );
1164 }
1165
1166 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
1167 PYBIND11_OVERRIDE(
1168 int, // return type
1169 Nad_ForceField, // parent class
1170 reduce_force, // func name
1171 fx, rho, dH, rdim, fdim
1172 );
1173 }
1174
1175 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
1176 PYBIND11_OVERRIDE(
1177 int, // return type
1178 BO_ForceField, // parent class
1179 ForceField_init, // func name
1180 nr, np, nm, rdim, itraj
1181 );
1182 }
1183
1184 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
1185 PYBIND11_OVERRIDE(
1186 int, // return type
1187 BO_ForceField, // parent class
1188 ForceField_spec, // func name
1189 nr, np, nm, rdim
1190 );
1191 }
1192
1193 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
1194 const int& itraj, const int& isamp) override {
1195 PYBIND11_OVERRIDE(
1196 int, // return type
1197 BO_ForceField, // parent class
1198 ForceField_write, // func name
1199 ofs0, nr, np, nm, rdim, itraj, isamp
1200 );
1201 }
1202 };
1203
1204 py::class_<Nad_ForceField, BO_ForceField, PyTrampoline_Nad_ForceField>(models_m, "Nad_ForceField", py::dynamic_attr())
1205 .def(py::init<const Param&>())
1206 .def(py::init<const std::string&>())
1207 .def("ref_mod_eac", &Nad_ForceField::ref_mod_eac, py::return_value_policy::reference_internal)
1208 .def("ref_mod_rho", &Nad_ForceField::ref_mod_rho, py::return_value_policy::reference_internal)
1209 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
1210 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1211 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1212 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1213 const int& rdim,
1214 const int& fdim) {
1215 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
1216 }
1217 )
1218 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
1219 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1220 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1221 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1222 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1223 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1224 const int& flag,
1225 const int& rdim) {
1226 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1227 }
1228 )
1229 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1230 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1231 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1232 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1233 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1234 const int& flag,
1235 const int& rdim,
1236 const int& itraj,
1237 const int& isamp) {
1238 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
1239 }
1240 )
1241 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1242 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1243 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1244 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1245 const int& flag,
1246 const int& rdim,
1247 const int& fdim) {
1248 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
1249 }
1250 )
1251 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1252 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1253 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1254 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1255 const int& flag,
1256 const int& rdim,
1257 const int& fdim,
1258 const int& itraj,
1259 const int& isamp) {
1260 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
1261 }
1262 )
1263 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
1264 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
1265 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
1266 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
1267 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
1268 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1269 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1270 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1271 const int& rdim,
1272 const int& itraj) {
1273 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
1274 }
1275 )
1276 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1277 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1278 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1279 const int& rdim) {
1280 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
1281 }
1282 )
1283 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
1284 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1285 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1286 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1287 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1288 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1289 const int& flag,
1290 const int& rdim) {
1291 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1292 }
1293 )
1294 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1295 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1296 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1297 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1298 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1299 const int& flag,
1300 const int& rdim,
1301 const int& itraj,
1302 const int& isamp) {
1303 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
1304 }
1305 )
1306 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
1307 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1308 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1309 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1310 const int& rdim,
1311 const int& itraj) {
1312 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
1313 }
1314 )
1315 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
1316 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
1317 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1318 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1319 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1320 const int& rdim,
1321 const int& itraj,
1322 const int& isamp) {
1323 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
1324 }
1325 );
1326
1327 class PyTrampoline_SystemBath_ForceField : public SystemBath_ForceField {
1328 public:
1329 using SystemBath_ForceField::SystemBath_ForceField;
1330
1331 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
1332 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
1333 PYBIND11_OVERRIDE(
1334 int, // return type
1335 SystemBath_ForceField, // parent class
1336 ForceField_init, // func name
1337 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
1338 );
1339 }
1340
1341 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
1342 const int& rdim) override {
1343 PYBIND11_OVERRIDE(
1344 int, // return type
1345 SystemBath_ForceField, // parent class
1346 ForceField_npes, // func name
1347 V, dV, ddV, R, P, flag, rdim
1348 );
1349 }
1350
1351 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
1352 const int& fdim, const int& itraj, const int& isamp) override {
1353 PYBIND11_OVERRIDE(
1354 int, // return type
1355 SystemBath_ForceField, // parent class
1356 ForceField_epes, // func name
1357 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
1358 );
1359 }
1360
1361 int ForceField_epes_SpinBoson(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1362 const int& rdim, const int& fdim, const int& itraj, const int& isamp) override {
1363 PYBIND11_OVERRIDE(
1364 int, // return type
1365 SystemBath_ForceField, // parent class
1366 ForceField_epes_SpinBoson, // func name
1367 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
1368 );
1369 }
1370
1371 int ForceField_epes_SiteExciton(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1372 const int& rdim, const int& fdim, const int& itraj, const int& isamp) override {
1373 PYBIND11_OVERRIDE(
1374 int, // return type
1375 SystemBath_ForceField, // parent class
1376 ForceField_epes_SiteExciton, // func name
1377 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
1378 );
1379 }
1380
1381 int ForceField_epes_General(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1382 const int& rdim, const int& fdim, const int& itraj, const int& isamp) override {
1383 PYBIND11_OVERRIDE(
1384 int, // return type
1385 SystemBath_ForceField, // parent class
1386 ForceField_epes_General, // func name
1387 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
1388 );
1389 }
1390
1391 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
1392 PYBIND11_OVERRIDE(
1393 int, // return type
1394 SystemBath_ForceField, // parent class
1395 reduce_force, // func name
1396 fx, rho, dH, rdim, fdim
1397 );
1398 }
1399
1400 int get_nbath() override {
1401 PYBIND11_OVERRIDE(
1402 int, // return type
1403 SystemBath_ForceField, // parent class
1404 get_nbath, // func name
1405
1406 );
1407 }
1408
1409 int get_Nb() override {
1410 PYBIND11_OVERRIDE(
1411 int, // return type
1412 SystemBath_ForceField, // parent class
1413 get_Nb, // func name
1414
1415 );
1416 }
1417
1418 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
1419 PYBIND11_OVERRIDE(
1420 int, // return type
1421 Nad_ForceField, // parent class
1422 ForceField_spec, // func name
1423 nr, np, nm, rdim, fdim
1424 );
1425 }
1426
1427 int nspec() override {
1428 PYBIND11_OVERRIDE(
1429 int, // return type
1430 Nad_ForceField, // parent class
1431 nspec, // func name
1432
1433 );
1434 }
1435
1436 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
1437 const int& rdim, const int& itraj, const int& isamp) override {
1438 PYBIND11_OVERRIDE(
1439 int, // return type
1440 Nad_ForceField, // parent class
1441 ForceField_npes, // func name
1442 V, dV, ddV, R, P, flag, rdim, itraj, isamp
1443 );
1444 }
1445
1446 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
1447 const int& fdim) override {
1448 PYBIND11_OVERRIDE(
1449 int, // return type
1450 Nad_ForceField, // parent class
1451 ForceField_epes, // func name
1452 V, dV, ddV, R, flag, rdim, fdim
1453 );
1454 }
1455
1456 int CheckForceField() override {
1457 PYBIND11_OVERRIDE(
1458 int, // return type
1459 Nad_ForceField, // parent class
1460 CheckForceField, // func name
1461
1462 );
1463 }
1464
1465 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
1466 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
1467 const int& itraj, const int& isamp) override {
1468 PYBIND11_OVERRIDE(
1469 int, // return type
1470 Nad_ForceField, // parent class
1471 ForceField_write, // func name
1472 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
1473 );
1474 }
1475
1476 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
1477 PYBIND11_OVERRIDE(
1478 int, // return type
1479 BO_ForceField, // parent class
1480 ForceField_init, // func name
1481 nr, np, nm, rdim, itraj
1482 );
1483 }
1484
1485 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
1486 PYBIND11_OVERRIDE(
1487 int, // return type
1488 BO_ForceField, // parent class
1489 ForceField_spec, // func name
1490 nr, np, nm, rdim
1491 );
1492 }
1493
1494 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
1495 const int& itraj, const int& isamp) override {
1496 PYBIND11_OVERRIDE(
1497 int, // return type
1498 BO_ForceField, // parent class
1499 ForceField_write, // func name
1500 ofs0, nr, np, nm, rdim, itraj, isamp
1501 );
1502 }
1503 };
1504
1505 py::class_<SystemBath_ForceField, Nad_ForceField, PyTrampoline_SystemBath_ForceField>(models_m, "SystemBath_ForceField", py::dynamic_attr())
1506 .def(py::init<const Param&, const int&>())
1507 .def(py::init<const Param&>())
1508 .def(py::init<const std::string&>())
1509 .def_readwrite("L", &SystemBath_ForceField::L)
1510 .def("ref_Hsys", &SystemBath_ForceField::ref_Hsys, py::return_value_policy::reference_internal)
1511 .def("ref_Q", &SystemBath_ForceField::ref_Q, py::return_value_policy::reference_internal)
1512 .def("ref_omegas", &SystemBath_ForceField::ref_omegas, py::return_value_policy::reference_internal)
1513 .def("ref_coeffs", &SystemBath_ForceField::ref_coeffs, py::return_value_policy::reference_internal)
1514 .def("ref_CL", &SystemBath_ForceField::ref_CL, py::return_value_policy::reference_internal)
1515 .def("ref_QL", &SystemBath_ForceField::ref_QL, py::return_value_policy::reference_internal)
1516 .def("ref_Xnj", &SystemBath_ForceField::ref_Xnj, py::return_value_policy::reference_internal)
1517 .def_static("name", &SystemBath_ForceField::name)
1518 .def("ForceField_npes", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1519 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1520 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1521 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1522 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1523 const int& flag,
1524 const int& rdim) {
1525 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1526 }
1527 )
1528 .def("ForceField_epes", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1529 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1530 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1531 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1532 const int& flag,
1533 const int& rdim,
1534 const int& fdim,
1535 const int& itraj,
1536 const int& isamp) {
1537 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
1538 }
1539 )
1540 .def("ForceField_epes_SpinBoson", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1541 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1542 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1543 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1544 const int& flag,
1545 const int& rdim,
1546 const int& fdim,
1547 const int& itraj,
1548 const int& isamp) {
1549 return self.ForceField_epes_SpinBoson(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
1550 }
1551 )
1552 .def("ForceField_epes_SiteExciton", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1553 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1554 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1555 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1556 const int& flag,
1557 const int& rdim,
1558 const int& fdim,
1559 const int& itraj,
1560 const int& isamp) {
1561 return self.ForceField_epes_SiteExciton(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
1562 }
1563 )
1564 .def("ForceField_epes_General", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1565 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1566 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1567 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1568 const int& flag,
1569 const int& rdim,
1570 const int& fdim,
1571 const int& itraj,
1572 const int& isamp) {
1573 return self.ForceField_epes_General(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
1574 }
1575 )
1576 .def("get_nbath", static_cast<int (SystemBath_ForceField::*)()>(&SystemBath_ForceField::get_nbath))
1577 .def("get_Nb", static_cast<int (SystemBath_ForceField::*)()>(&SystemBath_ForceField::get_Nb))
1578 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
1579 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1580 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1581 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1582 const int& rdim,
1583 const int& fdim) {
1584 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
1585 }
1586 )
1587 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
1588 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1589 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1590 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1591 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1592 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1593 const int& flag,
1594 const int& rdim) {
1595 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1596 }
1597 )
1598 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1599 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1600 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1601 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1602 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1603 const int& flag,
1604 const int& rdim,
1605 const int& itraj,
1606 const int& isamp) {
1607 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
1608 }
1609 )
1610 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1611 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1612 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1613 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1614 const int& flag,
1615 const int& rdim,
1616 const int& fdim) {
1617 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
1618 }
1619 )
1620 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1621 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1622 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1623 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1624 const int& flag,
1625 const int& rdim,
1626 const int& fdim,
1627 const int& itraj,
1628 const int& isamp) {
1629 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
1630 }
1631 )
1632 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
1633 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
1634 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
1635 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
1636 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
1637 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1638 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1639 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1640 const int& rdim,
1641 const int& itraj) {
1642 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
1643 }
1644 )
1645 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1646 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1647 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1648 const int& rdim) {
1649 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
1650 }
1651 )
1652 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
1653 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1654 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1655 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1656 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1657 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1658 const int& flag,
1659 const int& rdim) {
1660 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1661 }
1662 )
1663 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1664 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1665 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1666 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1667 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1668 const int& flag,
1669 const int& rdim,
1670 const int& itraj,
1671 const int& isamp) {
1672 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
1673 }
1674 )
1675 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
1676 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1677 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1678 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1679 const int& rdim,
1680 const int& itraj) {
1681 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
1682 }
1683 )
1684 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
1685 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
1686 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1687 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1688 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1689 const int& rdim,
1690 const int& itraj,
1691 const int& isamp) {
1692 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
1693 }
1694 );
1695
1696 class PyTrampoline_NAD1D_ForceField : public NAD1D_ForceField {
1697 public:
1698 using NAD1D_ForceField::NAD1D_ForceField;
1699
1700 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
1701 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
1702 PYBIND11_OVERRIDE(
1703 int, // return type
1704 NAD1D_ForceField, // parent class
1705 ForceField_init, // func name
1706 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
1707 );
1708 }
1709
1710 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
1711 PYBIND11_OVERRIDE(
1712 int, // return type
1713 NAD1D_ForceField, // parent class
1714 ForceField_spec, // func name
1715 nr, np, nm, rdim, fdim
1716 );
1717 }
1718
1719 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
1720 const int& rdim) override {
1721 PYBIND11_OVERRIDE(
1722 int, // return type
1723 NAD1D_ForceField, // parent class
1724 ForceField_npes, // func name
1725 V, dV, ddV, R, P, flag, rdim
1726 );
1727 }
1728
1729 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
1730 const int& fdim) override {
1731 PYBIND11_OVERRIDE(
1732 int, // return type
1733 NAD1D_ForceField, // parent class
1734 ForceField_epes, // func name
1735 V, dV, ddV, R, flag, rdim, fdim
1736 );
1737 }
1738
1739 int NAD1D_plot() override {
1740 PYBIND11_OVERRIDE(
1741 int, // return type
1742 NAD1D_ForceField, // parent class
1743 NAD1D_plot, // func name
1744
1745 );
1746 }
1747
1748 int ForceField_epes_Morse3A(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1749 const int& rdim, const int& fdim) override {
1750 PYBIND11_OVERRIDE(
1751 int, // return type
1752 NAD1D_ForceField, // parent class
1753 ForceField_epes_Morse3A, // func name
1754 V, dV, ddV, R, flag, rdim, fdim
1755 );
1756 }
1757
1758 int ForceField_epes_Morse3B(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1759 const int& rdim, const int& fdim) override {
1760 PYBIND11_OVERRIDE(
1761 int, // return type
1762 NAD1D_ForceField, // parent class
1763 ForceField_epes_Morse3B, // func name
1764 V, dV, ddV, R, flag, rdim, fdim
1765 );
1766 }
1767
1768 int ForceField_epes_Morse3C(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1769 const int& rdim, const int& fdim) override {
1770 PYBIND11_OVERRIDE(
1771 int, // return type
1772 NAD1D_ForceField, // parent class
1773 ForceField_epes_Morse3C, // func name
1774 V, dV, ddV, R, flag, rdim, fdim
1775 );
1776 }
1777
1778 int ForceField_epes_Morse15(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1779 const int& rdim, const int& fdim) override {
1780 PYBIND11_OVERRIDE(
1781 int, // return type
1782 NAD1D_ForceField, // parent class
1783 ForceField_epes_Morse15, // func name
1784 V, dV, ddV, R, flag, rdim, fdim
1785 );
1786 }
1787
1788 int ForceField_epes_IVP1(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1789 const int& rdim, const int& fdim) override {
1790 PYBIND11_OVERRIDE(
1791 int, // return type
1792 NAD1D_ForceField, // parent class
1793 ForceField_epes_IVP1, // func name
1794 V, dV, ddV, R, flag, rdim, fdim
1795 );
1796 }
1797
1798 int ForceField_epes_IVP2(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1799 const int& rdim, const int& fdim) override {
1800 PYBIND11_OVERRIDE(
1801 int, // return type
1802 NAD1D_ForceField, // parent class
1803 ForceField_epes_IVP2, // func name
1804 V, dV, ddV, R, flag, rdim, fdim
1805 );
1806 }
1807
1808 int ForceField_epes_IVP3(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1809 const int& rdim, const int& fdim) override {
1810 PYBIND11_OVERRIDE(
1811 int, // return type
1812 NAD1D_ForceField, // parent class
1813 ForceField_epes_IVP3, // func name
1814 V, dV, ddV, R, flag, rdim, fdim
1815 );
1816 }
1817
1818 int ForceField_epes_IVP4(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1819 const int& rdim, const int& fdim) override {
1820 PYBIND11_OVERRIDE(
1821 int, // return type
1822 NAD1D_ForceField, // parent class
1823 ForceField_epes_IVP4, // func name
1824 V, dV, ddV, R, flag, rdim, fdim
1825 );
1826 }
1827
1828 int ForceField_epes_CL1D(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1829 const int& rdim, const int& fdim) override {
1830 PYBIND11_OVERRIDE(
1831 int, // return type
1832 NAD1D_ForceField, // parent class
1833 ForceField_epes_CL1D, // func name
1834 V, dV, ddV, R, flag, rdim, fdim
1835 );
1836 }
1837
1838 int ForceField_epes_JC1D(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1839 const int& rdim, const int& fdim) override {
1840 PYBIND11_OVERRIDE(
1841 int, // return type
1842 NAD1D_ForceField, // parent class
1843 ForceField_epes_JC1D, // func name
1844 V, dV, ddV, R, flag, rdim, fdim
1845 );
1846 }
1847
1848 int ForceField_epes_NA_I(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
1849 const int& rdim, const int& fdim) override {
1850 PYBIND11_OVERRIDE(
1851 int, // return type
1852 NAD1D_ForceField, // parent class
1853 ForceField_epes_NA_I, // func name
1854 V, dV, ddV, R, flag, rdim, fdim
1855 );
1856 }
1857
1858 int nspec() override {
1859 PYBIND11_OVERRIDE(
1860 int, // return type
1861 Nad_ForceField, // parent class
1862 nspec, // func name
1863
1864 );
1865 }
1866
1867 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
1868 const int& rdim, const int& itraj, const int& isamp) override {
1869 PYBIND11_OVERRIDE(
1870 int, // return type
1871 Nad_ForceField, // parent class
1872 ForceField_npes, // func name
1873 V, dV, ddV, R, P, flag, rdim, itraj, isamp
1874 );
1875 }
1876
1877 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
1878 const int& fdim, const int& itraj, const int& isamp) override {
1879 PYBIND11_OVERRIDE(
1880 int, // return type
1881 Nad_ForceField, // parent class
1882 ForceField_epes, // func name
1883 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
1884 );
1885 }
1886
1887 int CheckForceField() override {
1888 PYBIND11_OVERRIDE(
1889 int, // return type
1890 Nad_ForceField, // parent class
1891 CheckForceField, // func name
1892
1893 );
1894 }
1895
1896 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
1897 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
1898 const int& itraj, const int& isamp) override {
1899 PYBIND11_OVERRIDE(
1900 int, // return type
1901 Nad_ForceField, // parent class
1902 ForceField_write, // func name
1903 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
1904 );
1905 }
1906
1907 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
1908 PYBIND11_OVERRIDE(
1909 int, // return type
1910 Nad_ForceField, // parent class
1911 reduce_force, // func name
1912 fx, rho, dH, rdim, fdim
1913 );
1914 }
1915
1916 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
1917 PYBIND11_OVERRIDE(
1918 int, // return type
1919 BO_ForceField, // parent class
1920 ForceField_init, // func name
1921 nr, np, nm, rdim, itraj
1922 );
1923 }
1924
1925 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
1926 PYBIND11_OVERRIDE(
1927 int, // return type
1928 BO_ForceField, // parent class
1929 ForceField_spec, // func name
1930 nr, np, nm, rdim
1931 );
1932 }
1933
1934 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
1935 const int& itraj, const int& isamp) override {
1936 PYBIND11_OVERRIDE(
1937 int, // return type
1938 BO_ForceField, // parent class
1939 ForceField_write, // func name
1940 ofs0, nr, np, nm, rdim, itraj, isamp
1941 );
1942 }
1943 };
1944
1945 py::class_<NAD1D_ForceField, Nad_ForceField, PyTrampoline_NAD1D_ForceField>(models_m, "NAD1D_ForceField", py::dynamic_attr())
1946 .def(py::init<const Param&, const int&>())
1947 .def(py::init<const Param&>())
1948 .def(py::init<const std::string&>())
1949 .def_static("name", &NAD1D_ForceField::name)
1950 .def("ForceField_spec", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
1951 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
1952 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
1953 const int& rdim,
1954 const int& fdim) {
1955 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
1956 }
1957 )
1958 .def("ForceField_npes", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1959 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1960 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1961 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1962 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
1963 const int& flag,
1964 const int& rdim) {
1965 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
1966 }
1967 )
1968 .def("ForceField_epes", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1969 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1970 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1971 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1972 const int& flag,
1973 const int& rdim,
1974 const int& fdim) {
1975 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
1976 }
1977 )
1978 .def("NAD1D_plot", static_cast<int (NAD1D_ForceField::*)()>(&NAD1D_ForceField::NAD1D_plot))
1979 .def("ForceField_epes_Morse3A", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1980 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1981 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1982 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1983 const int& flag,
1984 const int& rdim,
1985 const int& fdim) {
1986 return self.ForceField_epes_Morse3A(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
1987 }
1988 )
1989 .def("ForceField_epes_Morse3B", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
1990 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
1991 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
1992 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
1993 const int& flag,
1994 const int& rdim,
1995 const int& fdim) {
1996 return self.ForceField_epes_Morse3B(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
1997 }
1998 )
1999 .def("ForceField_epes_Morse3C", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2000 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2001 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2002 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2003 const int& flag,
2004 const int& rdim,
2005 const int& fdim) {
2006 return self.ForceField_epes_Morse3C(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2007 }
2008 )
2009 .def("ForceField_epes_Morse15", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2010 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2011 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2012 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2013 const int& flag,
2014 const int& rdim,
2015 const int& fdim) {
2016 return self.ForceField_epes_Morse15(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2017 }
2018 )
2019 .def("ForceField_epes_IVP1", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2020 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2021 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2022 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2023 const int& flag,
2024 const int& rdim,
2025 const int& fdim) {
2026 return self.ForceField_epes_IVP1(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2027 }
2028 )
2029 .def("ForceField_epes_IVP2", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2030 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2031 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2032 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2033 const int& flag,
2034 const int& rdim,
2035 const int& fdim) {
2036 return self.ForceField_epes_IVP2(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2037 }
2038 )
2039 .def("ForceField_epes_IVP3", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2040 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2041 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2042 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2043 const int& flag,
2044 const int& rdim,
2045 const int& fdim) {
2046 return self.ForceField_epes_IVP3(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2047 }
2048 )
2049 .def("ForceField_epes_IVP4", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2050 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2051 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2052 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2053 const int& flag,
2054 const int& rdim,
2055 const int& fdim) {
2056 return self.ForceField_epes_IVP4(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2057 }
2058 )
2059 .def("ForceField_epes_CL1D", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2060 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2061 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2062 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2063 const int& flag,
2064 const int& rdim,
2065 const int& fdim) {
2066 return self.ForceField_epes_CL1D(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2067 }
2068 )
2069 .def("ForceField_epes_JC1D", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2070 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2071 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2072 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2073 const int& flag,
2074 const int& rdim,
2075 const int& fdim) {
2076 return self.ForceField_epes_JC1D(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2077 }
2078 )
2079 .def("ForceField_epes_NA_I", [](NAD1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2080 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2081 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2082 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2083 const int& flag,
2084 const int& rdim,
2085 const int& fdim) {
2086 return self.ForceField_epes_NA_I(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2087 }
2088 )
2089 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
2090 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2091 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2092 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2093 const int& rdim,
2094 const int& fdim) {
2095 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
2096 }
2097 )
2098 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
2099 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2100 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2101 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2102 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2103 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2104 const int& flag,
2105 const int& rdim) {
2106 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2107 }
2108 )
2109 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2110 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2111 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2112 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2113 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2114 const int& flag,
2115 const int& rdim,
2116 const int& itraj,
2117 const int& isamp) {
2118 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
2119 }
2120 )
2121 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2122 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2123 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2124 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2125 const int& flag,
2126 const int& rdim,
2127 const int& fdim) {
2128 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2129 }
2130 )
2131 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2132 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2133 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2134 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2135 const int& flag,
2136 const int& rdim,
2137 const int& fdim,
2138 const int& itraj,
2139 const int& isamp) {
2140 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
2141 }
2142 )
2143 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
2144 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
2145 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
2146 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
2147 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
2148 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2149 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2150 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2151 const int& rdim,
2152 const int& itraj) {
2153 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
2154 }
2155 )
2156 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2157 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2158 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2159 const int& rdim) {
2160 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
2161 }
2162 )
2163 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
2164 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2165 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2166 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2167 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2168 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2169 const int& flag,
2170 const int& rdim) {
2171 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2172 }
2173 )
2174 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2175 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2176 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2177 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2178 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2179 const int& flag,
2180 const int& rdim,
2181 const int& itraj,
2182 const int& isamp) {
2183 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
2184 }
2185 )
2186 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
2187 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2188 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2189 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2190 const int& rdim,
2191 const int& itraj) {
2192 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
2193 }
2194 )
2195 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
2196 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
2197 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2198 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2199 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2200 const int& rdim,
2201 const int& itraj,
2202 const int& isamp) {
2203 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
2204 }
2205 );
2206
2207 class PyTrampoline_Spectrum_NAD_ForceField : public Spectrum_NAD_ForceField {
2208 public:
2209 using Spectrum_NAD_ForceField::Spectrum_NAD_ForceField;
2210
2211 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
2212 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
2213 PYBIND11_OVERRIDE(
2214 int, // return type
2215 Spectrum_NAD_ForceField, // parent class
2216 ForceField_init, // func name
2217 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
2218 );
2219 }
2220
2221 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
2222 const int& rdim) override {
2223 PYBIND11_OVERRIDE(
2224 int, // return type
2225 Spectrum_NAD_ForceField, // parent class
2226 ForceField_npes, // func name
2227 V, dV, ddV, R, P, flag, rdim
2228 );
2229 }
2230
2231 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
2232 const int& fdim) override {
2233 PYBIND11_OVERRIDE(
2234 int, // return type
2235 Spectrum_NAD_ForceField, // parent class
2236 ForceField_epes, // func name
2237 V, dV, ddV, R, flag, rdim, fdim
2238 );
2239 }
2240
2241 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
2242 PYBIND11_OVERRIDE(
2243 int, // return type
2244 Nad_ForceField, // parent class
2245 ForceField_spec, // func name
2246 nr, np, nm, rdim, fdim
2247 );
2248 }
2249
2250 int nspec() override {
2251 PYBIND11_OVERRIDE(
2252 int, // return type
2253 Nad_ForceField, // parent class
2254 nspec, // func name
2255
2256 );
2257 }
2258
2259 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
2260 const int& rdim, const int& itraj, const int& isamp) override {
2261 PYBIND11_OVERRIDE(
2262 int, // return type
2263 Nad_ForceField, // parent class
2264 ForceField_npes, // func name
2265 V, dV, ddV, R, P, flag, rdim, itraj, isamp
2266 );
2267 }
2268
2269 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
2270 const int& fdim, const int& itraj, const int& isamp) override {
2271 PYBIND11_OVERRIDE(
2272 int, // return type
2273 Nad_ForceField, // parent class
2274 ForceField_epes, // func name
2275 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
2276 );
2277 }
2278
2279 int CheckForceField() override {
2280 PYBIND11_OVERRIDE(
2281 int, // return type
2282 Nad_ForceField, // parent class
2283 CheckForceField, // func name
2284
2285 );
2286 }
2287
2288 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
2289 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
2290 const int& itraj, const int& isamp) override {
2291 PYBIND11_OVERRIDE(
2292 int, // return type
2293 Nad_ForceField, // parent class
2294 ForceField_write, // func name
2295 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
2296 );
2297 }
2298
2299 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
2300 PYBIND11_OVERRIDE(
2301 int, // return type
2302 Nad_ForceField, // parent class
2303 reduce_force, // func name
2304 fx, rho, dH, rdim, fdim
2305 );
2306 }
2307
2308 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
2309 PYBIND11_OVERRIDE(
2310 int, // return type
2311 BO_ForceField, // parent class
2312 ForceField_init, // func name
2313 nr, np, nm, rdim, itraj
2314 );
2315 }
2316
2317 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
2318 PYBIND11_OVERRIDE(
2319 int, // return type
2320 BO_ForceField, // parent class
2321 ForceField_spec, // func name
2322 nr, np, nm, rdim
2323 );
2324 }
2325
2326 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
2327 const int& itraj, const int& isamp) override {
2328 PYBIND11_OVERRIDE(
2329 int, // return type
2330 BO_ForceField, // parent class
2331 ForceField_write, // func name
2332 ofs0, nr, np, nm, rdim, itraj, isamp
2333 );
2334 }
2335 };
2336
2337 py::class_<Spectrum_NAD_ForceField, Nad_ForceField, PyTrampoline_Spectrum_NAD_ForceField>(models_m, "Spectrum_NAD_ForceField", py::dynamic_attr())
2338 .def(py::init<const Param&>())
2339 .def(py::init<const std::string&>())
2340 .def_readwrite("first_call", &Spectrum_NAD_ForceField::first_call)
2341 .def_readwrite("Fminus1", &Spectrum_NAD_ForceField::Fminus1)
2342 .def_readwrite("ground_shift", &Spectrum_NAD_ForceField::ground_shift)
2343 .def("ref_workr_v", &Spectrum_NAD_ForceField::ref_workr_v, py::return_value_policy::reference_internal)
2344 .def("ref_workr_dv", &Spectrum_NAD_ForceField::ref_workr_dv, py::return_value_policy::reference_internal)
2345 .def_static("name", &Spectrum_NAD_ForceField::name)
2346 .def("ForceField_npes", [](Spectrum_NAD_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2347 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2348 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2349 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2350 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2351 const int& flag,
2352 const int& rdim) {
2353 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2354 }
2355 )
2356 .def("ForceField_epes", [](Spectrum_NAD_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2357 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2358 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2359 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2360 const int& flag,
2361 const int& rdim,
2362 const int& fdim) {
2363 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2364 }
2365 )
2366 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
2367 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2368 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2369 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2370 const int& rdim,
2371 const int& fdim) {
2372 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
2373 }
2374 )
2375 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
2376 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2377 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2378 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2379 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2380 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2381 const int& flag,
2382 const int& rdim) {
2383 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2384 }
2385 )
2386 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2387 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2388 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2389 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2390 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2391 const int& flag,
2392 const int& rdim,
2393 const int& itraj,
2394 const int& isamp) {
2395 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
2396 }
2397 )
2398 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2399 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2400 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2401 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2402 const int& flag,
2403 const int& rdim,
2404 const int& fdim) {
2405 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2406 }
2407 )
2408 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2409 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2410 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2411 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2412 const int& flag,
2413 const int& rdim,
2414 const int& fdim,
2415 const int& itraj,
2416 const int& isamp) {
2417 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
2418 }
2419 )
2420 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
2421 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
2422 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
2423 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
2424 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
2425 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2426 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2427 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2428 const int& rdim,
2429 const int& itraj) {
2430 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
2431 }
2432 )
2433 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2434 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2435 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2436 const int& rdim) {
2437 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
2438 }
2439 )
2440 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
2441 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2442 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2443 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2444 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2445 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2446 const int& flag,
2447 const int& rdim) {
2448 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2449 }
2450 )
2451 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2452 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2453 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2454 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2455 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2456 const int& flag,
2457 const int& rdim,
2458 const int& itraj,
2459 const int& isamp) {
2460 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
2461 }
2462 )
2463 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
2464 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2465 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2466 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2467 const int& rdim,
2468 const int& itraj) {
2469 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
2470 }
2471 )
2472 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
2473 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
2474 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2475 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2476 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2477 const int& rdim,
2478 const int& itraj,
2479 const int& isamp) {
2480 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
2481 }
2482 );
2483
2484 class PyTrampoline_LVCM_ForceField : public LVCM_ForceField {
2485 public:
2486 using LVCM_ForceField::LVCM_ForceField;
2487
2488 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
2489 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
2490 PYBIND11_OVERRIDE(
2491 int, // return type
2492 LVCM_ForceField, // parent class
2493 ForceField_init, // func name
2494 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
2495 );
2496 }
2497
2498 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
2499 const int& rdim) override {
2500 PYBIND11_OVERRIDE(
2501 int, // return type
2502 LVCM_ForceField, // parent class
2503 ForceField_npes, // func name
2504 V, dV, ddV, R, P, flag, rdim
2505 );
2506 }
2507
2508 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
2509 const int& fdim) override {
2510 PYBIND11_OVERRIDE(
2511 int, // return type
2512 LVCM_ForceField, // parent class
2513 ForceField_epes, // func name
2514 V, dV, ddV, R, flag, rdim, fdim
2515 );
2516 }
2517
2518 int ForceField_epes_PYR(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
2519 const int& rdim, const int& fdim) override {
2520 PYBIND11_OVERRIDE(
2521 int, // return type
2522 LVCM_ForceField, // parent class
2523 ForceField_epes_PYR, // func name
2524 V, dV, ddV, R, flag, rdim, fdim
2525 );
2526 }
2527
2528 int ForceField_epes_CrCO5_2(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
2529 const int& rdim, const int& fdim) override {
2530 PYBIND11_OVERRIDE(
2531 int, // return type
2532 LVCM_ForceField, // parent class
2533 ForceField_epes_CrCO5_2, // func name
2534 V, dV, ddV, R, flag, rdim, fdim
2535 );
2536 }
2537
2538 int ForceField_epes_CrCO5_5(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
2539 const int& rdim, const int& fdim) override {
2540 PYBIND11_OVERRIDE(
2541 int, // return type
2542 LVCM_ForceField, // parent class
2543 ForceField_epes_CrCO5_5, // func name
2544 V, dV, ddV, R, flag, rdim, fdim
2545 );
2546 }
2547
2548 int ForceField_epes_BEN_5(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
2549 const int& rdim, const int& fdim) override {
2550 PYBIND11_OVERRIDE(
2551 int, // return type
2552 LVCM_ForceField, // parent class
2553 ForceField_epes_BEN_5, // func name
2554 V, dV, ddV, R, flag, rdim, fdim
2555 );
2556 }
2557
2558 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
2559 PYBIND11_OVERRIDE(
2560 int, // return type
2561 Nad_ForceField, // parent class
2562 ForceField_spec, // func name
2563 nr, np, nm, rdim, fdim
2564 );
2565 }
2566
2567 int nspec() override {
2568 PYBIND11_OVERRIDE(
2569 int, // return type
2570 Nad_ForceField, // parent class
2571 nspec, // func name
2572
2573 );
2574 }
2575
2576 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
2577 const int& rdim, const int& itraj, const int& isamp) override {
2578 PYBIND11_OVERRIDE(
2579 int, // return type
2580 Nad_ForceField, // parent class
2581 ForceField_npes, // func name
2582 V, dV, ddV, R, P, flag, rdim, itraj, isamp
2583 );
2584 }
2585
2586 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
2587 const int& fdim, const int& itraj, const int& isamp) override {
2588 PYBIND11_OVERRIDE(
2589 int, // return type
2590 Nad_ForceField, // parent class
2591 ForceField_epes, // func name
2592 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
2593 );
2594 }
2595
2596 int CheckForceField() override {
2597 PYBIND11_OVERRIDE(
2598 int, // return type
2599 Nad_ForceField, // parent class
2600 CheckForceField, // func name
2601
2602 );
2603 }
2604
2605 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
2606 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
2607 const int& itraj, const int& isamp) override {
2608 PYBIND11_OVERRIDE(
2609 int, // return type
2610 Nad_ForceField, // parent class
2611 ForceField_write, // func name
2612 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
2613 );
2614 }
2615
2616 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
2617 PYBIND11_OVERRIDE(
2618 int, // return type
2619 Nad_ForceField, // parent class
2620 reduce_force, // func name
2621 fx, rho, dH, rdim, fdim
2622 );
2623 }
2624
2625 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
2626 PYBIND11_OVERRIDE(
2627 int, // return type
2628 BO_ForceField, // parent class
2629 ForceField_init, // func name
2630 nr, np, nm, rdim, itraj
2631 );
2632 }
2633
2634 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
2635 PYBIND11_OVERRIDE(
2636 int, // return type
2637 BO_ForceField, // parent class
2638 ForceField_spec, // func name
2639 nr, np, nm, rdim
2640 );
2641 }
2642
2643 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
2644 const int& itraj, const int& isamp) override {
2645 PYBIND11_OVERRIDE(
2646 int, // return type
2647 BO_ForceField, // parent class
2648 ForceField_write, // func name
2649 ofs0, nr, np, nm, rdim, itraj, isamp
2650 );
2651 }
2652 };
2653
2654 py::class_<LVCM_ForceField, Nad_ForceField, PyTrampoline_LVCM_ForceField>(models_m, "LVCM_ForceField", py::dynamic_attr())
2655 .def(py::init<const Param&, const int&>())
2656 .def(py::init<const Param&>())
2657 .def(py::init<const std::string&>())
2658 .def("ref_Hsys", &LVCM_ForceField::ref_Hsys, py::return_value_policy::reference_internal)
2659 .def("ref_ECI", &LVCM_ForceField::ref_ECI, py::return_value_policy::reference_internal)
2660 .def("ref_KCI", &LVCM_ForceField::ref_KCI, py::return_value_policy::reference_internal)
2661 .def_static("name", &LVCM_ForceField::name)
2662 .def("ForceField_npes", [](LVCM_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2663 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2664 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2665 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2666 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2667 const int& flag,
2668 const int& rdim) {
2669 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2670 }
2671 )
2672 .def("ForceField_epes", [](LVCM_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2673 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2674 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2675 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2676 const int& flag,
2677 const int& rdim,
2678 const int& fdim) {
2679 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2680 }
2681 )
2682 .def("ForceField_epes_PYR", [](LVCM_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2683 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2684 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2685 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2686 const int& flag,
2687 const int& rdim,
2688 const int& fdim) {
2689 return self.ForceField_epes_PYR(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2690 }
2691 )
2692 .def("ForceField_epes_CrCO5_2", [](LVCM_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2693 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2694 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2695 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2696 const int& flag,
2697 const int& rdim,
2698 const int& fdim) {
2699 return self.ForceField_epes_CrCO5_2(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2700 }
2701 )
2702 .def("ForceField_epes_CrCO5_5", [](LVCM_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2703 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2704 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2705 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2706 const int& flag,
2707 const int& rdim,
2708 const int& fdim) {
2709 return self.ForceField_epes_CrCO5_5(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2710 }
2711 )
2712 .def("ForceField_epes_BEN_5", [](LVCM_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2713 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2714 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2715 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2716 const int& flag,
2717 const int& rdim,
2718 const int& fdim) {
2719 return self.ForceField_epes_BEN_5(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2720 }
2721 )
2722 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
2723 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2724 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2725 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2726 const int& rdim,
2727 const int& fdim) {
2728 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
2729 }
2730 )
2731 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
2732 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2733 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2734 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2735 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2736 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2737 const int& flag,
2738 const int& rdim) {
2739 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2740 }
2741 )
2742 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2743 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2744 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2745 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2746 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2747 const int& flag,
2748 const int& rdim,
2749 const int& itraj,
2750 const int& isamp) {
2751 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
2752 }
2753 )
2754 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2755 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2756 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2757 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2758 const int& flag,
2759 const int& rdim,
2760 const int& fdim) {
2761 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
2762 }
2763 )
2764 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2765 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2766 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2767 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2768 const int& flag,
2769 const int& rdim,
2770 const int& fdim,
2771 const int& itraj,
2772 const int& isamp) {
2773 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
2774 }
2775 )
2776 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
2777 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
2778 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
2779 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
2780 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
2781 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2782 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2783 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2784 const int& rdim,
2785 const int& itraj) {
2786 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
2787 }
2788 )
2789 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2790 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2791 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2792 const int& rdim) {
2793 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
2794 }
2795 )
2796 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
2797 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2798 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2799 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2800 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2801 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2802 const int& flag,
2803 const int& rdim) {
2804 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
2805 }
2806 )
2807 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
2808 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
2809 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
2810 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
2811 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
2812 const int& flag,
2813 const int& rdim,
2814 const int& itraj,
2815 const int& isamp) {
2816 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
2817 }
2818 )
2819 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
2820 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2821 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2822 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2823 const int& rdim,
2824 const int& itraj) {
2825 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
2826 }
2827 )
2828 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
2829 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
2830 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
2831 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
2832 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
2833 const int& rdim,
2834 const int& itraj,
2835 const int& isamp) {
2836 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
2837 }
2838 );
2839
2840 class PyTrampoline_ManySite_ForceField : public ManySite_ForceField {
2841 public:
2842 using ManySite_ForceField::ManySite_ForceField;
2843
2844 int ForceField_heff(kids_complex* H, kids_complex* rhos, const int& mdim, const int& fdim) override {
2845 PYBIND11_OVERRIDE(
2846 int, // return type
2847 ManySite_ForceField, // parent class
2848 ForceField_heff, // func name
2849 H, rhos, mdim, fdim
2850 );
2851 }
2852
2853 int ForceField_heff_Ising(kids_complex* H, kids_complex* rhos, const int& mdim, const int& fdim) override {
2854 PYBIND11_OVERRIDE(
2855 int, // return type
2856 ManySite_ForceField, // parent class
2857 ForceField_heff_Ising, // func name
2858 H, rhos, mdim, fdim
2859 );
2860 }
2861
2862 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
2863 PYBIND11_OVERRIDE(
2864 int, // return type
2865 Nad_ForceField, // parent class
2866 ForceField_spec, // func name
2867 nr, np, nm, rdim, fdim
2868 );
2869 }
2870
2871 int nspec() override {
2872 PYBIND11_OVERRIDE(
2873 int, // return type
2874 Nad_ForceField, // parent class
2875 nspec, // func name
2876
2877 );
2878 }
2879
2880 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
2881 const int& rdim) override {
2882 PYBIND11_OVERRIDE(
2883 int, // return type
2884 Nad_ForceField, // parent class
2885 ForceField_npes, // func name
2886 V, dV, ddV, R, P, flag, rdim
2887 );
2888 }
2889
2890 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
2891 const int& rdim, const int& itraj, const int& isamp) override {
2892 PYBIND11_OVERRIDE(
2893 int, // return type
2894 Nad_ForceField, // parent class
2895 ForceField_npes, // func name
2896 V, dV, ddV, R, P, flag, rdim, itraj, isamp
2897 );
2898 }
2899
2900 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
2901 int& eocc, const int& rdim, const int& fdim, const int& itraj) override {
2902 PYBIND11_OVERRIDE(
2903 int, // return type
2904 Nad_ForceField, // parent class
2905 ForceField_init, // func name
2906 nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj
2907 );
2908 }
2909
2910 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
2911 const int& fdim) override {
2912 PYBIND11_OVERRIDE(
2913 int, // return type
2914 Nad_ForceField, // parent class
2915 ForceField_epes, // func name
2916 V, dV, ddV, R, flag, rdim, fdim
2917 );
2918 }
2919
2920 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
2921 const int& fdim, const int& itraj, const int& isamp) override {
2922 PYBIND11_OVERRIDE(
2923 int, // return type
2924 Nad_ForceField, // parent class
2925 ForceField_epes, // func name
2926 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
2927 );
2928 }
2929
2930 int CheckForceField() override {
2931 PYBIND11_OVERRIDE(
2932 int, // return type
2933 Nad_ForceField, // parent class
2934 CheckForceField, // func name
2935
2936 );
2937 }
2938
2939 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
2940 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
2941 const int& itraj, const int& isamp) override {
2942 PYBIND11_OVERRIDE(
2943 int, // return type
2944 Nad_ForceField, // parent class
2945 ForceField_write, // func name
2946 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
2947 );
2948 }
2949
2950 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
2951 PYBIND11_OVERRIDE(
2952 int, // return type
2953 Nad_ForceField, // parent class
2954 reduce_force, // func name
2955 fx, rho, dH, rdim, fdim
2956 );
2957 }
2958
2959 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
2960 PYBIND11_OVERRIDE(
2961 int, // return type
2962 BO_ForceField, // parent class
2963 ForceField_init, // func name
2964 nr, np, nm, rdim, itraj
2965 );
2966 }
2967
2968 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
2969 PYBIND11_OVERRIDE(
2970 int, // return type
2971 BO_ForceField, // parent class
2972 ForceField_spec, // func name
2973 nr, np, nm, rdim
2974 );
2975 }
2976
2977 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
2978 const int& itraj, const int& isamp) override {
2979 PYBIND11_OVERRIDE(
2980 int, // return type
2981 BO_ForceField, // parent class
2982 ForceField_write, // func name
2983 ofs0, nr, np, nm, rdim, itraj, isamp
2984 );
2985 }
2986 };
2987
2988 py::class_<ManySite_ForceField, Nad_ForceField, PyTrampoline_ManySite_ForceField>(models_m, "ManySite_ForceField", py::dynamic_attr())
2989 .def(py::init<const Param&>())
2990 .def(py::init<const std::string&>())
2991 .def_readwrite("M", &ManySite_ForceField::M)
2992 .def_readwrite("Jp", &ManySite_ForceField::Jp)
2993 .def_readwrite("Jz", &ManySite_ForceField::Jz)
2994 .def_readwrite("alpha", &ManySite_ForceField::alpha)
2995 .def_readwrite("omega", &ManySite_ForceField::omega)
2996 .def("ref_JpMat", &ManySite_ForceField::ref_JpMat, py::return_value_policy::reference_internal)
2997 .def("ref_JzMat", &ManySite_ForceField::ref_JzMat, py::return_value_policy::reference_internal)
2998 .def("ref_redX", &ManySite_ForceField::ref_redX, py::return_value_policy::reference_internal)
2999 .def("ref_redY", &ManySite_ForceField::ref_redY, py::return_value_policy::reference_internal)
3000 .def("ref_redZ", &ManySite_ForceField::ref_redZ, py::return_value_policy::reference_internal)
3001 .def_static("name", &ManySite_ForceField::name)
3002 .def("get_M", static_cast<int (ManySite_ForceField::*)()>(&ManySite_ForceField::get_M))
3003 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
3004 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3005 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3006 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3007 const int& rdim,
3008 const int& fdim) {
3009 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
3010 }
3011 )
3012 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
3013 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3014 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3015 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3016 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3017 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3018 const int& flag,
3019 const int& rdim) {
3020 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3021 }
3022 )
3023 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3024 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3025 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3026 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3027 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3028 const int& flag,
3029 const int& rdim,
3030 const int& itraj,
3031 const int& isamp) {
3032 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
3033 }
3034 )
3035 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3036 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3037 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3038 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3039 const int& flag,
3040 const int& rdim,
3041 const int& fdim) {
3042 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3043 }
3044 )
3045 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3046 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3047 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3048 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3049 const int& flag,
3050 const int& rdim,
3051 const int& fdim,
3052 const int& itraj,
3053 const int& isamp) {
3054 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
3055 }
3056 )
3057 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
3058 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
3059 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
3060 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
3061 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
3062 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3063 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3064 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3065 const int& rdim,
3066 const int& itraj) {
3067 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
3068 }
3069 )
3070 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3071 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3072 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3073 const int& rdim) {
3074 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
3075 }
3076 )
3077 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
3078 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3079 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3080 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3081 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3082 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3083 const int& flag,
3084 const int& rdim) {
3085 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3086 }
3087 )
3088 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3089 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3090 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3091 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3092 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3093 const int& flag,
3094 const int& rdim,
3095 const int& itraj,
3096 const int& isamp) {
3097 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
3098 }
3099 )
3100 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
3101 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3102 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3103 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3104 const int& rdim,
3105 const int& itraj) {
3106 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
3107 }
3108 )
3109 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
3110 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
3111 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3112 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3113 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3114 const int& rdim,
3115 const int& itraj,
3116 const int& isamp) {
3117 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
3118 }
3119 );
3120
3121 class PyTrampoline_Scatter1D_ForceField : public Scatter1D_ForceField {
3122 public:
3123 using Scatter1D_ForceField::Scatter1D_ForceField;
3124
3125 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
3126 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
3127 PYBIND11_OVERRIDE(
3128 int, // return type
3129 Scatter1D_ForceField, // parent class
3130 ForceField_init, // func name
3131 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
3132 );
3133 }
3134
3135 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
3136 PYBIND11_OVERRIDE(
3137 int, // return type
3138 Scatter1D_ForceField, // parent class
3139 ForceField_spec, // func name
3140 nr, np, nm, rdim, fdim
3141 );
3142 }
3143
3144 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
3145 const int& rdim) override {
3146 PYBIND11_OVERRIDE(
3147 int, // return type
3148 Scatter1D_ForceField, // parent class
3149 ForceField_npes, // func name
3150 V, dV, ddV, R, P, flag, rdim
3151 );
3152 }
3153
3154 int Scatter1D_plot(const double& Xrange) override {
3155 PYBIND11_OVERRIDE(
3156 int, // return type
3157 Scatter1D_ForceField, // parent class
3158 Scatter1D_plot, // func name
3159 Xrange
3160 );
3161 }
3162
3163 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
3164 const int& fdim) override {
3165 PYBIND11_OVERRIDE(
3166 int, // return type
3167 Scatter1D_ForceField, // parent class
3168 ForceField_epes, // func name
3169 V, dV, ddV, R, flag, rdim, fdim
3170 );
3171 }
3172
3173 int ForceField_epes_SAC(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3174 const int& rdim, const int& fdim) override {
3175 PYBIND11_OVERRIDE(
3176 int, // return type
3177 Scatter1D_ForceField, // parent class
3178 ForceField_epes_SAC, // func name
3179 V, dV, ddV, R, flag, rdim, fdim
3180 );
3181 }
3182
3183 int ForceField_epes_SAC2(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3184 const int& rdim, const int& fdim) override {
3185 PYBIND11_OVERRIDE(
3186 int, // return type
3187 Scatter1D_ForceField, // parent class
3188 ForceField_epes_SAC2, // func name
3189 V, dV, ddV, R, flag, rdim, fdim
3190 );
3191 }
3192
3193 int ForceField_epes_DAC(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3194 const int& rdim, const int& fdim) override {
3195 PYBIND11_OVERRIDE(
3196 int, // return type
3197 Scatter1D_ForceField, // parent class
3198 ForceField_epes_DAC, // func name
3199 V, dV, ddV, R, flag, rdim, fdim
3200 );
3201 }
3202
3203 int ForceField_epes_ECR(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3204 const int& rdim, const int& fdim) override {
3205 PYBIND11_OVERRIDE(
3206 int, // return type
3207 Scatter1D_ForceField, // parent class
3208 ForceField_epes_ECR, // func name
3209 V, dV, ddV, R, flag, rdim, fdim
3210 );
3211 }
3212
3213 int ForceField_epes_DBG(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3214 const int& rdim, const int& fdim) override {
3215 PYBIND11_OVERRIDE(
3216 int, // return type
3217 Scatter1D_ForceField, // parent class
3218 ForceField_epes_DBG, // func name
3219 V, dV, ddV, R, flag, rdim, fdim
3220 );
3221 }
3222
3223 int ForceField_epes_DAG(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3224 const int& rdim, const int& fdim) override {
3225 PYBIND11_OVERRIDE(
3226 int, // return type
3227 Scatter1D_ForceField, // parent class
3228 ForceField_epes_DAG, // func name
3229 V, dV, ddV, R, flag, rdim, fdim
3230 );
3231 }
3232
3233 int ForceField_epes_DRN(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3234 const int& rdim, const int& fdim) override {
3235 PYBIND11_OVERRIDE(
3236 int, // return type
3237 Scatter1D_ForceField, // parent class
3238 ForceField_epes_DRN, // func name
3239 V, dV, ddV, R, flag, rdim, fdim
3240 );
3241 }
3242
3243 int nspec() override {
3244 PYBIND11_OVERRIDE(
3245 int, // return type
3246 Nad_ForceField, // parent class
3247 nspec, // func name
3248
3249 );
3250 }
3251
3252 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
3253 const int& rdim, const int& itraj, const int& isamp) override {
3254 PYBIND11_OVERRIDE(
3255 int, // return type
3256 Nad_ForceField, // parent class
3257 ForceField_npes, // func name
3258 V, dV, ddV, R, P, flag, rdim, itraj, isamp
3259 );
3260 }
3261
3262 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
3263 const int& fdim, const int& itraj, const int& isamp) override {
3264 PYBIND11_OVERRIDE(
3265 int, // return type
3266 Nad_ForceField, // parent class
3267 ForceField_epes, // func name
3268 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
3269 );
3270 }
3271
3272 int CheckForceField() override {
3273 PYBIND11_OVERRIDE(
3274 int, // return type
3275 Nad_ForceField, // parent class
3276 CheckForceField, // func name
3277
3278 );
3279 }
3280
3281 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
3282 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
3283 const int& itraj, const int& isamp) override {
3284 PYBIND11_OVERRIDE(
3285 int, // return type
3286 Nad_ForceField, // parent class
3287 ForceField_write, // func name
3288 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
3289 );
3290 }
3291
3292 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
3293 PYBIND11_OVERRIDE(
3294 int, // return type
3295 Nad_ForceField, // parent class
3296 reduce_force, // func name
3297 fx, rho, dH, rdim, fdim
3298 );
3299 }
3300
3301 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
3302 PYBIND11_OVERRIDE(
3303 int, // return type
3304 BO_ForceField, // parent class
3305 ForceField_init, // func name
3306 nr, np, nm, rdim, itraj
3307 );
3308 }
3309
3310 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
3311 PYBIND11_OVERRIDE(
3312 int, // return type
3313 BO_ForceField, // parent class
3314 ForceField_spec, // func name
3315 nr, np, nm, rdim
3316 );
3317 }
3318
3319 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
3320 const int& itraj, const int& isamp) override {
3321 PYBIND11_OVERRIDE(
3322 int, // return type
3323 BO_ForceField, // parent class
3324 ForceField_write, // func name
3325 ofs0, nr, np, nm, rdim, itraj, isamp
3326 );
3327 }
3328 };
3329
3330 py::class_<Scatter1D_ForceField, Nad_ForceField, PyTrampoline_Scatter1D_ForceField>(models_m, "Scatter1D_ForceField", py::dynamic_attr())
3331 .def(py::init<const Param&, const int&>())
3332 .def(py::init<const Param&>())
3333 .def(py::init<const std::string&>())
3334 .def_static("name", &Scatter1D_ForceField::name)
3335 .def("ForceField_spec", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3336 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3337 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3338 const int& rdim,
3339 const int& fdim) {
3340 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
3341 }
3342 )
3343 .def("ForceField_npes", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3344 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3345 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3346 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3347 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3348 const int& flag,
3349 const int& rdim) {
3350 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3351 }
3352 )
3353 .def("Scatter1D_plot", static_cast<int (Scatter1D_ForceField::*)(const double&)>(&Scatter1D_ForceField::Scatter1D_plot))
3354 .def("ForceField_epes", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3355 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3356 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3357 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3358 const int& flag,
3359 const int& rdim,
3360 const int& fdim) {
3361 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3362 }
3363 )
3364 .def("ForceField_epes_SAC", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3365 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3366 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3367 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3368 const int& flag,
3369 const int& rdim,
3370 const int& fdim) {
3371 return self.ForceField_epes_SAC(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3372 }
3373 )
3374 .def("ForceField_epes_SAC2", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3375 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3376 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3377 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3378 const int& flag,
3379 const int& rdim,
3380 const int& fdim) {
3381 return self.ForceField_epes_SAC2(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3382 }
3383 )
3384 .def("ForceField_epes_DAC", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3385 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3386 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3387 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3388 const int& flag,
3389 const int& rdim,
3390 const int& fdim) {
3391 return self.ForceField_epes_DAC(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3392 }
3393 )
3394 .def("ForceField_epes_ECR", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3395 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3396 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3397 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3398 const int& flag,
3399 const int& rdim,
3400 const int& fdim) {
3401 return self.ForceField_epes_ECR(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3402 }
3403 )
3404 .def("ForceField_epes_DBG", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3405 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3406 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3407 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3408 const int& flag,
3409 const int& rdim,
3410 const int& fdim) {
3411 return self.ForceField_epes_DBG(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3412 }
3413 )
3414 .def("ForceField_epes_DAG", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3415 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3416 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3417 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3418 const int& flag,
3419 const int& rdim,
3420 const int& fdim) {
3421 return self.ForceField_epes_DAG(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3422 }
3423 )
3424 .def("ForceField_epes_DRN", [](Scatter1D_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3425 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3426 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3427 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3428 const int& flag,
3429 const int& rdim,
3430 const int& fdim) {
3431 return self.ForceField_epes_DRN(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3432 }
3433 )
3434 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
3435 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3436 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3437 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3438 const int& rdim,
3439 const int& fdim) {
3440 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
3441 }
3442 )
3443 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
3444 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3445 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3446 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3447 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3448 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3449 const int& flag,
3450 const int& rdim) {
3451 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3452 }
3453 )
3454 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3455 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3456 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3457 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3458 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3459 const int& flag,
3460 const int& rdim,
3461 const int& itraj,
3462 const int& isamp) {
3463 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
3464 }
3465 )
3466 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3467 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3468 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3469 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3470 const int& flag,
3471 const int& rdim,
3472 const int& fdim) {
3473 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3474 }
3475 )
3476 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3477 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3478 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3479 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3480 const int& flag,
3481 const int& rdim,
3482 const int& fdim,
3483 const int& itraj,
3484 const int& isamp) {
3485 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
3486 }
3487 )
3488 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
3489 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
3490 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
3491 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
3492 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
3493 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3494 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3495 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3496 const int& rdim,
3497 const int& itraj) {
3498 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
3499 }
3500 )
3501 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3502 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3503 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3504 const int& rdim) {
3505 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
3506 }
3507 )
3508 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
3509 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3510 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3511 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3512 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3513 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3514 const int& flag,
3515 const int& rdim) {
3516 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3517 }
3518 )
3519 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3520 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3521 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3522 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3523 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3524 const int& flag,
3525 const int& rdim,
3526 const int& itraj,
3527 const int& isamp) {
3528 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
3529 }
3530 )
3531 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
3532 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3533 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3534 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3535 const int& rdim,
3536 const int& itraj) {
3537 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
3538 }
3539 )
3540 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
3541 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
3542 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3543 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3544 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3545 const int& rdim,
3546 const int& itraj,
3547 const int& isamp) {
3548 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
3549 }
3550 );
3551
3552 class PyTrampoline_PyrCav_ForceField : public PyrCav_ForceField {
3553 public:
3554 using PyrCav_ForceField::PyrCav_ForceField;
3555
3556 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
3557 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
3558 PYBIND11_OVERRIDE(
3559 int, // return type
3560 PyrCav_ForceField, // parent class
3561 ForceField_init, // func name
3562 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
3563 );
3564 }
3565
3566 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
3567 const int& rdim) override {
3568 PYBIND11_OVERRIDE(
3569 int, // return type
3570 PyrCav_ForceField, // parent class
3571 ForceField_npes, // func name
3572 V, dV, ddV, R, P, flag, rdim
3573 );
3574 }
3575
3576 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
3577 const int& fdim) override {
3578 PYBIND11_OVERRIDE(
3579 int, // return type
3580 PyrCav_ForceField, // parent class
3581 ForceField_epes, // func name
3582 V, dV, ddV, R, flag, rdim, fdim
3583 );
3584 }
3585
3586 int ForceField_epes_PC1(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3587 const int& rdim, const int& fdim) override {
3588 PYBIND11_OVERRIDE(
3589 int, // return type
3590 PyrCav_ForceField, // parent class
3591 ForceField_epes_PC1, // func name
3592 V, dV, ddV, R, flag, rdim, fdim
3593 );
3594 }
3595
3596 int ForceField_epes_PC2(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3597 const int& rdim, const int& fdim) override {
3598 PYBIND11_OVERRIDE(
3599 int, // return type
3600 PyrCav_ForceField, // parent class
3601 ForceField_epes_PC2, // func name
3602 V, dV, ddV, R, flag, rdim, fdim
3603 );
3604 }
3605
3606 int ForceField_epes_PC3(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
3607 const int& rdim, const int& fdim) override {
3608 PYBIND11_OVERRIDE(
3609 int, // return type
3610 PyrCav_ForceField, // parent class
3611 ForceField_epes_PC3, // func name
3612 V, dV, ddV, R, flag, rdim, fdim
3613 );
3614 }
3615
3616 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
3617 PYBIND11_OVERRIDE(
3618 int, // return type
3619 Nad_ForceField, // parent class
3620 ForceField_spec, // func name
3621 nr, np, nm, rdim, fdim
3622 );
3623 }
3624
3625 int nspec() override {
3626 PYBIND11_OVERRIDE(
3627 int, // return type
3628 Nad_ForceField, // parent class
3629 nspec, // func name
3630
3631 );
3632 }
3633
3634 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
3635 const int& rdim, const int& itraj, const int& isamp) override {
3636 PYBIND11_OVERRIDE(
3637 int, // return type
3638 Nad_ForceField, // parent class
3639 ForceField_npes, // func name
3640 V, dV, ddV, R, P, flag, rdim, itraj, isamp
3641 );
3642 }
3643
3644 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
3645 const int& fdim, const int& itraj, const int& isamp) override {
3646 PYBIND11_OVERRIDE(
3647 int, // return type
3648 Nad_ForceField, // parent class
3649 ForceField_epes, // func name
3650 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
3651 );
3652 }
3653
3654 int CheckForceField() override {
3655 PYBIND11_OVERRIDE(
3656 int, // return type
3657 Nad_ForceField, // parent class
3658 CheckForceField, // func name
3659
3660 );
3661 }
3662
3663 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
3664 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
3665 const int& itraj, const int& isamp) override {
3666 PYBIND11_OVERRIDE(
3667 int, // return type
3668 Nad_ForceField, // parent class
3669 ForceField_write, // func name
3670 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
3671 );
3672 }
3673
3674 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
3675 PYBIND11_OVERRIDE(
3676 int, // return type
3677 Nad_ForceField, // parent class
3678 reduce_force, // func name
3679 fx, rho, dH, rdim, fdim
3680 );
3681 }
3682
3683 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
3684 PYBIND11_OVERRIDE(
3685 int, // return type
3686 BO_ForceField, // parent class
3687 ForceField_init, // func name
3688 nr, np, nm, rdim, itraj
3689 );
3690 }
3691
3692 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
3693 PYBIND11_OVERRIDE(
3694 int, // return type
3695 BO_ForceField, // parent class
3696 ForceField_spec, // func name
3697 nr, np, nm, rdim
3698 );
3699 }
3700
3701 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
3702 const int& itraj, const int& isamp) override {
3703 PYBIND11_OVERRIDE(
3704 int, // return type
3705 BO_ForceField, // parent class
3706 ForceField_write, // func name
3707 ofs0, nr, np, nm, rdim, itraj, isamp
3708 );
3709 }
3710 };
3711
3712 py::class_<PyrCav_ForceField, Nad_ForceField, PyTrampoline_PyrCav_ForceField>(models_m, "PyrCav_ForceField", py::dynamic_attr())
3713 .def(py::init<const Param&, const int&>())
3714 .def(py::init<const Param&>())
3715 .def(py::init<const std::string&>())
3716 .def("ref_WCI", &PyrCav_ForceField::ref_WCI, py::return_value_policy::reference_internal)
3717 .def("ref_ECI", &PyrCav_ForceField::ref_ECI, py::return_value_policy::reference_internal)
3718 .def("ref_KCI", &PyrCav_ForceField::ref_KCI, py::return_value_policy::reference_internal)
3719 .def_static("name", &PyrCav_ForceField::name)
3720 .def("ForceField_npes", [](PyrCav_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3721 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3722 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3723 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3724 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3725 const int& flag,
3726 const int& rdim) {
3727 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3728 }
3729 )
3730 .def("ForceField_epes", [](PyrCav_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3731 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3732 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3733 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3734 const int& flag,
3735 const int& rdim,
3736 const int& fdim) {
3737 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3738 }
3739 )
3740 .def("ForceField_epes_PC1", [](PyrCav_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3741 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3742 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3743 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3744 const int& flag,
3745 const int& rdim,
3746 const int& fdim) {
3747 return self.ForceField_epes_PC1(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3748 }
3749 )
3750 .def("ForceField_epes_PC2", [](PyrCav_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3751 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3752 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3753 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3754 const int& flag,
3755 const int& rdim,
3756 const int& fdim) {
3757 return self.ForceField_epes_PC2(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3758 }
3759 )
3760 .def("ForceField_epes_PC3", [](PyrCav_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3761 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3762 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3763 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3764 const int& flag,
3765 const int& rdim,
3766 const int& fdim) {
3767 return self.ForceField_epes_PC3(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3768 }
3769 )
3770 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
3771 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3772 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3773 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3774 const int& rdim,
3775 const int& fdim) {
3776 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
3777 }
3778 )
3779 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
3780 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3781 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3782 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3783 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3784 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3785 const int& flag,
3786 const int& rdim) {
3787 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3788 }
3789 )
3790 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3791 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3792 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3793 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3794 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3795 const int& flag,
3796 const int& rdim,
3797 const int& itraj,
3798 const int& isamp) {
3799 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
3800 }
3801 )
3802 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3803 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3804 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3805 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3806 const int& flag,
3807 const int& rdim,
3808 const int& fdim) {
3809 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
3810 }
3811 )
3812 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3813 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3814 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3815 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3816 const int& flag,
3817 const int& rdim,
3818 const int& fdim,
3819 const int& itraj,
3820 const int& isamp) {
3821 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
3822 }
3823 )
3824 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
3825 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
3826 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
3827 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
3828 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
3829 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3830 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3831 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3832 const int& rdim,
3833 const int& itraj) {
3834 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
3835 }
3836 )
3837 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3838 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3839 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3840 const int& rdim) {
3841 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
3842 }
3843 )
3844 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
3845 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3846 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3847 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3848 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3849 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3850 const int& flag,
3851 const int& rdim) {
3852 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
3853 }
3854 )
3855 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
3856 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
3857 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
3858 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
3859 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
3860 const int& flag,
3861 const int& rdim,
3862 const int& itraj,
3863 const int& isamp) {
3864 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
3865 }
3866 )
3867 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
3868 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3869 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3870 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3871 const int& rdim,
3872 const int& itraj) {
3873 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
3874 }
3875 )
3876 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
3877 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
3878 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
3879 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
3880 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
3881 const int& rdim,
3882 const int& itraj,
3883 const int& isamp) {
3884 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
3885 }
3886 );
3887
3888 class PyTrampoline_AtomCED_ForceField : public AtomCED_ForceField {
3889 public:
3890 using AtomCED_ForceField::AtomCED_ForceField;
3891
3892 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
3893 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
3894 PYBIND11_OVERRIDE(
3895 int, // return type
3896 AtomCED_ForceField, // parent class
3897 ForceField_init, // func name
3898 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
3899 );
3900 }
3901
3902 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
3903 const int& rdim) override {
3904 PYBIND11_OVERRIDE(
3905 int, // return type
3906 AtomCED_ForceField, // parent class
3907 ForceField_npes, // func name
3908 V, dV, ddV, R, P, flag, rdim
3909 );
3910 }
3911
3912 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
3913 const int& fdim) override {
3914 PYBIND11_OVERRIDE(
3915 int, // return type
3916 AtomCED_ForceField, // parent class
3917 ForceField_epes, // func name
3918 V, dV, ddV, R, flag, rdim, fdim
3919 );
3920 }
3921
3922 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
3923 PYBIND11_OVERRIDE(
3924 int, // return type
3925 AtomCED_ForceField, // parent class
3926 reduce_force, // func name
3927 fx, rho, dH, rdim, fdim
3928 );
3929 }
3930
3931 int get_Nb() override {
3932 PYBIND11_OVERRIDE(
3933 int, // return type
3934 AtomCED_ForceField, // parent class
3935 get_Nb, // func name
3936
3937 );
3938 }
3939
3940 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
3941 PYBIND11_OVERRIDE(
3942 int, // return type
3943 Nad_ForceField, // parent class
3944 ForceField_spec, // func name
3945 nr, np, nm, rdim, fdim
3946 );
3947 }
3948
3949 int nspec() override {
3950 PYBIND11_OVERRIDE(
3951 int, // return type
3952 Nad_ForceField, // parent class
3953 nspec, // func name
3954
3955 );
3956 }
3957
3958 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
3959 const int& rdim, const int& itraj, const int& isamp) override {
3960 PYBIND11_OVERRIDE(
3961 int, // return type
3962 Nad_ForceField, // parent class
3963 ForceField_npes, // func name
3964 V, dV, ddV, R, P, flag, rdim, itraj, isamp
3965 );
3966 }
3967
3968 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
3969 const int& fdim, const int& itraj, const int& isamp) override {
3970 PYBIND11_OVERRIDE(
3971 int, // return type
3972 Nad_ForceField, // parent class
3973 ForceField_epes, // func name
3974 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
3975 );
3976 }
3977
3978 int CheckForceField() override {
3979 PYBIND11_OVERRIDE(
3980 int, // return type
3981 Nad_ForceField, // parent class
3982 CheckForceField, // func name
3983
3984 );
3985 }
3986
3987 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
3988 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
3989 const int& itraj, const int& isamp) override {
3990 PYBIND11_OVERRIDE(
3991 int, // return type
3992 Nad_ForceField, // parent class
3993 ForceField_write, // func name
3994 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
3995 );
3996 }
3997
3998 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
3999 PYBIND11_OVERRIDE(
4000 int, // return type
4001 BO_ForceField, // parent class
4002 ForceField_init, // func name
4003 nr, np, nm, rdim, itraj
4004 );
4005 }
4006
4007 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
4008 PYBIND11_OVERRIDE(
4009 int, // return type
4010 BO_ForceField, // parent class
4011 ForceField_spec, // func name
4012 nr, np, nm, rdim
4013 );
4014 }
4015
4016 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
4017 const int& itraj, const int& isamp) override {
4018 PYBIND11_OVERRIDE(
4019 int, // return type
4020 BO_ForceField, // parent class
4021 ForceField_write, // func name
4022 ofs0, nr, np, nm, rdim, itraj, isamp
4023 );
4024 }
4025 };
4026
4027 py::class_<AtomCED_ForceField, Nad_ForceField, PyTrampoline_AtomCED_ForceField>(models_m, "AtomCED_ForceField", py::dynamic_attr())
4028 .def(py::init<const Param&, const int&>())
4029 .def(py::init<const Param&>())
4030 .def(py::init<const std::string&>())
4031 .def("ref_Hsys", &AtomCED_ForceField::ref_Hsys, py::return_value_policy::reference_internal)
4032 .def("ref_omegas", &AtomCED_ForceField::ref_omegas, py::return_value_policy::reference_internal)
4033 .def("ref_coeffs", &AtomCED_ForceField::ref_coeffs, py::return_value_policy::reference_internal)
4034 .def_static("name", &AtomCED_ForceField::name)
4035 .def("ForceField_npes", [](AtomCED_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4036 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4037 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4038 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4039 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4040 const int& flag,
4041 const int& rdim) {
4042 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4043 }
4044 )
4045 .def("ForceField_epes", [](AtomCED_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4046 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4047 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4048 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4049 const int& flag,
4050 const int& rdim,
4051 const int& fdim) {
4052 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
4053 }
4054 )
4055 .def("get_Nb", static_cast<int (AtomCED_ForceField::*)()>(&AtomCED_ForceField::get_Nb))
4056 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
4057 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4058 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4059 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4060 const int& rdim,
4061 const int& fdim) {
4062 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
4063 }
4064 )
4065 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
4066 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4067 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4068 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4069 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4070 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4071 const int& flag,
4072 const int& rdim) {
4073 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4074 }
4075 )
4076 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4077 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4078 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4079 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4080 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4081 const int& flag,
4082 const int& rdim,
4083 const int& itraj,
4084 const int& isamp) {
4085 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
4086 }
4087 )
4088 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4089 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4090 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4091 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4092 const int& flag,
4093 const int& rdim,
4094 const int& fdim) {
4095 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
4096 }
4097 )
4098 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4099 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4100 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4101 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4102 const int& flag,
4103 const int& rdim,
4104 const int& fdim,
4105 const int& itraj,
4106 const int& isamp) {
4107 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4108 }
4109 )
4110 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
4111 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
4112 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
4113 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
4114 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
4115 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4116 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4117 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4118 const int& rdim,
4119 const int& itraj) {
4120 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
4121 }
4122 )
4123 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4124 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4125 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4126 const int& rdim) {
4127 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
4128 }
4129 )
4130 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
4131 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4132 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4133 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4134 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4135 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4136 const int& flag,
4137 const int& rdim) {
4138 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4139 }
4140 )
4141 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4142 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4143 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4144 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4145 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4146 const int& flag,
4147 const int& rdim,
4148 const int& itraj,
4149 const int& isamp) {
4150 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
4151 }
4152 )
4153 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
4154 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4155 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4156 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4157 const int& rdim,
4158 const int& itraj) {
4159 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
4160 }
4161 )
4162 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
4163 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
4164 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4165 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4166 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4167 const int& rdim,
4168 const int& itraj,
4169 const int& isamp) {
4170 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
4171 }
4172 );
4173
4174 class PyTrampoline_ZnPc_ForceField : public ZnPc_ForceField {
4175 public:
4176 using ZnPc_ForceField::ZnPc_ForceField;
4177
4178 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
4179 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
4180 PYBIND11_OVERRIDE(
4181 int, // return type
4182 ZnPc_ForceField, // parent class
4183 ForceField_init, // func name
4184 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
4185 );
4186 }
4187
4188 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
4189 const int& rdim) override {
4190 PYBIND11_OVERRIDE(
4191 int, // return type
4192 ZnPc_ForceField, // parent class
4193 ForceField_npes, // func name
4194 V, dV, ddV, R, P, flag, rdim
4195 );
4196 }
4197
4198 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
4199 const int& fdim, const int& itraj, const int& isamp) override {
4200 PYBIND11_OVERRIDE(
4201 int, // return type
4202 ZnPc_ForceField, // parent class
4203 ForceField_epes, // func name
4204 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
4205 );
4206 }
4207
4208 int get_nbath() override {
4209 PYBIND11_OVERRIDE(
4210 int, // return type
4211 ZnPc_ForceField, // parent class
4212 get_nbath, // func name
4213
4214 );
4215 }
4216
4217 int get_Nb() override {
4218 PYBIND11_OVERRIDE(
4219 int, // return type
4220 ZnPc_ForceField, // parent class
4221 get_Nb, // func name
4222
4223 );
4224 }
4225
4226 int ForceField_epes_SpinBoson(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
4227 const int& rdim, const int& fdim, const int& itraj, const int& isamp) override {
4228 PYBIND11_OVERRIDE(
4229 int, // return type
4230 SystemBath_ForceField, // parent class
4231 ForceField_epes_SpinBoson, // func name
4232 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
4233 );
4234 }
4235
4236 int ForceField_epes_SiteExciton(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
4237 const int& rdim, const int& fdim, const int& itraj, const int& isamp) override {
4238 PYBIND11_OVERRIDE(
4239 int, // return type
4240 SystemBath_ForceField, // parent class
4241 ForceField_epes_SiteExciton, // func name
4242 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
4243 );
4244 }
4245
4246 int ForceField_epes_General(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag,
4247 const int& rdim, const int& fdim, const int& itraj, const int& isamp) override {
4248 PYBIND11_OVERRIDE(
4249 int, // return type
4250 SystemBath_ForceField, // parent class
4251 ForceField_epes_General, // func name
4252 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
4253 );
4254 }
4255
4256 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
4257 PYBIND11_OVERRIDE(
4258 int, // return type
4259 SystemBath_ForceField, // parent class
4260 reduce_force, // func name
4261 fx, rho, dH, rdim, fdim
4262 );
4263 }
4264
4265 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
4266 PYBIND11_OVERRIDE(
4267 int, // return type
4268 Nad_ForceField, // parent class
4269 ForceField_spec, // func name
4270 nr, np, nm, rdim, fdim
4271 );
4272 }
4273
4274 int nspec() override {
4275 PYBIND11_OVERRIDE(
4276 int, // return type
4277 Nad_ForceField, // parent class
4278 nspec, // func name
4279
4280 );
4281 }
4282
4283 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
4284 const int& rdim, const int& itraj, const int& isamp) override {
4285 PYBIND11_OVERRIDE(
4286 int, // return type
4287 Nad_ForceField, // parent class
4288 ForceField_npes, // func name
4289 V, dV, ddV, R, P, flag, rdim, itraj, isamp
4290 );
4291 }
4292
4293 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
4294 const int& fdim) override {
4295 PYBIND11_OVERRIDE(
4296 int, // return type
4297 Nad_ForceField, // parent class
4298 ForceField_epes, // func name
4299 V, dV, ddV, R, flag, rdim, fdim
4300 );
4301 }
4302
4303 int CheckForceField() override {
4304 PYBIND11_OVERRIDE(
4305 int, // return type
4306 Nad_ForceField, // parent class
4307 CheckForceField, // func name
4308
4309 );
4310 }
4311
4312 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
4313 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
4314 const int& itraj, const int& isamp) override {
4315 PYBIND11_OVERRIDE(
4316 int, // return type
4317 Nad_ForceField, // parent class
4318 ForceField_write, // func name
4319 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
4320 );
4321 }
4322
4323 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
4324 PYBIND11_OVERRIDE(
4325 int, // return type
4326 BO_ForceField, // parent class
4327 ForceField_init, // func name
4328 nr, np, nm, rdim, itraj
4329 );
4330 }
4331
4332 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
4333 PYBIND11_OVERRIDE(
4334 int, // return type
4335 BO_ForceField, // parent class
4336 ForceField_spec, // func name
4337 nr, np, nm, rdim
4338 );
4339 }
4340
4341 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
4342 const int& itraj, const int& isamp) override {
4343 PYBIND11_OVERRIDE(
4344 int, // return type
4345 BO_ForceField, // parent class
4346 ForceField_write, // func name
4347 ofs0, nr, np, nm, rdim, itraj, isamp
4348 );
4349 }
4350 };
4351
4352 py::class_<ZnPc_ForceField, SystemBath_ForceField, PyTrampoline_ZnPc_ForceField>(models_m, "ZnPc_ForceField", py::dynamic_attr())
4353 .def(py::init<const Param&>())
4354 .def(py::init<const std::string&>())
4355 .def("ref_idxarr_L", &ZnPc_ForceField::ref_idxarr_L, py::return_value_policy::reference_internal)
4356 .def("ref_idxarr_es", &ZnPc_ForceField::ref_idxarr_es, py::return_value_policy::reference_internal)
4357 .def("ref_idxarr_hs", &ZnPc_ForceField::ref_idxarr_hs, py::return_value_policy::reference_internal)
4358 .def("ref_dQe1", &ZnPc_ForceField::ref_dQe1, py::return_value_policy::reference_internal)
4359 .def("ref_dQe2", &ZnPc_ForceField::ref_dQe2, py::return_value_policy::reference_internal)
4360 .def("ref_dQc", &ZnPc_ForceField::ref_dQc, py::return_value_policy::reference_internal)
4361 .def("ref_dQa", &ZnPc_ForceField::ref_dQa, py::return_value_policy::reference_internal)
4362 .def("ref_w2dQe1", &ZnPc_ForceField::ref_w2dQe1, py::return_value_policy::reference_internal)
4363 .def("ref_w2dQe2", &ZnPc_ForceField::ref_w2dQe2, py::return_value_policy::reference_internal)
4364 .def("ref_w2dQc", &ZnPc_ForceField::ref_w2dQc, py::return_value_policy::reference_internal)
4365 .def("ref_w2dQa", &ZnPc_ForceField::ref_w2dQa, py::return_value_policy::reference_internal)
4366 .def("ref_Etilde", &ZnPc_ForceField::ref_Etilde, py::return_value_policy::reference_internal)
4367 .def("ref_Vtilde", &ZnPc_ForceField::ref_Vtilde, py::return_value_policy::reference_internal)
4368 .def("ref_te_tilde", &ZnPc_ForceField::ref_te_tilde, py::return_value_policy::reference_internal)
4369 .def("ref_th_tilde", &ZnPc_ForceField::ref_th_tilde, py::return_value_policy::reference_internal)
4370 .def("ref_tect_tilde", &ZnPc_ForceField::ref_tect_tilde, py::return_value_policy::reference_internal)
4371 .def("ref_thct_tilde", &ZnPc_ForceField::ref_thct_tilde, py::return_value_policy::reference_internal)
4372 .def("ref_eigen_E", &ZnPc_ForceField::ref_eigen_E, py::return_value_policy::reference_internal)
4373 .def("ref_eigen_T", &ZnPc_ForceField::ref_eigen_T, py::return_value_policy::reference_internal)
4374 .def_static("name", &ZnPc_ForceField::name)
4375 .def("index", static_cast<int (ZnPc_ForceField::*)(const int&, const int&, const int&)>(&ZnPc_ForceField::index))
4376 .def("init_Hamiltonian", static_cast<int (ZnPc_ForceField::*)()>(&ZnPc_ForceField::init_Hamiltonian))
4377 .def("ForceField_npes", [](ZnPc_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4378 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4379 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4380 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4381 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4382 const int& flag,
4383 const int& rdim) {
4384 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4385 }
4386 )
4387 .def("ForceField_epes", [](ZnPc_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4388 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4389 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4390 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4391 const int& flag,
4392 const int& rdim,
4393 const int& fdim,
4394 const int& itraj,
4395 const int& isamp) {
4396 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4397 }
4398 )
4399 .def("get_nbath", static_cast<int (ZnPc_ForceField::*)()>(&ZnPc_ForceField::get_nbath))
4400 .def("get_Nb", static_cast<int (ZnPc_ForceField::*)()>(&ZnPc_ForceField::get_Nb))
4401 .def("ForceField_npes", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4402 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4403 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4404 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4405 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4406 const int& flag,
4407 const int& rdim) {
4408 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4409 }
4410 )
4411 .def("ForceField_epes", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4412 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4413 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4414 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4415 const int& flag,
4416 const int& rdim,
4417 const int& fdim,
4418 const int& itraj,
4419 const int& isamp) {
4420 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4421 }
4422 )
4423 .def("ForceField_epes_SpinBoson", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4424 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4425 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4426 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4427 const int& flag,
4428 const int& rdim,
4429 const int& fdim,
4430 const int& itraj,
4431 const int& isamp) {
4432 return self.ForceField_epes_SpinBoson(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4433 }
4434 )
4435 .def("ForceField_epes_SiteExciton", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4436 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4437 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4438 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4439 const int& flag,
4440 const int& rdim,
4441 const int& fdim,
4442 const int& itraj,
4443 const int& isamp) {
4444 return self.ForceField_epes_SiteExciton(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4445 }
4446 )
4447 .def("ForceField_epes_General", [](SystemBath_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4448 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4449 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4450 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4451 const int& flag,
4452 const int& rdim,
4453 const int& fdim,
4454 const int& itraj,
4455 const int& isamp) {
4456 return self.ForceField_epes_General(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4457 }
4458 )
4459 .def("get_nbath", static_cast<int (SystemBath_ForceField::*)()>(&SystemBath_ForceField::get_nbath))
4460 .def("get_Nb", static_cast<int (SystemBath_ForceField::*)()>(&SystemBath_ForceField::get_Nb))
4461 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
4462 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4463 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4464 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4465 const int& rdim,
4466 const int& fdim) {
4467 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
4468 }
4469 )
4470 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
4471 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4472 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4473 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4474 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4475 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4476 const int& flag,
4477 const int& rdim) {
4478 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4479 }
4480 )
4481 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4482 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4483 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4484 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4485 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4486 const int& flag,
4487 const int& rdim,
4488 const int& itraj,
4489 const int& isamp) {
4490 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
4491 }
4492 )
4493 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4494 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4495 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4496 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4497 const int& flag,
4498 const int& rdim,
4499 const int& fdim) {
4500 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
4501 }
4502 )
4503 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4504 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4505 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4506 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4507 const int& flag,
4508 const int& rdim,
4509 const int& fdim,
4510 const int& itraj,
4511 const int& isamp) {
4512 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4513 }
4514 )
4515 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
4516 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
4517 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
4518 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
4519 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
4520 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4521 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4522 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4523 const int& rdim,
4524 const int& itraj) {
4525 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
4526 }
4527 )
4528 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4529 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4530 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4531 const int& rdim) {
4532 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
4533 }
4534 )
4535 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
4536 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4537 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4538 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4539 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4540 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4541 const int& flag,
4542 const int& rdim) {
4543 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4544 }
4545 )
4546 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4547 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4548 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4549 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4550 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4551 const int& flag,
4552 const int& rdim,
4553 const int& itraj,
4554 const int& isamp) {
4555 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
4556 }
4557 )
4558 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
4559 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4560 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4561 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4562 const int& rdim,
4563 const int& itraj) {
4564 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
4565 }
4566 )
4567 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
4568 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
4569 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4570 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4571 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4572 const int& rdim,
4573 const int& itraj,
4574 const int& isamp) {
4575 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
4576 }
4577 );
4578
4579 class PyTrampoline_GAUSS16_ForceField : public GAUSS16_ForceField {
4580 public:
4581 using GAUSS16_ForceField::GAUSS16_ForceField;
4582
4583 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
4584 int& eocc, const int& rdim, const int& fdim, const int& icycle) override {
4585 PYBIND11_OVERRIDE(
4586 int, // return type
4587 GAUSS16_ForceField, // parent class
4588 ForceField_init, // func name
4589 nr, np, nm, erho, eeac, eocc, rdim, fdim, icycle
4590 );
4591 }
4592
4593 int ForceField_epes(kids_real* E, kids_real* dE, kids_real* ddE,
4594 kids_real* R,
4595 const int& flag, const int& rdim, const int& fdim) override {
4596 PYBIND11_OVERRIDE(
4597 int, // return type
4598 GAUSS16_ForceField, // parent class
4599 ForceField_epes, // func name
4600 E, dE, ddE, R, flag, rdim, fdim
4601 );
4602 }
4603
4604 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
4605 PYBIND11_OVERRIDE(
4606 int, // return type
4607 Nad_ForceField, // parent class
4608 ForceField_spec, // func name
4609 nr, np, nm, rdim, fdim
4610 );
4611 }
4612
4613 int nspec() override {
4614 PYBIND11_OVERRIDE(
4615 int, // return type
4616 Nad_ForceField, // parent class
4617 nspec, // func name
4618
4619 );
4620 }
4621
4622 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
4623 const int& rdim) override {
4624 PYBIND11_OVERRIDE(
4625 int, // return type
4626 Nad_ForceField, // parent class
4627 ForceField_npes, // func name
4628 V, dV, ddV, R, P, flag, rdim
4629 );
4630 }
4631
4632 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
4633 const int& rdim, const int& itraj, const int& isamp) override {
4634 PYBIND11_OVERRIDE(
4635 int, // return type
4636 Nad_ForceField, // parent class
4637 ForceField_npes, // func name
4638 V, dV, ddV, R, P, flag, rdim, itraj, isamp
4639 );
4640 }
4641
4642 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
4643 const int& fdim, const int& itraj, const int& isamp) override {
4644 PYBIND11_OVERRIDE(
4645 int, // return type
4646 Nad_ForceField, // parent class
4647 ForceField_epes, // func name
4648 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
4649 );
4650 }
4651
4652 int CheckForceField() override {
4653 PYBIND11_OVERRIDE(
4654 int, // return type
4655 Nad_ForceField, // parent class
4656 CheckForceField, // func name
4657
4658 );
4659 }
4660
4661 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
4662 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
4663 const int& itraj, const int& isamp) override {
4664 PYBIND11_OVERRIDE(
4665 int, // return type
4666 Nad_ForceField, // parent class
4667 ForceField_write, // func name
4668 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
4669 );
4670 }
4671
4672 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
4673 PYBIND11_OVERRIDE(
4674 int, // return type
4675 Nad_ForceField, // parent class
4676 reduce_force, // func name
4677 fx, rho, dH, rdim, fdim
4678 );
4679 }
4680
4681 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
4682 PYBIND11_OVERRIDE(
4683 int, // return type
4684 BO_ForceField, // parent class
4685 ForceField_init, // func name
4686 nr, np, nm, rdim, itraj
4687 );
4688 }
4689
4690 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
4691 PYBIND11_OVERRIDE(
4692 int, // return type
4693 BO_ForceField, // parent class
4694 ForceField_spec, // func name
4695 nr, np, nm, rdim
4696 );
4697 }
4698
4699 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
4700 const int& itraj, const int& isamp) override {
4701 PYBIND11_OVERRIDE(
4702 int, // return type
4703 BO_ForceField, // parent class
4704 ForceField_write, // func name
4705 ofs0, nr, np, nm, rdim, itraj, isamp
4706 );
4707 }
4708 };
4709
4710 py::class_<GAUSS16_ForceField, Nad_ForceField, PyTrampoline_GAUSS16_ForceField>(models_m, "GAUSS16_ForceField", py::dynamic_attr())
4711 .def(py::init<const Param&>())
4712 .def(py::init<const std::string&>())
4713 .def("ref_atoms", &GAUSS16_ForceField::ref_atoms, py::return_value_policy::reference_internal)
4714 .def("ref_mod_Hess", &GAUSS16_ForceField::ref_mod_Hess, py::return_value_policy::reference_internal)
4715 .def("ref_mod_Tmat", &GAUSS16_ForceField::ref_mod_Tmat, py::return_value_policy::reference_internal)
4716 .def("ref_nr_samp", &GAUSS16_ForceField::ref_nr_samp, py::return_value_policy::reference_internal)
4717 .def("ref_np_samp", &GAUSS16_ForceField::ref_np_samp, py::return_value_policy::reference_internal)
4718 .def_static("name", &GAUSS16_ForceField::name)
4719 .def("ForceField_epes", [](GAUSS16_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> E_arr,
4720 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dE_arr,
4721 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddE_arr,
4722 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4723 const int& flag,
4724 const int& rdim,
4725 const int& fdim) {
4726 return self.ForceField_epes(E_arr.mutable_data(), dE_arr.mutable_data(), ddE_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
4727 }
4728 )
4729 .def("parse_g16", static_cast<int (GAUSS16_ForceField::*)(const std::string&)>(&GAUSS16_ForceField::parse_g16))
4730 .def("calc_hess", [](GAUSS16_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4731 const int& rdim) {
4732 return self.calc_hess(R_arr.mutable_data(), rdim);
4733 }
4734 )
4735 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
4736 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4737 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4738 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4739 const int& rdim,
4740 const int& fdim) {
4741 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
4742 }
4743 )
4744 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
4745 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4746 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4747 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4748 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4749 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4750 const int& flag,
4751 const int& rdim) {
4752 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4753 }
4754 )
4755 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4756 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4757 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4758 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4759 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4760 const int& flag,
4761 const int& rdim,
4762 const int& itraj,
4763 const int& isamp) {
4764 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
4765 }
4766 )
4767 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4768 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4769 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4770 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4771 const int& flag,
4772 const int& rdim,
4773 const int& fdim) {
4774 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
4775 }
4776 )
4777 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4778 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4779 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4780 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4781 const int& flag,
4782 const int& rdim,
4783 const int& fdim,
4784 const int& itraj,
4785 const int& isamp) {
4786 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
4787 }
4788 )
4789 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
4790 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
4791 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
4792 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
4793 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
4794 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4795 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4796 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4797 const int& rdim,
4798 const int& itraj) {
4799 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
4800 }
4801 )
4802 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4803 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4804 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4805 const int& rdim) {
4806 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
4807 }
4808 )
4809 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
4810 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4811 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4812 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4813 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4814 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4815 const int& flag,
4816 const int& rdim) {
4817 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
4818 }
4819 )
4820 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
4821 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
4822 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
4823 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
4824 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
4825 const int& flag,
4826 const int& rdim,
4827 const int& itraj,
4828 const int& isamp) {
4829 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
4830 }
4831 )
4832 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
4833 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4834 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4835 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4836 const int& rdim,
4837 const int& itraj) {
4838 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
4839 }
4840 )
4841 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
4842 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
4843 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
4844 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
4845 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
4846 const int& rdim,
4847 const int& itraj,
4848 const int& isamp) {
4849 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
4850 }
4851 );
4852
4853 class PyTrampoline_MNDO99_ForceField : public MNDO99_ForceField {
4854 public:
4855 using MNDO99_ForceField::MNDO99_ForceField;
4856
4857 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
4858 int& eocc, const int& rdim, const int& fdim, const int& itraj) override {
4859 PYBIND11_OVERRIDE(
4860 int, // return type
4861 MNDO99_ForceField, // parent class
4862 ForceField_init, // func name
4863 nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj
4864 );
4865 }
4866
4867 int ForceField_epes(kids_real* E, kids_real* dE, kids_real* ddE,
4868 kids_real* R,
4869 const int& flag,
4870 const int& rdim, const int& fdim,
4871 const int& itraj, const int& istep) override {
4872 PYBIND11_OVERRIDE(
4873 int, // return type
4874 MNDO99_ForceField, // parent class
4875 ForceField_epes, // func name
4876 E, dE, ddE, R, flag, rdim, fdim, itraj, istep
4877 );
4878 }
4879
4880 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
4881 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
4882 const int& itraj, const int& istep) override {
4883 PYBIND11_OVERRIDE(
4884 int, // return type
4885 MNDO99_ForceField, // parent class
4886 ForceField_write, // func name
4887 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, istep
4888 );
4889 }
4890
4891 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
4892 PYBIND11_OVERRIDE(
4893 int, // return type
4894 Nad_ForceField, // parent class
4895 ForceField_spec, // func name
4896 nr, np, nm, rdim, fdim
4897 );
4898 }
4899
4900 int nspec() override {
4901 PYBIND11_OVERRIDE(
4902 int, // return type
4903 Nad_ForceField, // parent class
4904 nspec, // func name
4905
4906 );
4907 }
4908
4909 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
4910 const int& rdim) override {
4911 PYBIND11_OVERRIDE(
4912 int, // return type
4913 Nad_ForceField, // parent class
4914 ForceField_npes, // func name
4915 V, dV, ddV, R, P, flag, rdim
4916 );
4917 }
4918
4919 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
4920 const int& rdim, const int& itraj, const int& isamp) override {
4921 PYBIND11_OVERRIDE(
4922 int, // return type
4923 Nad_ForceField, // parent class
4924 ForceField_npes, // func name
4925 V, dV, ddV, R, P, flag, rdim, itraj, isamp
4926 );
4927 }
4928
4929 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
4930 const int& fdim) override {
4931 PYBIND11_OVERRIDE(
4932 int, // return type
4933 Nad_ForceField, // parent class
4934 ForceField_epes, // func name
4935 V, dV, ddV, R, flag, rdim, fdim
4936 );
4937 }
4938
4939 int CheckForceField() override {
4940 PYBIND11_OVERRIDE(
4941 int, // return type
4942 Nad_ForceField, // parent class
4943 CheckForceField, // func name
4944
4945 );
4946 }
4947
4948 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
4949 PYBIND11_OVERRIDE(
4950 int, // return type
4951 Nad_ForceField, // parent class
4952 reduce_force, // func name
4953 fx, rho, dH, rdim, fdim
4954 );
4955 }
4956
4957 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
4958 PYBIND11_OVERRIDE(
4959 int, // return type
4960 BO_ForceField, // parent class
4961 ForceField_init, // func name
4962 nr, np, nm, rdim, itraj
4963 );
4964 }
4965
4966 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
4967 PYBIND11_OVERRIDE(
4968 int, // return type
4969 BO_ForceField, // parent class
4970 ForceField_spec, // func name
4971 nr, np, nm, rdim
4972 );
4973 }
4974
4975 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
4976 const int& itraj, const int& isamp) override {
4977 PYBIND11_OVERRIDE(
4978 int, // return type
4979 BO_ForceField, // parent class
4980 ForceField_write, // func name
4981 ofs0, nr, np, nm, rdim, itraj, isamp
4982 );
4983 }
4984 };
4985
4986 py::class_<MNDO99_ForceField, Nad_ForceField, PyTrampoline_MNDO99_ForceField>(models_m, "MNDO99_ForceField", py::dynamic_attr())
4987 .def(py::init<const Param&>())
4988 .def(py::init<const std::string&>())
4989 .def("ref_atoms", &MNDO99_ForceField::ref_atoms, py::return_value_policy::reference_internal)
4990 .def("ref_mod_Hess", &MNDO99_ForceField::ref_mod_Hess, py::return_value_policy::reference_internal)
4991 .def("ref_mod_Tmat", &MNDO99_ForceField::ref_mod_Tmat, py::return_value_policy::reference_internal)
4992 .def("ref_nr_samp", &MNDO99_ForceField::ref_nr_samp, py::return_value_policy::reference_internal)
4993 .def("ref_np_samp", &MNDO99_ForceField::ref_np_samp, py::return_value_policy::reference_internal)
4994 .def("ref_nac_prev", &MNDO99_ForceField::ref_nac_prev, py::return_value_policy::reference_internal)
4995 .def("ref_nac", &MNDO99_ForceField::ref_nac, py::return_value_policy::reference_internal)
4996 .def("ref_ener", &MNDO99_ForceField::ref_ener, py::return_value_policy::reference_internal)
4997 .def("ref_ener2", &MNDO99_ForceField::ref_ener2, py::return_value_policy::reference_internal)
4998 .def("ref_grad", &MNDO99_ForceField::ref_grad, py::return_value_policy::reference_internal)
4999 .def_static("name", &MNDO99_ForceField::name)
5000 .def("ForceField_epes", [](MNDO99_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> E_arr,
5001 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dE_arr,
5002 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddE_arr,
5003 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5004 const int& flag,
5005 const int& rdim,
5006 const int& fdim,
5007 const int& itraj,
5008 const int& istep) {
5009 return self.ForceField_epes(E_arr.mutable_data(), dE_arr.mutable_data(), ddE_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, istep);
5010 }
5011 )
5012 .def("parse_mndo99", static_cast<int (MNDO99_ForceField::*)(const std::string&)>(&MNDO99_ForceField::parse_mndo99))
5013 .def("new_keyword", static_cast<std::string (MNDO99_ForceField::*)(const MNDO99KW_map&)>(&MNDO99_ForceField::new_keyword))
5014 .def("new_task", [](MNDO99_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5015 const std::string& file,
5016 const std::string& task_flag,
5017 const int& rdim) {
5018 return self.new_task(R_arr.mutable_data(), file, task_flag, rdim);
5019 }
5020 )
5021 .def("track_nac_sign", static_cast<int (MNDO99_ForceField::*)()>(&MNDO99_ForceField::track_nac_sign))
5022 .def("parse_standard", static_cast<int (MNDO99_ForceField::*)(const std::string&)>(&MNDO99_ForceField::parse_standard))
5023 .def("parse_hessian", static_cast<int (MNDO99_ForceField::*)(const std::string&)>(&MNDO99_ForceField::parse_hessian))
5024 .def("calc_normalmode", [](MNDO99_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5025 const int& rdim) {
5026 return self.calc_normalmode(R_arr.mutable_data(), rdim);
5027 }
5028 )
5029 .def("calc_samp", static_cast<int (MNDO99_ForceField::*)()>(&MNDO99_ForceField::calc_samp))
5030 .def("calc_scan", static_cast<int (MNDO99_ForceField::*)()>(&MNDO99_ForceField::calc_scan))
5031 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
5032 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5033 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5034 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5035 const int& rdim,
5036 const int& fdim) {
5037 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
5038 }
5039 )
5040 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
5041 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5042 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5043 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5044 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5045 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5046 const int& flag,
5047 const int& rdim) {
5048 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
5049 }
5050 )
5051 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5052 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5053 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5054 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5055 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5056 const int& flag,
5057 const int& rdim,
5058 const int& itraj,
5059 const int& isamp) {
5060 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
5061 }
5062 )
5063 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5064 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5065 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5066 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5067 const int& flag,
5068 const int& rdim,
5069 const int& fdim) {
5070 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
5071 }
5072 )
5073 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5074 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5075 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5076 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5077 const int& flag,
5078 const int& rdim,
5079 const int& fdim,
5080 const int& itraj,
5081 const int& isamp) {
5082 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
5083 }
5084 )
5085 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
5086 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
5087 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
5088 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
5089 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
5090 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5091 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5092 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5093 const int& rdim,
5094 const int& itraj) {
5095 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
5096 }
5097 )
5098 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5099 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5100 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5101 const int& rdim) {
5102 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
5103 }
5104 )
5105 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
5106 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5107 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5108 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5109 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5110 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5111 const int& flag,
5112 const int& rdim) {
5113 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
5114 }
5115 )
5116 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5117 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5118 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5119 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5120 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5121 const int& flag,
5122 const int& rdim,
5123 const int& itraj,
5124 const int& isamp) {
5125 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
5126 }
5127 )
5128 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
5129 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5130 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5131 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5132 const int& rdim,
5133 const int& itraj) {
5134 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
5135 }
5136 )
5137 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
5138 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
5139 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5140 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5141 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5142 const int& rdim,
5143 const int& itraj,
5144 const int& isamp) {
5145 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
5146 }
5147 );
5148
5149 class PyTrampoline_PythonFF_ForceField : public PythonFF_ForceField {
5150 public:
5151 using PythonFF_ForceField::PythonFF_ForceField;
5152
5153 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, kids_complex* erho, kids_complex* eeac,
5154 int& eocc, const int& rdim, const int& fdim, const int& itraj) override {
5155 PYBIND11_OVERRIDE(
5156 int, // return type
5157 PythonFF_ForceField, // parent class
5158 ForceField_init, // func name
5159 nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj
5160 );
5161 }
5162
5163 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
5164 const int& rdim) override {
5165 PYBIND11_OVERRIDE(
5166 int, // return type
5167 PythonFF_ForceField, // parent class
5168 ForceField_npes, // func name
5169 V, dV, ddV, R, P, flag, rdim
5170 );
5171 }
5172
5173 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
5174 const int& fdim) override {
5175 PYBIND11_OVERRIDE(
5176 int, // return type
5177 PythonFF_ForceField, // parent class
5178 ForceField_epes, // func name
5179 V, dV, ddV, R, flag, rdim, fdim
5180 );
5181 }
5182
5183 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& fdim) override {
5184 PYBIND11_OVERRIDE(
5185 int, // return type
5186 Nad_ForceField, // parent class
5187 ForceField_spec, // func name
5188 nr, np, nm, rdim, fdim
5189 );
5190 }
5191
5192 int nspec() override {
5193 PYBIND11_OVERRIDE(
5194 int, // return type
5195 Nad_ForceField, // parent class
5196 nspec, // func name
5197
5198 );
5199 }
5200
5201 int ForceField_npes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, kids_real* P, const int& flag,
5202 const int& rdim, const int& itraj, const int& isamp) override {
5203 PYBIND11_OVERRIDE(
5204 int, // return type
5205 Nad_ForceField, // parent class
5206 ForceField_npes, // func name
5207 V, dV, ddV, R, P, flag, rdim, itraj, isamp
5208 );
5209 }
5210
5211 int ForceField_epes(kids_real* V, kids_real* dV, kids_real* ddV, kids_real* R, const int& flag, const int& rdim,
5212 const int& fdim, const int& itraj, const int& isamp) override {
5213 PYBIND11_OVERRIDE(
5214 int, // return type
5215 Nad_ForceField, // parent class
5216 ForceField_epes, // func name
5217 V, dV, ddV, R, flag, rdim, fdim, itraj, isamp
5218 );
5219 }
5220
5221 int CheckForceField() override {
5222 PYBIND11_OVERRIDE(
5223 int, // return type
5224 Nad_ForceField, // parent class
5225 CheckForceField, // func name
5226
5227 );
5228 }
5229
5230 int ForceField_write(std::ofstream& ofs0, std::ofstream& ofs1, kids_real* nr, kids_real* np, kids_real* nm,
5231 kids_complex* erho, kids_complex* eeac, int& eocc, const int& rdim, const int& fdim,
5232 const int& itraj, const int& isamp) override {
5233 PYBIND11_OVERRIDE(
5234 int, // return type
5235 Nad_ForceField, // parent class
5236 ForceField_write, // func name
5237 ofs0, ofs1, nr, np, nm, erho, eeac, eocc, rdim, fdim, itraj, isamp
5238 );
5239 }
5240
5241 int reduce_force(kids_real* fx, kids_complex* rho, kids_real* dH, const int& rdim, const int& fdim) override {
5242 PYBIND11_OVERRIDE(
5243 int, // return type
5244 Nad_ForceField, // parent class
5245 reduce_force, // func name
5246 fx, rho, dH, rdim, fdim
5247 );
5248 }
5249
5250 int ForceField_init(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim, const int& itraj) override {
5251 PYBIND11_OVERRIDE(
5252 int, // return type
5253 BO_ForceField, // parent class
5254 ForceField_init, // func name
5255 nr, np, nm, rdim, itraj
5256 );
5257 }
5258
5259 int ForceField_spec(kids_real* nr, kids_real* np, kids_real* nm, const int& rdim) override {
5260 PYBIND11_OVERRIDE(
5261 int, // return type
5262 BO_ForceField, // parent class
5263 ForceField_spec, // func name
5264 nr, np, nm, rdim
5265 );
5266 }
5267
5268 int ForceField_write(std::ofstream& ofs0, kids_real* nr, kids_real* np, kids_real* nm, const int& rdim,
5269 const int& itraj, const int& isamp) override {
5270 PYBIND11_OVERRIDE(
5271 int, // return type
5272 BO_ForceField, // parent class
5273 ForceField_write, // func name
5274 ofs0, nr, np, nm, rdim, itraj, isamp
5275 );
5276 }
5277 };
5278
5279 py::class_<PythonFF_ForceField, Nad_ForceField, PyTrampoline_PythonFF_ForceField>(models_m, "PythonFF_ForceField", py::dynamic_attr())
5280 .def(py::init<const Param&>())
5281 .def(py::init<const std::string&>())
5282 .def_static("name", &PythonFF_ForceField::name)
5283 .def("ForceField_npes", [](PythonFF_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5284 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5285 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5286 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5287 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5288 const int& flag,
5289 const int& rdim) {
5290 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
5291 }
5292 )
5293 .def("ForceField_epes", [](PythonFF_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5294 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5295 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5296 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5297 const int& flag,
5298 const int& rdim,
5299 const int& fdim) {
5300 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
5301 }
5302 )
5303 .def("get_F", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::get_F))
5304 .def("ForceField_spec", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5305 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5306 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5307 const int& rdim,
5308 const int& fdim) {
5309 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, fdim);
5310 }
5311 )
5312 .def("nspec", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::nspec))
5313 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5314 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5315 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5316 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5317 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5318 const int& flag,
5319 const int& rdim) {
5320 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
5321 }
5322 )
5323 .def("ForceField_npes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5324 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5325 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5326 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5327 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5328 const int& flag,
5329 const int& rdim,
5330 const int& itraj,
5331 const int& isamp) {
5332 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
5333 }
5334 )
5335 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5336 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5337 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5338 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5339 const int& flag,
5340 const int& rdim,
5341 const int& fdim) {
5342 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim);
5343 }
5344 )
5345 .def("ForceField_epes", [](Nad_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5346 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5347 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5348 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5349 const int& flag,
5350 const int& rdim,
5351 const int& fdim,
5352 const int& itraj,
5353 const int& isamp) {
5354 return self.ForceField_epes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), flag, rdim, fdim, itraj, isamp);
5355 }
5356 )
5357 .def("CheckForceField", static_cast<int (Nad_ForceField::*)()>(&Nad_ForceField::CheckForceField))
5358 .def("get_N", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_N))
5359 .def("get_Ndim", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::get_Ndim))
5360 .def("Suggest_dt", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_dt))
5361 .def("Suggest_tend", static_cast<double (BO_ForceField::*)()>(&BO_ForceField::Suggest_tend))
5362 .def("ForceField_init", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5363 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5364 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5365 const int& rdim,
5366 const int& itraj) {
5367 return self.ForceField_init(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
5368 }
5369 )
5370 .def("ForceField_spec", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5371 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5372 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5373 const int& rdim) {
5374 return self.ForceField_spec(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim);
5375 }
5376 )
5377 .def("nspec", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::nspec))
5378 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5379 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5380 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5381 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5382 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5383 const int& flag,
5384 const int& rdim) {
5385 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim);
5386 }
5387 )
5388 .def("ForceField_npes", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> V_arr,
5389 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dV_arr,
5390 py::array_t<kids_real, py::array::c_style | py::array::forcecast> ddV_arr,
5391 py::array_t<kids_real, py::array::c_style | py::array::forcecast> R_arr,
5392 py::array_t<kids_real, py::array::c_style | py::array::forcecast> P_arr,
5393 const int& flag,
5394 const int& rdim,
5395 const int& itraj,
5396 const int& isamp) {
5397 return self.ForceField_npes(V_arr.mutable_data(), dV_arr.mutable_data(), ddV_arr.mutable_data(), R_arr.mutable_data(), P_arr.mutable_data(), flag, rdim, itraj, isamp);
5398 }
5399 )
5400 .def("ForceField_init_default_build", static_cast<int (BO_ForceField::*)(const double&, const int&)>(&BO_ForceField::ForceField_init_default_build))
5401 .def("ForceField_init_default", [](BO_ForceField& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5402 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5403 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5404 const int& rdim,
5405 const int& itraj) {
5406 return self.ForceField_init_default(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj);
5407 }
5408 )
5409 .def("CheckForceField", static_cast<int (BO_ForceField::*)()>(&BO_ForceField::CheckForceField))
5410 .def("ForceField_write", [](BO_ForceField& self, std::ofstream& ofs0,
5411 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
5412 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
5413 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
5414 const int& rdim,
5415 const int& itraj,
5416 const int& isamp) {
5417 return self.ForceField_write(ofs0, nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), rdim, itraj, isamp);
5418 }
5419 );
5420
5421 class PyTrampoline_Solver : public Solver {
5422 public:
5423 using Solver::Solver;
5424
5425 int run_impl() override {
5426 PYBIND11_OVERRIDE(
5427 int, // return type
5428 Solver, // parent class
5429 run_impl, // func name
5430
5431 );
5432 }
5433
5434 int run_parallel() override {
5435 PYBIND11_OVERRIDE(
5436 int, // return type
5437 Solver, // parent class
5438 run_parallel, // func name
5439
5440 );
5441 }
5442
5443 int init(int flag) override {
5444 PYBIND11_OVERRIDE(
5445 int, // return type
5446 Solver, // parent class
5447 init, // func name
5448 flag
5449 );
5450 }
5451
5452 int final(int flag) override {
5453 PYBIND11_OVERRIDE(
5454 int, // return type
5455 Solver, // parent class
5456 final, // func name
5457 flag
5458 );
5459 }
5460
5461 int cache(int flag) override {
5462 PYBIND11_OVERRIDE(
5463 int, // return type
5464 Solver, // parent class
5465 cache, // func name
5466 flag
5467 );
5468 }
5469 };
5470
5471 py::class_<Solver, Model, PyTrampoline_Solver>(solvers_m, "Solver", py::dynamic_attr())
5472 .def(py::init<const Param&, Model*>())
5473 .def(py::init<const std::string&, Model*>())
5474 .def_readwrite("save", &Solver::save)
5475 .def_readwrite("para_flag", &Solver::para_flag)
5476 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
5477 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
5478 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
5479 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
5480 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
5481 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
5482
5483 class PyTrampoline_Traj_Solver : public Traj_Solver {
5484 public:
5485 using Traj_Solver::Traj_Solver;
5486
5487 int ff_calc1(const int& level) override {
5488 PYBIND11_OVERRIDE(
5489 int, // return type
5490 Traj_Solver, // parent class
5491 ff_calc1, // func name
5492 level
5493 );
5494 }
5495
5496 int init_ofs(const int& itraj) override {
5497 PYBIND11_OVERRIDE(
5498 int, // return type
5499 Traj_Solver, // parent class
5500 init_ofs, // func name
5501 itraj
5502 );
5503 }
5504
5505 int init(const int& itraj) override {
5506 PYBIND11_OVERRIDE(
5507 int, // return type
5508 Traj_Solver, // parent class
5509 init, // func name
5510 itraj
5511 );
5512 }
5513
5514 int final(const int& itraj) override {
5515 PYBIND11_OVERRIDE(
5516 int, // return type
5517 Traj_Solver, // parent class
5518 final, // func name
5519 itraj
5520 );
5521 }
5522
5523 int rst_output(const int& traj_in) override {
5524 PYBIND11_OVERRIDE(
5525 int, // return type
5526 Traj_Solver, // parent class
5527 rst_output, // func name
5528 traj_in
5529 );
5530 }
5531
5532 int rst_read(const int& traj_in) override {
5533 PYBIND11_OVERRIDE(
5534 int, // return type
5535 Traj_Solver, // parent class
5536 rst_read, // func name
5537 traj_in
5538 );
5539 }
5540
5541 int check_break(int& succ) override {
5542 PYBIND11_OVERRIDE(
5543 int, // return type
5544 Traj_Solver, // parent class
5545 check_break, // func name
5546 succ
5547 );
5548 }
5549
5550 int traj_property(const kids_real& dt) override {
5551 PYBIND11_OVERRIDE(
5552 int, // return type
5553 Traj_Solver, // parent class
5554 traj_property, // func name
5555 dt
5556 );
5557 }
5558
5559 int update_r(const kids_real& dt) override {
5560 PYBIND11_OVERRIDE(
5561 int, // return type
5562 Traj_Solver, // parent class
5563 update_r, // func name
5564 dt
5565 );
5566 }
5567
5568 int update_p(const kids_real& dt) override {
5569 PYBIND11_OVERRIDE(
5570 int, // return type
5571 Traj_Solver, // parent class
5572 update_p, // func name
5573 dt
5574 );
5575 }
5576
5577 int update_thermo(const kids_real& dt) override {
5578 PYBIND11_OVERRIDE(
5579 int, // return type
5580 Traj_Solver, // parent class
5581 update_thermo, // func name
5582 dt
5583 );
5584 }
5585
5586 int traj(TCFnucl& tcfer, const int& N) override {
5587 PYBIND11_OVERRIDE(
5588 int, // return type
5589 Traj_Solver, // parent class
5590 traj, // func name
5591 tcfer, N
5592 );
5593 }
5594
5595 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
5596 PYBIND11_OVERRIDE(
5597 int, // return type
5598 Traj_Solver, // parent class
5599 traj_velocityverlet, // func name
5600 tcfer, N
5601 );
5602 }
5603
5604 int sampler(const int& isamp, TCFnucl& tcfer) override {
5605 PYBIND11_OVERRIDE(
5606 int, // return type
5607 Traj_Solver, // parent class
5608 sampler, // func name
5609 isamp, tcfer
5610 );
5611 }
5612
5613 int estimator(const int& isamp, TCFnucl& tcfer) override {
5614 PYBIND11_OVERRIDE(
5615 int, // return type
5616 Traj_Solver, // parent class
5617 estimator, // func name
5618 isamp, tcfer
5619 );
5620 }
5621
5622 int run_impl() override {
5623 PYBIND11_OVERRIDE(
5624 int, // return type
5625 Traj_Solver, // parent class
5626 run_impl, // func name
5627
5628 );
5629 }
5630
5631 int run_parallel() override {
5632 PYBIND11_OVERRIDE(
5633 int, // return type
5634 Traj_Solver, // parent class
5635 run_parallel, // func name
5636
5637 );
5638 }
5639
5640 int init(int flag) override {
5641 PYBIND11_OVERRIDE(
5642 int, // return type
5643 Solver, // parent class
5644 init, // func name
5645 flag
5646 );
5647 }
5648
5649 int final(int flag) override {
5650 PYBIND11_OVERRIDE(
5651 int, // return type
5652 Solver, // parent class
5653 final, // func name
5654 flag
5655 );
5656 }
5657
5658 int cache(int flag) override {
5659 PYBIND11_OVERRIDE(
5660 int, // return type
5661 Solver, // parent class
5662 cache, // func name
5663 flag
5664 );
5665 }
5666 };
5667
5668 py::class_<Traj_Solver, Solver, PyTrampoline_Traj_Solver>(solvers_m, "Traj_Solver", py::dynamic_attr())
5669 .def(py::init<const Param&, Model*>())
5670 .def(py::init<const std::string&, Model*>())
5671 .def("ref_Htot", &Traj_Solver::ref_Htot, py::return_value_policy::reference_internal)
5672 .def("ref_Ltot", &Traj_Solver::ref_Ltot, py::return_value_policy::reference_internal)
5673 .def("ref_Stot", &Traj_Solver::ref_Stot, py::return_value_policy::reference_internal)
5674 .def("ref_Ktot", &Traj_Solver::ref_Ktot, py::return_value_policy::reference_internal)
5675 .def("ref_Vtot", &Traj_Solver::ref_Vtot, py::return_value_policy::reference_internal)
5676 .def("ref_nr0", &Traj_Solver::ref_nr0, py::return_value_policy::reference_internal)
5677 .def("ref_np0", &Traj_Solver::ref_np0, py::return_value_policy::reference_internal)
5678 .def("ref_nr", &Traj_Solver::ref_nr, py::return_value_policy::reference_internal)
5679 .def("ref_np", &Traj_Solver::ref_np, py::return_value_policy::reference_internal)
5680 .def("ref_nm", &Traj_Solver::ref_nm, py::return_value_policy::reference_internal)
5681 .def("ref_nf", &Traj_Solver::ref_nf, py::return_value_policy::reference_internal)
5682 .def("ref_vpes", &Traj_Solver::ref_vpes, py::return_value_policy::reference_internal)
5683 .def("ref_grad", &Traj_Solver::ref_grad, py::return_value_policy::reference_internal)
5684 .def("ref_hess", &Traj_Solver::ref_hess, py::return_value_policy::reference_internal)
5685 .def_static("name", &Traj_Solver::name)
5686 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
5687 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
5688 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
5689 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
5690 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
5691 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
5692 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
5693 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
5694 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
5695 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
5696 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
5697 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
5698 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
5699 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
5700 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
5701 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
5702 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
5703 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
5704 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
5705 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
5706 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
5707 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
5708 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
5709
5710 class PyTrampoline_PIMDTraj_Solver : public PIMDTraj_Solver {
5711 public:
5712 using PIMDTraj_Solver::PIMDTraj_Solver;
5713
5714 int ff_calc1(const int& level) override {
5715 PYBIND11_OVERRIDE(
5716 int, // return type
5717 PIMDTraj_Solver, // parent class
5718 ff_calc1, // func name
5719 level
5720 );
5721 }
5722
5723 int update_r(const kids_real& dt) override {
5724 PYBIND11_OVERRIDE(
5725 int, // return type
5726 PIMDTraj_Solver, // parent class
5727 update_r, // func name
5728 dt
5729 );
5730 }
5731
5732 int update_p(const kids_real& dt) override {
5733 PYBIND11_OVERRIDE(
5734 int, // return type
5735 PIMDTraj_Solver, // parent class
5736 update_p, // func name
5737 dt
5738 );
5739 }
5740
5741 int update_p_harm(const kids_real& dt) override {
5742 PYBIND11_OVERRIDE(
5743 int, // return type
5744 PIMDTraj_Solver, // parent class
5745 update_p_harm, // func name
5746 dt
5747 );
5748 }
5749
5750 int caylay_update_half(
5751 const kids_real& dt) override {
5752 PYBIND11_OVERRIDE(
5753 int, // return type
5754 PIMDTraj_Solver, // parent class
5755 caylay_update_half, // func name
5756 dt
5757 );
5758 }
5759
5760 int BAOAB(int& succ,
5761 int step) override {
5762 PYBIND11_OVERRIDE(
5763 int, // return type
5764 PIMDTraj_Solver, // parent class
5765 BAOAB, // func name
5766 succ, step
5767 );
5768 }
5769
5770 int BCOCB(int& succ, int step) override {
5771 PYBIND11_OVERRIDE(
5772 int, // return type
5773 PIMDTraj_Solver, // parent class
5774 BCOCB, // func name
5775 succ, step
5776 );
5777 }
5778
5779 int update_thermo(const kids_real& dt) override {
5780 PYBIND11_OVERRIDE(
5781 int, // return type
5782 PIMDTraj_Solver, // parent class
5783 update_thermo, // func name
5784 dt
5785 );
5786 }
5787
5788 int traj(TCFnucl& tcfer, const int& PN) override {
5789 PYBIND11_OVERRIDE(
5790 int, // return type
5791 PIMDTraj_Solver, // parent class
5792 traj, // func name
5793 tcfer, PN
5794 );
5795 }
5796
5797 int traj_Middle(TCFnucl& tcfer, const int& PN) override {
5798 PYBIND11_OVERRIDE(
5799 int, // return type
5800 PIMDTraj_Solver, // parent class
5801 traj_Middle, // func name
5802 tcfer, PN
5803 );
5804 }
5805
5806 int traj_property(const kids_real& dt) override {
5807 PYBIND11_OVERRIDE(
5808 int, // return type
5809 PIMDTraj_Solver, // parent class
5810 traj_property, // func name
5811 dt
5812 );
5813 }
5814
5815 int sampler(const int& isamp, TCFnucl& tcfer) override {
5816 PYBIND11_OVERRIDE(
5817 int, // return type
5818 PIMDTraj_Solver, // parent class
5819 sampler, // func name
5820 isamp, tcfer
5821 );
5822 }
5823
5824 int estimator(const int& isamp, TCFnucl& tcfer) override {
5825 PYBIND11_OVERRIDE(
5826 int, // return type
5827 PIMDTraj_Solver, // parent class
5828 estimator, // func name
5829 isamp, tcfer
5830 );
5831 }
5832
5833 int run_impl() override {
5834 PYBIND11_OVERRIDE(
5835 int, // return type
5836 PIMDTraj_Solver, // parent class
5837 run_impl, // func name
5838
5839 );
5840 }
5841
5842 int run_parallel() override {
5843 PYBIND11_OVERRIDE(
5844 int, // return type
5845 PIMDTraj_Solver, // parent class
5846 run_parallel, // func name
5847
5848 );
5849 }
5850
5851 int init(const int& itraj) override {
5852 PYBIND11_OVERRIDE(
5853 int, // return type
5854 PIMDTraj_Solver, // parent class
5855 init, // func name
5856 itraj
5857 );
5858 }
5859
5860 int rot_trans_corr(int Natom, kids_real* m_in, kids_real* x_in, kids_real* p_in, kids_real* F_in,
5861 bool cal_force = true) override {
5862 PYBIND11_OVERRIDE(
5863 int, // return type
5864 PIMDTraj_Solver, // parent class
5865 rot_trans_corr, // func name
5866 Natom, m_in, x_in, p_in, F_in, cal_force
5867 );
5868 }
5869
5870 int pseudo_inv(int N, kids_real* A, kids_real* invA, kids_real* vectmp, kids_real eps) override {
5871 PYBIND11_OVERRIDE(
5872 int, // return type
5873 PIMDTraj_Solver, // parent class
5874 pseudo_inv, // func name
5875 N, A, invA, vectmp, eps
5876 );
5877 }
5878
5879 int cross(kids_real* vec1, kids_real* vec2, kids_real* prod) override {
5880 PYBIND11_OVERRIDE(
5881 int, // return type
5882 PIMDTraj_Solver, // parent class
5883 cross, // func name
5884 vec1, vec2, prod
5885 );
5886 }
5887
5888 int rst_output(const int& traj_in) override {
5889 PYBIND11_OVERRIDE(
5890 int, // return type
5891 PIMDTraj_Solver, // parent class
5892 rst_output, // func name
5893 traj_in
5894 );
5895 }
5896
5897 int rst_read(const int& traj_in) override {
5898 PYBIND11_OVERRIDE(
5899 int, // return type
5900 PIMDTraj_Solver, // parent class
5901 rst_read, // func name
5902 traj_in
5903 );
5904 }
5905
5906 int init_ofs(const int& itraj) override {
5907 PYBIND11_OVERRIDE(
5908 int, // return type
5909 Traj_Solver, // parent class
5910 init_ofs, // func name
5911 itraj
5912 );
5913 }
5914
5915 int final(const int& itraj) override {
5916 PYBIND11_OVERRIDE(
5917 int, // return type
5918 Traj_Solver, // parent class
5919 final, // func name
5920 itraj
5921 );
5922 }
5923
5924 int check_break(int& succ) override {
5925 PYBIND11_OVERRIDE(
5926 int, // return type
5927 Traj_Solver, // parent class
5928 check_break, // func name
5929 succ
5930 );
5931 }
5932
5933 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
5934 PYBIND11_OVERRIDE(
5935 int, // return type
5936 Traj_Solver, // parent class
5937 traj_velocityverlet, // func name
5938 tcfer, N
5939 );
5940 }
5941
5942 int init(int flag) override {
5943 PYBIND11_OVERRIDE(
5944 int, // return type
5945 Solver, // parent class
5946 init, // func name
5947 flag
5948 );
5949 }
5950
5951 int final(int flag) override {
5952 PYBIND11_OVERRIDE(
5953 int, // return type
5954 Solver, // parent class
5955 final, // func name
5956 flag
5957 );
5958 }
5959
5960 int cache(int flag) override {
5961 PYBIND11_OVERRIDE(
5962 int, // return type
5963 Solver, // parent class
5964 cache, // func name
5965 flag
5966 );
5967 }
5968 };
5969
5970 py::class_<PIMDTraj_Solver, Traj_Solver, PyTrampoline_PIMDTraj_Solver>(solvers_m, "PIMDTraj_Solver", py::dynamic_attr())
5971 .def(py::init<Param, Model*>())
5972 .def(py::init<const std::string&, Model*>())
5973 .def("ref_nrs", &PIMDTraj_Solver::ref_nrs, py::return_value_policy::reference_internal)
5974 .def("ref_nks", &PIMDTraj_Solver::ref_nks, py::return_value_policy::reference_internal)
5975 .def("ref_nps", &PIMDTraj_Solver::ref_nps, py::return_value_policy::reference_internal)
5976 .def("ref_nms", &PIMDTraj_Solver::ref_nms, py::return_value_policy::reference_internal)
5977 .def("ref_nfs", &PIMDTraj_Solver::ref_nfs, py::return_value_policy::reference_internal)
5978 .def("ref_nfks", &PIMDTraj_Solver::ref_nfks, py::return_value_policy::reference_internal)
5979 .def("ref_masswgt", &PIMDTraj_Solver::ref_masswgt, py::return_value_policy::reference_internal)
5980 .def("ref_bfwgt", &PIMDTraj_Solver::ref_bfwgt, py::return_value_policy::reference_internal)
5981 .def("ref_D2", &PIMDTraj_Solver::ref_D2, py::return_value_policy::reference_internal)
5982 .def("ref_Tran", &PIMDTraj_Solver::ref_Tran, py::return_value_policy::reference_internal)
5983 .def("ref_vpeses", &PIMDTraj_Solver::ref_vpeses, py::return_value_policy::reference_internal)
5984 .def("ref_grads", &PIMDTraj_Solver::ref_grads, py::return_value_policy::reference_internal)
5985 .def("ref_hesses", &PIMDTraj_Solver::ref_hesses, py::return_value_policy::reference_internal)
5986 .def_static("name", &PIMDTraj_Solver::name)
5987 .def("ff_calc1", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::ff_calc1))
5988 .def("update_r", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_r))
5989 .def("update_p", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p))
5990 .def("update_p_harm", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p_harm))
5991 .def("caylay_update_half", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::caylay_update_half))
5992 .def("BAOAB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BAOAB))
5993 .def("BCOCB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BCOCB))
5994 .def("update_thermo", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_thermo))
5995 .def("traj", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj))
5996 .def("traj_Middle", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj_Middle))
5997 .def("traj_property", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::traj_property))
5998 .def("sampler", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::sampler))
5999 .def("estimator", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::estimator))
6000 .def("run_impl", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_impl))
6001 .def("run_parallel", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_parallel))
6002 .def("init", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::init))
6003 .def("all_X2K", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_X2K))
6004 .def("all_K2X", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_K2X))
6005 .def("all_FX2FK", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_FX2FK))
6006 .def("rot_trans_corr", [](PIMDTraj_Solver& self, int Natom,
6007 py::array_t<kids_real, py::array::c_style | py::array::forcecast> m_in_arr,
6008 py::array_t<kids_real, py::array::c_style | py::array::forcecast> x_in_arr,
6009 py::array_t<kids_real, py::array::c_style | py::array::forcecast> p_in_arr,
6010 py::array_t<kids_real, py::array::c_style | py::array::forcecast> F_in_arr,
6011 bool cal_force) {
6012 return self.rot_trans_corr(Natom, m_in_arr.mutable_data(), x_in_arr.mutable_data(), p_in_arr.mutable_data(), F_in_arr.mutable_data(), cal_force);
6013 }
6014 )
6015 .def("pseudo_inv", [](PIMDTraj_Solver& self, int N,
6016 py::array_t<kids_real, py::array::c_style | py::array::forcecast> A_arr,
6017 py::array_t<kids_real, py::array::c_style | py::array::forcecast> invA_arr,
6018 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vectmp_arr,
6019 kids_real eps) {
6020 return self.pseudo_inv(N, A_arr.mutable_data(), invA_arr.mutable_data(), vectmp_arr.mutable_data(), eps);
6021 }
6022 )
6023 .def("cross", [](PIMDTraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec1_arr,
6024 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec2_arr,
6025 py::array_t<kids_real, py::array::c_style | py::array::forcecast> prod_arr) {
6026 return self.cross(vec1_arr.mutable_data(), vec2_arr.mutable_data(), prod_arr.mutable_data());
6027 }
6028 )
6029 .def("rst_output", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_output))
6030 .def("rst_read", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_read))
6031 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
6032 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
6033 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
6034 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
6035 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
6036 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
6037 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
6038 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
6039 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
6040 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
6041 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
6042 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
6043 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
6044 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
6045 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
6046 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
6047 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
6048 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
6049 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
6050 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
6051 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
6052 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
6053 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
6054
6055 class PyTrampoline_MESPIMDTraj_Solver : public MESPIMDTraj_Solver {
6056 public:
6057 using MESPIMDTraj_Solver::MESPIMDTraj_Solver;
6058
6059 int init(const int& itraj) override {
6060 PYBIND11_OVERRIDE(
6061 int, // return type
6062 MESPIMDTraj_Solver, // parent class
6063 init, // func name
6064 itraj
6065 );
6066 }
6067
6068 int ff_calc1(const int& level = 1) override {
6069 PYBIND11_OVERRIDE(
6070 int, // return type
6071 MESPIMDTraj_Solver, // parent class
6072 ff_calc1, // func name
6073 level
6074 );
6075 }
6076
6077 int ff_Oi(int i, kids_real* Oi_pos, kids_real* dVi_pos, kids_real* Oi, kids_real* dOi, kids_real* Vi,
6078 kids_real* dVi) override {
6079 PYBIND11_OVERRIDE(
6080 int, // return type
6081 MESPIMDTraj_Solver, // parent class
6082 ff_Oi, // func name
6083 i, Oi_pos, dVi_pos, Oi, dOi, Vi, dVi
6084 );
6085 }
6086
6087 int ff_OO() override {
6088 PYBIND11_OVERRIDE(
6089 int, // return type
6090 MESPIMDTraj_Solver, // parent class
6091 ff_OO, // func name
6092
6093 );
6094 }
6095
6096 kids_real esti_term1(kids_real* Q, const bool& dressed = true, const bool& fixed = false) override {
6097 PYBIND11_OVERRIDE(
6098 kids_real, // return type
6099 MESPIMDTraj_Solver, // parent class
6100 esti_term1, // func name
6101 Q, dressed, fixed
6102 );
6103 }
6104
6105 kids_real esti_term2(kids_real* Q1, kids_real* Q2, const bool& dressed1 = true, const bool& dressed2 = true,
6106 const bool& fixed1 = false, const bool& fixed2 = false) override {
6107 PYBIND11_OVERRIDE(
6108 kids_real, // return type
6109 MESPIMDTraj_Solver, // parent class
6110 esti_term2, // func name
6111 Q1, Q2, dressed1, dressed2, fixed1, fixed2
6112 );
6113 }
6114
6115 int estimator(const int& isamp, TCFnucl& tcfer) override {
6116 PYBIND11_OVERRIDE(
6117 int, // return type
6118 MESPIMDTraj_Solver, // parent class
6119 estimator, // func name
6120 isamp, tcfer
6121 );
6122 }
6123
6124 int update_r(const kids_real& dt) override {
6125 PYBIND11_OVERRIDE(
6126 int, // return type
6127 PIMDTraj_Solver, // parent class
6128 update_r, // func name
6129 dt
6130 );
6131 }
6132
6133 int update_p(const kids_real& dt) override {
6134 PYBIND11_OVERRIDE(
6135 int, // return type
6136 PIMDTraj_Solver, // parent class
6137 update_p, // func name
6138 dt
6139 );
6140 }
6141
6142 int update_p_harm(const kids_real& dt) override {
6143 PYBIND11_OVERRIDE(
6144 int, // return type
6145 PIMDTraj_Solver, // parent class
6146 update_p_harm, // func name
6147 dt
6148 );
6149 }
6150
6151 int caylay_update_half(
6152 const kids_real& dt) override {
6153 PYBIND11_OVERRIDE(
6154 int, // return type
6155 PIMDTraj_Solver, // parent class
6156 caylay_update_half, // func name
6157 dt
6158 );
6159 }
6160
6161 int BAOAB(int& succ,
6162 int step) override {
6163 PYBIND11_OVERRIDE(
6164 int, // return type
6165 PIMDTraj_Solver, // parent class
6166 BAOAB, // func name
6167 succ, step
6168 );
6169 }
6170
6171 int BCOCB(int& succ, int step) override {
6172 PYBIND11_OVERRIDE(
6173 int, // return type
6174 PIMDTraj_Solver, // parent class
6175 BCOCB, // func name
6176 succ, step
6177 );
6178 }
6179
6180 int update_thermo(const kids_real& dt) override {
6181 PYBIND11_OVERRIDE(
6182 int, // return type
6183 PIMDTraj_Solver, // parent class
6184 update_thermo, // func name
6185 dt
6186 );
6187 }
6188
6189 int traj(TCFnucl& tcfer, const int& PN) override {
6190 PYBIND11_OVERRIDE(
6191 int, // return type
6192 PIMDTraj_Solver, // parent class
6193 traj, // func name
6194 tcfer, PN
6195 );
6196 }
6197
6198 int traj_Middle(TCFnucl& tcfer, const int& PN) override {
6199 PYBIND11_OVERRIDE(
6200 int, // return type
6201 PIMDTraj_Solver, // parent class
6202 traj_Middle, // func name
6203 tcfer, PN
6204 );
6205 }
6206
6207 int traj_property(const kids_real& dt) override {
6208 PYBIND11_OVERRIDE(
6209 int, // return type
6210 PIMDTraj_Solver, // parent class
6211 traj_property, // func name
6212 dt
6213 );
6214 }
6215
6216 int sampler(const int& isamp, TCFnucl& tcfer) override {
6217 PYBIND11_OVERRIDE(
6218 int, // return type
6219 PIMDTraj_Solver, // parent class
6220 sampler, // func name
6221 isamp, tcfer
6222 );
6223 }
6224
6225 int run_impl() override {
6226 PYBIND11_OVERRIDE(
6227 int, // return type
6228 PIMDTraj_Solver, // parent class
6229 run_impl, // func name
6230
6231 );
6232 }
6233
6234 int run_parallel() override {
6235 PYBIND11_OVERRIDE(
6236 int, // return type
6237 PIMDTraj_Solver, // parent class
6238 run_parallel, // func name
6239
6240 );
6241 }
6242
6243 int rot_trans_corr(int Natom, kids_real* m_in, kids_real* x_in, kids_real* p_in, kids_real* F_in,
6244 bool cal_force = true) override {
6245 PYBIND11_OVERRIDE(
6246 int, // return type
6247 PIMDTraj_Solver, // parent class
6248 rot_trans_corr, // func name
6249 Natom, m_in, x_in, p_in, F_in, cal_force
6250 );
6251 }
6252
6253 int pseudo_inv(int N, kids_real* A, kids_real* invA, kids_real* vectmp, kids_real eps) override {
6254 PYBIND11_OVERRIDE(
6255 int, // return type
6256 PIMDTraj_Solver, // parent class
6257 pseudo_inv, // func name
6258 N, A, invA, vectmp, eps
6259 );
6260 }
6261
6262 int cross(kids_real* vec1, kids_real* vec2, kids_real* prod) override {
6263 PYBIND11_OVERRIDE(
6264 int, // return type
6265 PIMDTraj_Solver, // parent class
6266 cross, // func name
6267 vec1, vec2, prod
6268 );
6269 }
6270
6271 int rst_output(const int& traj_in) override {
6272 PYBIND11_OVERRIDE(
6273 int, // return type
6274 PIMDTraj_Solver, // parent class
6275 rst_output, // func name
6276 traj_in
6277 );
6278 }
6279
6280 int rst_read(const int& traj_in) override {
6281 PYBIND11_OVERRIDE(
6282 int, // return type
6283 PIMDTraj_Solver, // parent class
6284 rst_read, // func name
6285 traj_in
6286 );
6287 }
6288
6289 int init_ofs(const int& itraj) override {
6290 PYBIND11_OVERRIDE(
6291 int, // return type
6292 Traj_Solver, // parent class
6293 init_ofs, // func name
6294 itraj
6295 );
6296 }
6297
6298 int final(const int& itraj) override {
6299 PYBIND11_OVERRIDE(
6300 int, // return type
6301 Traj_Solver, // parent class
6302 final, // func name
6303 itraj
6304 );
6305 }
6306
6307 int check_break(int& succ) override {
6308 PYBIND11_OVERRIDE(
6309 int, // return type
6310 Traj_Solver, // parent class
6311 check_break, // func name
6312 succ
6313 );
6314 }
6315
6316 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
6317 PYBIND11_OVERRIDE(
6318 int, // return type
6319 Traj_Solver, // parent class
6320 traj_velocityverlet, // func name
6321 tcfer, N
6322 );
6323 }
6324
6325 int init(int flag) override {
6326 PYBIND11_OVERRIDE(
6327 int, // return type
6328 Solver, // parent class
6329 init, // func name
6330 flag
6331 );
6332 }
6333
6334 int final(int flag) override {
6335 PYBIND11_OVERRIDE(
6336 int, // return type
6337 Solver, // parent class
6338 final, // func name
6339 flag
6340 );
6341 }
6342
6343 int cache(int flag) override {
6344 PYBIND11_OVERRIDE(
6345 int, // return type
6346 Solver, // parent class
6347 cache, // func name
6348 flag
6349 );
6350 }
6351 };
6352
6353 py::class_<MESPIMDTraj_Solver, PIMDTraj_Solver, PyTrampoline_MESPIMDTraj_Solver>(solvers_m, "MESPIMDTraj_Solver", py::dynamic_attr())
6354 .def(py::init<const Param&, Model*>())
6355 .def(py::init<const std::string&, Model*>())
6356 .def("ref_Vs", &MESPIMDTraj_Solver::ref_Vs, py::return_value_policy::reference_internal)
6357 .def("ref_dVs", &MESPIMDTraj_Solver::ref_dVs, py::return_value_policy::reference_internal)
6358 .def("ref_ddVs", &MESPIMDTraj_Solver::ref_ddVs, py::return_value_policy::reference_internal)
6359 .def("ref_Es", &MESPIMDTraj_Solver::ref_Es, py::return_value_policy::reference_internal)
6360 .def("ref_dEs", &MESPIMDTraj_Solver::ref_dEs, py::return_value_policy::reference_internal)
6361 .def("ref_Ts", &MESPIMDTraj_Solver::ref_Ts, py::return_value_policy::reference_internal)
6362 .def("ref_mat_fA", &MESPIMDTraj_Solver::ref_mat_fA, py::return_value_policy::reference_internal)
6363 .def("ref_mat_fD", &MESPIMDTraj_Solver::ref_mat_fD, py::return_value_policy::reference_internal)
6364 .def("ref_O_pos", &MESPIMDTraj_Solver::ref_O_pos, py::return_value_policy::reference_internal)
6365 .def("ref_dV_pos", &MESPIMDTraj_Solver::ref_dV_pos, py::return_value_policy::reference_internal)
6366 .def("ref_O", &MESPIMDTraj_Solver::ref_O, py::return_value_policy::reference_internal)
6367 .def("ref_OO", &MESPIMDTraj_Solver::ref_OO, py::return_value_policy::reference_internal)
6368 .def("ref_OOb", &MESPIMDTraj_Solver::ref_OOb, py::return_value_policy::reference_internal)
6369 .def("ref_OOe", &MESPIMDTraj_Solver::ref_OOe, py::return_value_policy::reference_internal)
6370 .def("ref_OObe", &MESPIMDTraj_Solver::ref_OObe, py::return_value_policy::reference_internal)
6371 .def("ref_dO", &MESPIMDTraj_Solver::ref_dO, py::return_value_policy::reference_internal)
6372 .def("ref_V2", &MESPIMDTraj_Solver::ref_V2, py::return_value_policy::reference_internal)
6373 .def("ref_hRdOO", &MESPIMDTraj_Solver::ref_hRdOO, py::return_value_policy::reference_internal)
6374 .def("ref_hRcdOO", &MESPIMDTraj_Solver::ref_hRcdOO, py::return_value_policy::reference_internal)
6375 .def("ref_hRdOVO", &MESPIMDTraj_Solver::ref_hRdOVO, py::return_value_policy::reference_internal)
6376 .def("ref_hRcdOVO", &MESPIMDTraj_Solver::ref_hRcdOVO, py::return_value_policy::reference_internal)
6377 .def("ref_rho", &MESPIMDTraj_Solver::ref_rho, py::return_value_policy::reference_internal)
6378 .def("ref_rho_op", &MESPIMDTraj_Solver::ref_rho_op, py::return_value_policy::reference_internal)
6379 .def("ref_eac0", &MESPIMDTraj_Solver::ref_eac0, py::return_value_policy::reference_internal)
6380 .def("ref_rho0", &MESPIMDTraj_Solver::ref_rho0, py::return_value_policy::reference_internal)
6381 .def_static("name", &MESPIMDTraj_Solver::name)
6382 .def("init", static_cast<int (MESPIMDTraj_Solver::*)(const int&)>(&MESPIMDTraj_Solver::init))
6383 .def("ff_calc1", static_cast<int (MESPIMDTraj_Solver::*)(const int&)>(&MESPIMDTraj_Solver::ff_calc1))
6384 .def("ff_Oi", [](MESPIMDTraj_Solver& self, int i,
6385 py::array_t<kids_real, py::array::c_style | py::array::forcecast> Oi_pos_arr,
6386 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dVi_pos_arr,
6387 py::array_t<kids_real, py::array::c_style | py::array::forcecast> Oi_arr,
6388 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dOi_arr,
6389 py::array_t<kids_real, py::array::c_style | py::array::forcecast> Vi_arr,
6390 py::array_t<kids_real, py::array::c_style | py::array::forcecast> dVi_arr) {
6391 return self.ff_Oi(i, Oi_pos_arr.mutable_data(), dVi_pos_arr.mutable_data(), Oi_arr.mutable_data(), dOi_arr.mutable_data(), Vi_arr.mutable_data(), dVi_arr.mutable_data());
6392 }
6393 )
6394 .def("ff_OO", static_cast<int (MESPIMDTraj_Solver::*)()>(&MESPIMDTraj_Solver::ff_OO))
6395 .def("esti_term1", [](MESPIMDTraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> Q_arr,
6396 const bool& dressed,
6397 const bool& fixed) {
6398 return self.esti_term1(Q_arr.mutable_data(), dressed, fixed);
6399 }
6400 )
6401 .def("esti_term2", [](MESPIMDTraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> Q1_arr,
6402 py::array_t<kids_real, py::array::c_style | py::array::forcecast> Q2_arr,
6403 const bool& dressed1,
6404 const bool& dressed2,
6405 const bool& fixed1,
6406 const bool& fixed2) {
6407 return self.esti_term2(Q1_arr.mutable_data(), Q2_arr.mutable_data(), dressed1, dressed2, fixed1, fixed2);
6408 }
6409 )
6410 .def("estimator", static_cast<int (MESPIMDTraj_Solver::*)(const int&, TCFnucl&)>(&MESPIMDTraj_Solver::estimator))
6411 .def("ff_calc1", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::ff_calc1))
6412 .def("update_r", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_r))
6413 .def("update_p", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p))
6414 .def("update_p_harm", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p_harm))
6415 .def("caylay_update_half", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::caylay_update_half))
6416 .def("BAOAB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BAOAB))
6417 .def("BCOCB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BCOCB))
6418 .def("update_thermo", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_thermo))
6419 .def("traj", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj))
6420 .def("traj_Middle", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj_Middle))
6421 .def("traj_property", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::traj_property))
6422 .def("sampler", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::sampler))
6423 .def("estimator", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::estimator))
6424 .def("run_impl", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_impl))
6425 .def("run_parallel", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_parallel))
6426 .def("init", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::init))
6427 .def("all_X2K", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_X2K))
6428 .def("all_K2X", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_K2X))
6429 .def("all_FX2FK", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_FX2FK))
6430 .def("rot_trans_corr", [](PIMDTraj_Solver& self, int Natom,
6431 py::array_t<kids_real, py::array::c_style | py::array::forcecast> m_in_arr,
6432 py::array_t<kids_real, py::array::c_style | py::array::forcecast> x_in_arr,
6433 py::array_t<kids_real, py::array::c_style | py::array::forcecast> p_in_arr,
6434 py::array_t<kids_real, py::array::c_style | py::array::forcecast> F_in_arr,
6435 bool cal_force) {
6436 return self.rot_trans_corr(Natom, m_in_arr.mutable_data(), x_in_arr.mutable_data(), p_in_arr.mutable_data(), F_in_arr.mutable_data(), cal_force);
6437 }
6438 )
6439 .def("pseudo_inv", [](PIMDTraj_Solver& self, int N,
6440 py::array_t<kids_real, py::array::c_style | py::array::forcecast> A_arr,
6441 py::array_t<kids_real, py::array::c_style | py::array::forcecast> invA_arr,
6442 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vectmp_arr,
6443 kids_real eps) {
6444 return self.pseudo_inv(N, A_arr.mutable_data(), invA_arr.mutable_data(), vectmp_arr.mutable_data(), eps);
6445 }
6446 )
6447 .def("cross", [](PIMDTraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec1_arr,
6448 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec2_arr,
6449 py::array_t<kids_real, py::array::c_style | py::array::forcecast> prod_arr) {
6450 return self.cross(vec1_arr.mutable_data(), vec2_arr.mutable_data(), prod_arr.mutable_data());
6451 }
6452 )
6453 .def("rst_output", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_output))
6454 .def("rst_read", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_read))
6455 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
6456 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
6457 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
6458 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
6459 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
6460 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
6461 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
6462 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
6463 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
6464 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
6465 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
6466 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
6467 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
6468 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
6469 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
6470 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
6471 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
6472 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
6473 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
6474 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
6475 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
6476 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
6477 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
6478
6479 class PyTrampoline_PIMDPARATraj_Solver : public PIMDPARATraj_Solver {
6480 public:
6481 using PIMDPARATraj_Solver::PIMDPARATraj_Solver;
6482
6483 int ff_calc1(const int& level) override {
6484 PYBIND11_OVERRIDE(
6485 int, // return type
6486 PIMDPARATraj_Solver, // parent class
6487 ff_calc1, // func name
6488 level
6489 );
6490 }
6491
6492 int update_r(const kids_real& dt) override {
6493 PYBIND11_OVERRIDE(
6494 int, // return type
6495 PIMDPARATraj_Solver, // parent class
6496 update_r, // func name
6497 dt
6498 );
6499 }
6500
6501 int update_p(const kids_real& dt) override {
6502 PYBIND11_OVERRIDE(
6503 int, // return type
6504 PIMDPARATraj_Solver, // parent class
6505 update_p, // func name
6506 dt
6507 );
6508 }
6509
6510 int update_p_harm(const kids_real& dt) override {
6511 PYBIND11_OVERRIDE(
6512 int, // return type
6513 PIMDPARATraj_Solver, // parent class
6514 update_p_harm, // func name
6515 dt
6516 );
6517 }
6518
6519 int caylay_update_half(
6520 const kids_real& dt) override {
6521 PYBIND11_OVERRIDE(
6522 int, // return type
6523 PIMDPARATraj_Solver, // parent class
6524 caylay_update_half, // func name
6525 dt
6526 );
6527 }
6528
6529 int BAOAB(int& succ,
6530 int step) override {
6531 PYBIND11_OVERRIDE(
6532 int, // return type
6533 PIMDPARATraj_Solver, // parent class
6534 BAOAB, // func name
6535 succ, step
6536 );
6537 }
6538
6539 int BCOCB(int& succ, int step) override {
6540 PYBIND11_OVERRIDE(
6541 int, // return type
6542 PIMDPARATraj_Solver, // parent class
6543 BCOCB, // func name
6544 succ, step
6545 );
6546 }
6547
6548 int update_thermo(const kids_real& dt) override {
6549 PYBIND11_OVERRIDE(
6550 int, // return type
6551 PIMDPARATraj_Solver, // parent class
6552 update_thermo, // func name
6553 dt
6554 );
6555 }
6556
6557 int traj(TCFnucl& tcfer, const int& PN) override {
6558 PYBIND11_OVERRIDE(
6559 int, // return type
6560 PIMDPARATraj_Solver, // parent class
6561 traj, // func name
6562 tcfer, PN
6563 );
6564 }
6565
6566 int traj_Middle(TCFnucl& tcfer, const int& PN) override {
6567 PYBIND11_OVERRIDE(
6568 int, // return type
6569 PIMDPARATraj_Solver, // parent class
6570 traj_Middle, // func name
6571 tcfer, PN
6572 );
6573 }
6574
6575 int traj_property(const kids_real& dt) override {
6576 PYBIND11_OVERRIDE(
6577 int, // return type
6578 PIMDPARATraj_Solver, // parent class
6579 traj_property, // func name
6580 dt
6581 );
6582 }
6583
6584 int sampler(const int& isamp, TCFnucl& tcfer) override {
6585 PYBIND11_OVERRIDE(
6586 int, // return type
6587 PIMDPARATraj_Solver, // parent class
6588 sampler, // func name
6589 isamp, tcfer
6590 );
6591 }
6592
6593 int estimator(const int& isamp, TCFnucl& tcfer) override {
6594 PYBIND11_OVERRIDE(
6595 int, // return type
6596 PIMDPARATraj_Solver, // parent class
6597 estimator, // func name
6598 isamp, tcfer
6599 );
6600 }
6601
6602 int run_impl() override {
6603 PYBIND11_OVERRIDE(
6604 int, // return type
6605 PIMDPARATraj_Solver, // parent class
6606 run_impl, // func name
6607
6608 );
6609 }
6610
6611 int run_parallel() override {
6612 PYBIND11_OVERRIDE(
6613 int, // return type
6614 PIMDPARATraj_Solver, // parent class
6615 run_parallel, // func name
6616
6617 );
6618 }
6619
6620 int init(const int& itraj) override {
6621 PYBIND11_OVERRIDE(
6622 int, // return type
6623 PIMDPARATraj_Solver, // parent class
6624 init, // func name
6625 itraj
6626 );
6627 }
6628
6629 int final(const int& itraj) override {
6630 PYBIND11_OVERRIDE(
6631 int, // return type
6632 PIMDPARATraj_Solver, // parent class
6633 final, // func name
6634 itraj
6635 );
6636 }
6637
6638 int all_X2K() override {
6639 PYBIND11_OVERRIDE(
6640 int, // return type
6641 PIMDPARATraj_Solver, // parent class
6642 all_X2K, // func name
6643
6644 );
6645 }
6646
6647 int all_K2X() override {
6648 PYBIND11_OVERRIDE(
6649 int, // return type
6650 PIMDPARATraj_Solver, // parent class
6651 all_K2X, // func name
6652
6653 );
6654 }
6655
6656 int all_FX2FK() override {
6657 PYBIND11_OVERRIDE(
6658 int, // return type
6659 PIMDPARATraj_Solver, // parent class
6660 all_FX2FK, // func name
6661
6662 );
6663 }
6664
6665 int rot_trans_corr(int Natom, kids_real* m_in, kids_real* x_in, kids_real* p_in, kids_real* F_in,
6666 bool cal_force = true) override {
6667 PYBIND11_OVERRIDE(
6668 int, // return type
6669 PIMDPARATraj_Solver, // parent class
6670 rot_trans_corr, // func name
6671 Natom, m_in, x_in, p_in, F_in, cal_force
6672 );
6673 }
6674
6675 int cons_rot() override {
6676 PYBIND11_OVERRIDE(
6677 int, // return type
6678 PIMDPARATraj_Solver, // parent class
6679 cons_rot, // func name
6680
6681 );
6682 }
6683
6684 int pseudo_inv(int N, kids_real* A, kids_real* invA, kids_real* vectmp, kids_real eps) override {
6685 PYBIND11_OVERRIDE(
6686 int, // return type
6687 PIMDPARATraj_Solver, // parent class
6688 pseudo_inv, // func name
6689 N, A, invA, vectmp, eps
6690 );
6691 }
6692
6693 int cross(kids_real* vec1, kids_real* vec2, kids_real* prod) override {
6694 PYBIND11_OVERRIDE(
6695 int, // return type
6696 PIMDPARATraj_Solver, // parent class
6697 cross, // func name
6698 vec1, vec2, prod
6699 );
6700 }
6701
6702 int rst_output(const int& traj_in) override {
6703 PYBIND11_OVERRIDE(
6704 int, // return type
6705 PIMDPARATraj_Solver, // parent class
6706 rst_output, // func name
6707 traj_in
6708 );
6709 }
6710
6711 int rst_read(const int& traj_in) override {
6712 PYBIND11_OVERRIDE(
6713 int, // return type
6714 PIMDPARATraj_Solver, // parent class
6715 rst_read, // func name
6716 traj_in
6717 );
6718 }
6719
6720 int init_ofs(const int& itraj) override {
6721 PYBIND11_OVERRIDE(
6722 int, // return type
6723 Traj_Solver, // parent class
6724 init_ofs, // func name
6725 itraj
6726 );
6727 }
6728
6729 int check_break(int& succ) override {
6730 PYBIND11_OVERRIDE(
6731 int, // return type
6732 Traj_Solver, // parent class
6733 check_break, // func name
6734 succ
6735 );
6736 }
6737
6738 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
6739 PYBIND11_OVERRIDE(
6740 int, // return type
6741 Traj_Solver, // parent class
6742 traj_velocityverlet, // func name
6743 tcfer, N
6744 );
6745 }
6746
6747 int init(int flag) override {
6748 PYBIND11_OVERRIDE(
6749 int, // return type
6750 Solver, // parent class
6751 init, // func name
6752 flag
6753 );
6754 }
6755
6756 int final(int flag) override {
6757 PYBIND11_OVERRIDE(
6758 int, // return type
6759 Solver, // parent class
6760 final, // func name
6761 flag
6762 );
6763 }
6764
6765 int cache(int flag) override {
6766 PYBIND11_OVERRIDE(
6767 int, // return type
6768 Solver, // parent class
6769 cache, // func name
6770 flag
6771 );
6772 }
6773 };
6774
6775 py::class_<PIMDPARATraj_Solver, Traj_Solver, PyTrampoline_PIMDPARATraj_Solver>(solvers_m, "PIMDPARATraj_Solver", py::dynamic_attr())
6776 .def(py::init<Param, Model*>())
6777 .def("ref_nrs", &PIMDPARATraj_Solver::ref_nrs, py::return_value_policy::reference_internal)
6778 .def("ref_nks", &PIMDPARATraj_Solver::ref_nks, py::return_value_policy::reference_internal)
6779 .def("ref_nps", &PIMDPARATraj_Solver::ref_nps, py::return_value_policy::reference_internal)
6780 .def("ref_nms", &PIMDPARATraj_Solver::ref_nms, py::return_value_policy::reference_internal)
6781 .def("ref_nfs", &PIMDPARATraj_Solver::ref_nfs, py::return_value_policy::reference_internal)
6782 .def("ref_nfks", &PIMDPARATraj_Solver::ref_nfks, py::return_value_policy::reference_internal)
6783 .def("ref_masswgt", &PIMDPARATraj_Solver::ref_masswgt, py::return_value_policy::reference_internal)
6784 .def("ref_bfwgt", &PIMDPARATraj_Solver::ref_bfwgt, py::return_value_policy::reference_internal)
6785 .def("ref_D2", &PIMDPARATraj_Solver::ref_D2, py::return_value_policy::reference_internal)
6786 .def("ref_Tran", &PIMDPARATraj_Solver::ref_Tran, py::return_value_policy::reference_internal)
6787 .def("ref_vpeses", &PIMDPARATraj_Solver::ref_vpeses, py::return_value_policy::reference_internal)
6788 .def("ref_grads", &PIMDPARATraj_Solver::ref_grads, py::return_value_policy::reference_internal)
6789 .def("ref_hesses", &PIMDPARATraj_Solver::ref_hesses, py::return_value_policy::reference_internal)
6790 .def_static("name", &PIMDPARATraj_Solver::name)
6791 .def("ff_calc1", static_cast<int (PIMDPARATraj_Solver::*)(const int&)>(&PIMDPARATraj_Solver::ff_calc1))
6792 .def("update_r", static_cast<int (PIMDPARATraj_Solver::*)(const kids_real&)>(&PIMDPARATraj_Solver::update_r))
6793 .def("update_p", static_cast<int (PIMDPARATraj_Solver::*)(const kids_real&)>(&PIMDPARATraj_Solver::update_p))
6794 .def("update_p_harm", static_cast<int (PIMDPARATraj_Solver::*)(const kids_real&)>(&PIMDPARATraj_Solver::update_p_harm))
6795 .def("caylay_update_half", static_cast<int (PIMDPARATraj_Solver::*)(const kids_real&)>(&PIMDPARATraj_Solver::caylay_update_half))
6796 .def("BAOAB", static_cast<int (PIMDPARATraj_Solver::*)(int&, int)>(&PIMDPARATraj_Solver::BAOAB))
6797 .def("BCOCB", static_cast<int (PIMDPARATraj_Solver::*)(int&, int)>(&PIMDPARATraj_Solver::BCOCB))
6798 .def("update_thermo", static_cast<int (PIMDPARATraj_Solver::*)(const kids_real&)>(&PIMDPARATraj_Solver::update_thermo))
6799 .def("traj", static_cast<int (PIMDPARATraj_Solver::*)(TCFnucl&, const int&)>(&PIMDPARATraj_Solver::traj))
6800 .def("traj_Middle", static_cast<int (PIMDPARATraj_Solver::*)(TCFnucl&, const int&)>(&PIMDPARATraj_Solver::traj_Middle))
6801 .def("traj_property", static_cast<int (PIMDPARATraj_Solver::*)(const kids_real&)>(&PIMDPARATraj_Solver::traj_property))
6802 .def("sampler", static_cast<int (PIMDPARATraj_Solver::*)(const int&, TCFnucl&)>(&PIMDPARATraj_Solver::sampler))
6803 .def("estimator", static_cast<int (PIMDPARATraj_Solver::*)(const int&, TCFnucl&)>(&PIMDPARATraj_Solver::estimator))
6804 .def("run_impl", static_cast<int (PIMDPARATraj_Solver::*)()>(&PIMDPARATraj_Solver::run_impl))
6805 .def("run_parallel", static_cast<int (PIMDPARATraj_Solver::*)()>(&PIMDPARATraj_Solver::run_parallel))
6806 .def("init", static_cast<int (PIMDPARATraj_Solver::*)(const int&)>(&PIMDPARATraj_Solver::init))
6807 .def("final", static_cast<int (PIMDPARATraj_Solver::*)(const int&)>(&PIMDPARATraj_Solver::final))
6808 .def("all_X2K", static_cast<int (PIMDPARATraj_Solver::*)()>(&PIMDPARATraj_Solver::all_X2K))
6809 .def("all_K2X", static_cast<int (PIMDPARATraj_Solver::*)()>(&PIMDPARATraj_Solver::all_K2X))
6810 .def("all_FX2FK", static_cast<int (PIMDPARATraj_Solver::*)()>(&PIMDPARATraj_Solver::all_FX2FK))
6811 .def("rot_trans_corr", [](PIMDPARATraj_Solver& self, int Natom,
6812 py::array_t<kids_real, py::array::c_style | py::array::forcecast> m_in_arr,
6813 py::array_t<kids_real, py::array::c_style | py::array::forcecast> x_in_arr,
6814 py::array_t<kids_real, py::array::c_style | py::array::forcecast> p_in_arr,
6815 py::array_t<kids_real, py::array::c_style | py::array::forcecast> F_in_arr,
6816 bool cal_force) {
6817 return self.rot_trans_corr(Natom, m_in_arr.mutable_data(), x_in_arr.mutable_data(), p_in_arr.mutable_data(), F_in_arr.mutable_data(), cal_force);
6818 }
6819 )
6820 .def("cons_rot", static_cast<int (PIMDPARATraj_Solver::*)()>(&PIMDPARATraj_Solver::cons_rot))
6821 .def("pseudo_inv", [](PIMDPARATraj_Solver& self, int N,
6822 py::array_t<kids_real, py::array::c_style | py::array::forcecast> A_arr,
6823 py::array_t<kids_real, py::array::c_style | py::array::forcecast> invA_arr,
6824 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vectmp_arr,
6825 kids_real eps) {
6826 return self.pseudo_inv(N, A_arr.mutable_data(), invA_arr.mutable_data(), vectmp_arr.mutable_data(), eps);
6827 }
6828 )
6829 .def("cross", [](PIMDPARATraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec1_arr,
6830 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec2_arr,
6831 py::array_t<kids_real, py::array::c_style | py::array::forcecast> prod_arr) {
6832 return self.cross(vec1_arr.mutable_data(), vec2_arr.mutable_data(), prod_arr.mutable_data());
6833 }
6834 )
6835 .def("rst_output", static_cast<int (PIMDPARATraj_Solver::*)(const int&)>(&PIMDPARATraj_Solver::rst_output))
6836 .def("rst_read", static_cast<int (PIMDPARATraj_Solver::*)(const int&)>(&PIMDPARATraj_Solver::rst_read))
6837 .def("mpiSendx", [](PIMDPARATraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> x_mpi_arr) {
6838 return self.mpiSendx(x_mpi_arr.mutable_data());
6839 }
6840 )
6841 .def("mpiRecvf", [](PIMDPARATraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> f_mpi_arr,
6842 int nsize) {
6843 return self.mpiRecvf(f_mpi_arr.mutable_data(), nsize);
6844 }
6845 )
6846 .def("printdata", static_cast<int (PIMDPARATraj_Solver::*)()>(&PIMDPARATraj_Solver::printdata))
6847 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
6848 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
6849 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
6850 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
6851 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
6852 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
6853 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
6854 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
6855 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
6856 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
6857 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
6858 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
6859 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
6860 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
6861 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
6862 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
6863 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
6864 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
6865 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
6866 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
6867 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
6868 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
6869 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
6870
6871 class PyTrampoline_MBPIMDTraj_Solver : public MBPIMDTraj_Solver {
6872 public:
6873 using MBPIMDTraj_Solver::MBPIMDTraj_Solver;
6874
6875 int spring_force() override {
6876 PYBIND11_OVERRIDE(
6877 int, // return type
6878 MBPIMDTraj_Solver, // parent class
6879 spring_force, // func name
6880
6881 );
6882 }
6883
6884 int update_p_harm(const kids_real &dt) override {
6885 PYBIND11_OVERRIDE(
6886 int, // return type
6887 MBPIMDTraj_Solver, // parent class
6888 update_p_harm, // func name
6889 dt
6890 );
6891 }
6892
6893 int estimator(const int &isamp, TCFnucl &tcfer) override {
6894 PYBIND11_OVERRIDE(
6895 int, // return type
6896 MBPIMDTraj_Solver, // parent class
6897 estimator, // func name
6898 isamp, tcfer
6899 );
6900 }
6901
6902 int ff_calc1(const int& level) override {
6903 PYBIND11_OVERRIDE(
6904 int, // return type
6905 PIMDTraj_Solver, // parent class
6906 ff_calc1, // func name
6907 level
6908 );
6909 }
6910
6911 int update_r(const kids_real& dt) override {
6912 PYBIND11_OVERRIDE(
6913 int, // return type
6914 PIMDTraj_Solver, // parent class
6915 update_r, // func name
6916 dt
6917 );
6918 }
6919
6920 int update_p(const kids_real& dt) override {
6921 PYBIND11_OVERRIDE(
6922 int, // return type
6923 PIMDTraj_Solver, // parent class
6924 update_p, // func name
6925 dt
6926 );
6927 }
6928
6929 int caylay_update_half(
6930 const kids_real& dt) override {
6931 PYBIND11_OVERRIDE(
6932 int, // return type
6933 PIMDTraj_Solver, // parent class
6934 caylay_update_half, // func name
6935 dt
6936 );
6937 }
6938
6939 int BAOAB(int& succ,
6940 int step) override {
6941 PYBIND11_OVERRIDE(
6942 int, // return type
6943 PIMDTraj_Solver, // parent class
6944 BAOAB, // func name
6945 succ, step
6946 );
6947 }
6948
6949 int BCOCB(int& succ, int step) override {
6950 PYBIND11_OVERRIDE(
6951 int, // return type
6952 PIMDTraj_Solver, // parent class
6953 BCOCB, // func name
6954 succ, step
6955 );
6956 }
6957
6958 int update_thermo(const kids_real& dt) override {
6959 PYBIND11_OVERRIDE(
6960 int, // return type
6961 PIMDTraj_Solver, // parent class
6962 update_thermo, // func name
6963 dt
6964 );
6965 }
6966
6967 int traj(TCFnucl& tcfer, const int& PN) override {
6968 PYBIND11_OVERRIDE(
6969 int, // return type
6970 PIMDTraj_Solver, // parent class
6971 traj, // func name
6972 tcfer, PN
6973 );
6974 }
6975
6976 int traj_Middle(TCFnucl& tcfer, const int& PN) override {
6977 PYBIND11_OVERRIDE(
6978 int, // return type
6979 PIMDTraj_Solver, // parent class
6980 traj_Middle, // func name
6981 tcfer, PN
6982 );
6983 }
6984
6985 int traj_property(const kids_real& dt) override {
6986 PYBIND11_OVERRIDE(
6987 int, // return type
6988 PIMDTraj_Solver, // parent class
6989 traj_property, // func name
6990 dt
6991 );
6992 }
6993
6994 int sampler(const int& isamp, TCFnucl& tcfer) override {
6995 PYBIND11_OVERRIDE(
6996 int, // return type
6997 PIMDTraj_Solver, // parent class
6998 sampler, // func name
6999 isamp, tcfer
7000 );
7001 }
7002
7003 int run_impl() override {
7004 PYBIND11_OVERRIDE(
7005 int, // return type
7006 PIMDTraj_Solver, // parent class
7007 run_impl, // func name
7008
7009 );
7010 }
7011
7012 int run_parallel() override {
7013 PYBIND11_OVERRIDE(
7014 int, // return type
7015 PIMDTraj_Solver, // parent class
7016 run_parallel, // func name
7017
7018 );
7019 }
7020
7021 int init(const int& itraj) override {
7022 PYBIND11_OVERRIDE(
7023 int, // return type
7024 PIMDTraj_Solver, // parent class
7025 init, // func name
7026 itraj
7027 );
7028 }
7029
7030 int rot_trans_corr(int Natom, kids_real* m_in, kids_real* x_in, kids_real* p_in, kids_real* F_in,
7031 bool cal_force = true) override {
7032 PYBIND11_OVERRIDE(
7033 int, // return type
7034 PIMDTraj_Solver, // parent class
7035 rot_trans_corr, // func name
7036 Natom, m_in, x_in, p_in, F_in, cal_force
7037 );
7038 }
7039
7040 int pseudo_inv(int N, kids_real* A, kids_real* invA, kids_real* vectmp, kids_real eps) override {
7041 PYBIND11_OVERRIDE(
7042 int, // return type
7043 PIMDTraj_Solver, // parent class
7044 pseudo_inv, // func name
7045 N, A, invA, vectmp, eps
7046 );
7047 }
7048
7049 int cross(kids_real* vec1, kids_real* vec2, kids_real* prod) override {
7050 PYBIND11_OVERRIDE(
7051 int, // return type
7052 PIMDTraj_Solver, // parent class
7053 cross, // func name
7054 vec1, vec2, prod
7055 );
7056 }
7057
7058 int rst_output(const int& traj_in) override {
7059 PYBIND11_OVERRIDE(
7060 int, // return type
7061 PIMDTraj_Solver, // parent class
7062 rst_output, // func name
7063 traj_in
7064 );
7065 }
7066
7067 int rst_read(const int& traj_in) override {
7068 PYBIND11_OVERRIDE(
7069 int, // return type
7070 PIMDTraj_Solver, // parent class
7071 rst_read, // func name
7072 traj_in
7073 );
7074 }
7075
7076 int init_ofs(const int& itraj) override {
7077 PYBIND11_OVERRIDE(
7078 int, // return type
7079 Traj_Solver, // parent class
7080 init_ofs, // func name
7081 itraj
7082 );
7083 }
7084
7085 int final(const int& itraj) override {
7086 PYBIND11_OVERRIDE(
7087 int, // return type
7088 Traj_Solver, // parent class
7089 final, // func name
7090 itraj
7091 );
7092 }
7093
7094 int check_break(int& succ) override {
7095 PYBIND11_OVERRIDE(
7096 int, // return type
7097 Traj_Solver, // parent class
7098 check_break, // func name
7099 succ
7100 );
7101 }
7102
7103 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
7104 PYBIND11_OVERRIDE(
7105 int, // return type
7106 Traj_Solver, // parent class
7107 traj_velocityverlet, // func name
7108 tcfer, N
7109 );
7110 }
7111
7112 int init(int flag) override {
7113 PYBIND11_OVERRIDE(
7114 int, // return type
7115 Solver, // parent class
7116 init, // func name
7117 flag
7118 );
7119 }
7120
7121 int final(int flag) override {
7122 PYBIND11_OVERRIDE(
7123 int, // return type
7124 Solver, // parent class
7125 final, // func name
7126 flag
7127 );
7128 }
7129
7130 int cache(int flag) override {
7131 PYBIND11_OVERRIDE(
7132 int, // return type
7133 Solver, // parent class
7134 cache, // func name
7135 flag
7136 );
7137 }
7138 };
7139
7140 py::class_<MBPIMDTraj_Solver, PIMDTraj_Solver, PyTrampoline_MBPIMDTraj_Solver>(solvers_m, "MBPIMDTraj_Solver", py::dynamic_attr())
7141 .def(py::init<Param, Model*>())
7142 .def(py::init<const std::string&, Model*>())
7143 .def("ref_fV", &MBPIMDTraj_Solver::ref_fV, py::return_value_policy::reference_internal)
7144 .def("ref_fE", &MBPIMDTraj_Solver::ref_fE, py::return_value_policy::reference_internal)
7145 .def("ref_VHO", &MBPIMDTraj_Solver::ref_VHO, py::return_value_policy::reference_internal)
7146 .def("ref_dV_spring", &MBPIMDTraj_Solver::ref_dV_spring, py::return_value_policy::reference_internal)
7147 .def("ref_dE_spring", &MBPIMDTraj_Solver::ref_dE_spring, py::return_value_policy::reference_internal)
7148 .def_static("name", &MBPIMDTraj_Solver::name)
7149 .def("spring_force", static_cast<int (MBPIMDTraj_Solver::*)()>(&MBPIMDTraj_Solver::spring_force))
7150 .def("update_p_harm", static_cast<int (MBPIMDTraj_Solver::*)(const kids_real&)>(&MBPIMDTraj_Solver::update_p_harm))
7151 .def("estimator", static_cast<int (MBPIMDTraj_Solver::*)(const int&, TCFnucl&)>(&MBPIMDTraj_Solver::estimator))
7152 .def("ff_calc1", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::ff_calc1))
7153 .def("update_r", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_r))
7154 .def("update_p", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p))
7155 .def("update_p_harm", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p_harm))
7156 .def("caylay_update_half", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::caylay_update_half))
7157 .def("BAOAB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BAOAB))
7158 .def("BCOCB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BCOCB))
7159 .def("update_thermo", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_thermo))
7160 .def("traj", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj))
7161 .def("traj_Middle", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj_Middle))
7162 .def("traj_property", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::traj_property))
7163 .def("sampler", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::sampler))
7164 .def("estimator", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::estimator))
7165 .def("run_impl", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_impl))
7166 .def("run_parallel", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_parallel))
7167 .def("init", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::init))
7168 .def("all_X2K", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_X2K))
7169 .def("all_K2X", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_K2X))
7170 .def("all_FX2FK", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_FX2FK))
7171 .def("rot_trans_corr", [](PIMDTraj_Solver& self, int Natom,
7172 py::array_t<kids_real, py::array::c_style | py::array::forcecast> m_in_arr,
7173 py::array_t<kids_real, py::array::c_style | py::array::forcecast> x_in_arr,
7174 py::array_t<kids_real, py::array::c_style | py::array::forcecast> p_in_arr,
7175 py::array_t<kids_real, py::array::c_style | py::array::forcecast> F_in_arr,
7176 bool cal_force) {
7177 return self.rot_trans_corr(Natom, m_in_arr.mutable_data(), x_in_arr.mutable_data(), p_in_arr.mutable_data(), F_in_arr.mutable_data(), cal_force);
7178 }
7179 )
7180 .def("pseudo_inv", [](PIMDTraj_Solver& self, int N,
7181 py::array_t<kids_real, py::array::c_style | py::array::forcecast> A_arr,
7182 py::array_t<kids_real, py::array::c_style | py::array::forcecast> invA_arr,
7183 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vectmp_arr,
7184 kids_real eps) {
7185 return self.pseudo_inv(N, A_arr.mutable_data(), invA_arr.mutable_data(), vectmp_arr.mutable_data(), eps);
7186 }
7187 )
7188 .def("cross", [](PIMDTraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec1_arr,
7189 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec2_arr,
7190 py::array_t<kids_real, py::array::c_style | py::array::forcecast> prod_arr) {
7191 return self.cross(vec1_arr.mutable_data(), vec2_arr.mutable_data(), prod_arr.mutable_data());
7192 }
7193 )
7194 .def("rst_output", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_output))
7195 .def("rst_read", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_read))
7196 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
7197 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
7198 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
7199 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
7200 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
7201 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
7202 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
7203 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
7204 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
7205 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
7206 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
7207 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
7208 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
7209 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
7210 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
7211 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
7212 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
7213 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
7214 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
7215 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
7216 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
7217 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
7218 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
7219
7220 class PyTrampoline_PILD_Solver : public PILD_Solver {
7221 public:
7222 using PILD_Solver::PILD_Solver;
7223
7224 int update_thermo(const kids_real& dt) override {
7225 PYBIND11_OVERRIDE(
7226 int, // return type
7227 PILD_Solver, // parent class
7228 update_thermo, // func name
7229 dt
7230 );
7231 }
7232
7233 int update_p(const kids_real& dt) override {
7234 PYBIND11_OVERRIDE(
7235 int, // return type
7236 PILD_Solver, // parent class
7237 update_p, // func name
7238 dt
7239 );
7240 }
7241
7242 int init(const int& itraj) override {
7243 PYBIND11_OVERRIDE(
7244 int, // return type
7245 PILD_Solver, // parent class
7246 init, // func name
7247 itraj
7248 );
7249 }
7250
7251 int estimator(const int& isamp, TCFnucl& tcfer) override {
7252 PYBIND11_OVERRIDE(
7253 int, // return type
7254 PILD_Solver, // parent class
7255 estimator, // func name
7256 isamp, tcfer
7257 );
7258 }
7259
7260 int ff_calc1(const int& level) override {
7261 PYBIND11_OVERRIDE(
7262 int, // return type
7263 PIMDTraj_Solver, // parent class
7264 ff_calc1, // func name
7265 level
7266 );
7267 }
7268
7269 int update_r(const kids_real& dt) override {
7270 PYBIND11_OVERRIDE(
7271 int, // return type
7272 PIMDTraj_Solver, // parent class
7273 update_r, // func name
7274 dt
7275 );
7276 }
7277
7278 int update_p_harm(const kids_real& dt) override {
7279 PYBIND11_OVERRIDE(
7280 int, // return type
7281 PIMDTraj_Solver, // parent class
7282 update_p_harm, // func name
7283 dt
7284 );
7285 }
7286
7287 int caylay_update_half(
7288 const kids_real& dt) override {
7289 PYBIND11_OVERRIDE(
7290 int, // return type
7291 PIMDTraj_Solver, // parent class
7292 caylay_update_half, // func name
7293 dt
7294 );
7295 }
7296
7297 int BAOAB(int& succ,
7298 int step) override {
7299 PYBIND11_OVERRIDE(
7300 int, // return type
7301 PIMDTraj_Solver, // parent class
7302 BAOAB, // func name
7303 succ, step
7304 );
7305 }
7306
7307 int BCOCB(int& succ, int step) override {
7308 PYBIND11_OVERRIDE(
7309 int, // return type
7310 PIMDTraj_Solver, // parent class
7311 BCOCB, // func name
7312 succ, step
7313 );
7314 }
7315
7316 int traj(TCFnucl& tcfer, const int& PN) override {
7317 PYBIND11_OVERRIDE(
7318 int, // return type
7319 PIMDTraj_Solver, // parent class
7320 traj, // func name
7321 tcfer, PN
7322 );
7323 }
7324
7325 int traj_Middle(TCFnucl& tcfer, const int& PN) override {
7326 PYBIND11_OVERRIDE(
7327 int, // return type
7328 PIMDTraj_Solver, // parent class
7329 traj_Middle, // func name
7330 tcfer, PN
7331 );
7332 }
7333
7334 int traj_property(const kids_real& dt) override {
7335 PYBIND11_OVERRIDE(
7336 int, // return type
7337 PIMDTraj_Solver, // parent class
7338 traj_property, // func name
7339 dt
7340 );
7341 }
7342
7343 int sampler(const int& isamp, TCFnucl& tcfer) override {
7344 PYBIND11_OVERRIDE(
7345 int, // return type
7346 PIMDTraj_Solver, // parent class
7347 sampler, // func name
7348 isamp, tcfer
7349 );
7350 }
7351
7352 int run_impl() override {
7353 PYBIND11_OVERRIDE(
7354 int, // return type
7355 PIMDTraj_Solver, // parent class
7356 run_impl, // func name
7357
7358 );
7359 }
7360
7361 int run_parallel() override {
7362 PYBIND11_OVERRIDE(
7363 int, // return type
7364 PIMDTraj_Solver, // parent class
7365 run_parallel, // func name
7366
7367 );
7368 }
7369
7370 int rot_trans_corr(int Natom, kids_real* m_in, kids_real* x_in, kids_real* p_in, kids_real* F_in,
7371 bool cal_force = true) override {
7372 PYBIND11_OVERRIDE(
7373 int, // return type
7374 PIMDTraj_Solver, // parent class
7375 rot_trans_corr, // func name
7376 Natom, m_in, x_in, p_in, F_in, cal_force
7377 );
7378 }
7379
7380 int pseudo_inv(int N, kids_real* A, kids_real* invA, kids_real* vectmp, kids_real eps) override {
7381 PYBIND11_OVERRIDE(
7382 int, // return type
7383 PIMDTraj_Solver, // parent class
7384 pseudo_inv, // func name
7385 N, A, invA, vectmp, eps
7386 );
7387 }
7388
7389 int cross(kids_real* vec1, kids_real* vec2, kids_real* prod) override {
7390 PYBIND11_OVERRIDE(
7391 int, // return type
7392 PIMDTraj_Solver, // parent class
7393 cross, // func name
7394 vec1, vec2, prod
7395 );
7396 }
7397
7398 int rst_output(const int& traj_in) override {
7399 PYBIND11_OVERRIDE(
7400 int, // return type
7401 PIMDTraj_Solver, // parent class
7402 rst_output, // func name
7403 traj_in
7404 );
7405 }
7406
7407 int rst_read(const int& traj_in) override {
7408 PYBIND11_OVERRIDE(
7409 int, // return type
7410 PIMDTraj_Solver, // parent class
7411 rst_read, // func name
7412 traj_in
7413 );
7414 }
7415
7416 int init_ofs(const int& itraj) override {
7417 PYBIND11_OVERRIDE(
7418 int, // return type
7419 Traj_Solver, // parent class
7420 init_ofs, // func name
7421 itraj
7422 );
7423 }
7424
7425 int final(const int& itraj) override {
7426 PYBIND11_OVERRIDE(
7427 int, // return type
7428 Traj_Solver, // parent class
7429 final, // func name
7430 itraj
7431 );
7432 }
7433
7434 int check_break(int& succ) override {
7435 PYBIND11_OVERRIDE(
7436 int, // return type
7437 Traj_Solver, // parent class
7438 check_break, // func name
7439 succ
7440 );
7441 }
7442
7443 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
7444 PYBIND11_OVERRIDE(
7445 int, // return type
7446 Traj_Solver, // parent class
7447 traj_velocityverlet, // func name
7448 tcfer, N
7449 );
7450 }
7451
7452 int init(int flag) override {
7453 PYBIND11_OVERRIDE(
7454 int, // return type
7455 Solver, // parent class
7456 init, // func name
7457 flag
7458 );
7459 }
7460
7461 int final(int flag) override {
7462 PYBIND11_OVERRIDE(
7463 int, // return type
7464 Solver, // parent class
7465 final, // func name
7466 flag
7467 );
7468 }
7469
7470 int cache(int flag) override {
7471 PYBIND11_OVERRIDE(
7472 int, // return type
7473 Solver, // parent class
7474 cache, // func name
7475 flag
7476 );
7477 }
7478 };
7479
7480 py::class_<PILD_Solver, PIMDTraj_Solver, PyTrampoline_PILD_Solver>(solvers_m, "PILD_Solver", py::dynamic_attr())
7481 .def(py::init<Param, Model*>())
7482 .def(py::init<const std::string&, Model*>())
7483 .def("ref_M_therm", &PILD_Solver::ref_M_therm, py::return_value_policy::reference_internal)
7484 .def_static("name", &PILD_Solver::name)
7485 .def("update_thermo", static_cast<int (PILD_Solver::*)(const kids_real&)>(&PILD_Solver::update_thermo))
7486 .def("update_p", static_cast<int (PILD_Solver::*)(const kids_real&)>(&PILD_Solver::update_p))
7487 .def("init", static_cast<int (PILD_Solver::*)(const int&)>(&PILD_Solver::init))
7488 .def("estimator", static_cast<int (PILD_Solver::*)(const int&, TCFnucl&)>(&PILD_Solver::estimator))
7489 .def("ff_calc1", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::ff_calc1))
7490 .def("update_r", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_r))
7491 .def("update_p", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p))
7492 .def("update_p_harm", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p_harm))
7493 .def("caylay_update_half", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::caylay_update_half))
7494 .def("BAOAB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BAOAB))
7495 .def("BCOCB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BCOCB))
7496 .def("update_thermo", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_thermo))
7497 .def("traj", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj))
7498 .def("traj_Middle", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj_Middle))
7499 .def("traj_property", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::traj_property))
7500 .def("sampler", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::sampler))
7501 .def("estimator", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::estimator))
7502 .def("run_impl", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_impl))
7503 .def("run_parallel", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_parallel))
7504 .def("init", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::init))
7505 .def("all_X2K", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_X2K))
7506 .def("all_K2X", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_K2X))
7507 .def("all_FX2FK", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_FX2FK))
7508 .def("rot_trans_corr", [](PIMDTraj_Solver& self, int Natom,
7509 py::array_t<kids_real, py::array::c_style | py::array::forcecast> m_in_arr,
7510 py::array_t<kids_real, py::array::c_style | py::array::forcecast> x_in_arr,
7511 py::array_t<kids_real, py::array::c_style | py::array::forcecast> p_in_arr,
7512 py::array_t<kids_real, py::array::c_style | py::array::forcecast> F_in_arr,
7513 bool cal_force) {
7514 return self.rot_trans_corr(Natom, m_in_arr.mutable_data(), x_in_arr.mutable_data(), p_in_arr.mutable_data(), F_in_arr.mutable_data(), cal_force);
7515 }
7516 )
7517 .def("pseudo_inv", [](PIMDTraj_Solver& self, int N,
7518 py::array_t<kids_real, py::array::c_style | py::array::forcecast> A_arr,
7519 py::array_t<kids_real, py::array::c_style | py::array::forcecast> invA_arr,
7520 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vectmp_arr,
7521 kids_real eps) {
7522 return self.pseudo_inv(N, A_arr.mutable_data(), invA_arr.mutable_data(), vectmp_arr.mutable_data(), eps);
7523 }
7524 )
7525 .def("cross", [](PIMDTraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec1_arr,
7526 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec2_arr,
7527 py::array_t<kids_real, py::array::c_style | py::array::forcecast> prod_arr) {
7528 return self.cross(vec1_arr.mutable_data(), vec2_arr.mutable_data(), prod_arr.mutable_data());
7529 }
7530 )
7531 .def("rst_output", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_output))
7532 .def("rst_read", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_read))
7533 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
7534 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
7535 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
7536 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
7537 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
7538 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
7539 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
7540 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
7541 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
7542 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
7543 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
7544 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
7545 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
7546 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
7547 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
7548 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
7549 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
7550 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
7551 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
7552 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
7553 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
7554 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
7555 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
7556
7557 class PyTrampoline_CentroidMD_Solver : public CentroidMD_Solver {
7558 public:
7559 using CentroidMD_Solver::CentroidMD_Solver;
7560
7561 int update_thermo(const kids_real& dt) override {
7562 PYBIND11_OVERRIDE(
7563 int, // return type
7564 CentroidMD_Solver, // parent class
7565 update_thermo, // func name
7566 dt
7567 );
7568 }
7569
7570 int init(const int& itraj) override {
7571 PYBIND11_OVERRIDE(
7572 int, // return type
7573 CentroidMD_Solver, // parent class
7574 init, // func name
7575 itraj
7576 );
7577 }
7578
7579 int estimator(const int& isamp, TCFnucl& tcfer) override {
7580 PYBIND11_OVERRIDE(
7581 int, // return type
7582 CentroidMD_Solver, // parent class
7583 estimator, // func name
7584 isamp, tcfer
7585 );
7586 }
7587
7588 int ff_calc1(const int& level) override {
7589 PYBIND11_OVERRIDE(
7590 int, // return type
7591 PIMDTraj_Solver, // parent class
7592 ff_calc1, // func name
7593 level
7594 );
7595 }
7596
7597 int update_r(const kids_real& dt) override {
7598 PYBIND11_OVERRIDE(
7599 int, // return type
7600 PIMDTraj_Solver, // parent class
7601 update_r, // func name
7602 dt
7603 );
7604 }
7605
7606 int update_p(const kids_real& dt) override {
7607 PYBIND11_OVERRIDE(
7608 int, // return type
7609 PIMDTraj_Solver, // parent class
7610 update_p, // func name
7611 dt
7612 );
7613 }
7614
7615 int update_p_harm(const kids_real& dt) override {
7616 PYBIND11_OVERRIDE(
7617 int, // return type
7618 PIMDTraj_Solver, // parent class
7619 update_p_harm, // func name
7620 dt
7621 );
7622 }
7623
7624 int caylay_update_half(
7625 const kids_real& dt) override {
7626 PYBIND11_OVERRIDE(
7627 int, // return type
7628 PIMDTraj_Solver, // parent class
7629 caylay_update_half, // func name
7630 dt
7631 );
7632 }
7633
7634 int BAOAB(int& succ,
7635 int step) override {
7636 PYBIND11_OVERRIDE(
7637 int, // return type
7638 PIMDTraj_Solver, // parent class
7639 BAOAB, // func name
7640 succ, step
7641 );
7642 }
7643
7644 int BCOCB(int& succ, int step) override {
7645 PYBIND11_OVERRIDE(
7646 int, // return type
7647 PIMDTraj_Solver, // parent class
7648 BCOCB, // func name
7649 succ, step
7650 );
7651 }
7652
7653 int traj(TCFnucl& tcfer, const int& PN) override {
7654 PYBIND11_OVERRIDE(
7655 int, // return type
7656 PIMDTraj_Solver, // parent class
7657 traj, // func name
7658 tcfer, PN
7659 );
7660 }
7661
7662 int traj_Middle(TCFnucl& tcfer, const int& PN) override {
7663 PYBIND11_OVERRIDE(
7664 int, // return type
7665 PIMDTraj_Solver, // parent class
7666 traj_Middle, // func name
7667 tcfer, PN
7668 );
7669 }
7670
7671 int traj_property(const kids_real& dt) override {
7672 PYBIND11_OVERRIDE(
7673 int, // return type
7674 PIMDTraj_Solver, // parent class
7675 traj_property, // func name
7676 dt
7677 );
7678 }
7679
7680 int sampler(const int& isamp, TCFnucl& tcfer) override {
7681 PYBIND11_OVERRIDE(
7682 int, // return type
7683 PIMDTraj_Solver, // parent class
7684 sampler, // func name
7685 isamp, tcfer
7686 );
7687 }
7688
7689 int run_impl() override {
7690 PYBIND11_OVERRIDE(
7691 int, // return type
7692 PIMDTraj_Solver, // parent class
7693 run_impl, // func name
7694
7695 );
7696 }
7697
7698 int run_parallel() override {
7699 PYBIND11_OVERRIDE(
7700 int, // return type
7701 PIMDTraj_Solver, // parent class
7702 run_parallel, // func name
7703
7704 );
7705 }
7706
7707 int rot_trans_corr(int Natom, kids_real* m_in, kids_real* x_in, kids_real* p_in, kids_real* F_in,
7708 bool cal_force = true) override {
7709 PYBIND11_OVERRIDE(
7710 int, // return type
7711 PIMDTraj_Solver, // parent class
7712 rot_trans_corr, // func name
7713 Natom, m_in, x_in, p_in, F_in, cal_force
7714 );
7715 }
7716
7717 int pseudo_inv(int N, kids_real* A, kids_real* invA, kids_real* vectmp, kids_real eps) override {
7718 PYBIND11_OVERRIDE(
7719 int, // return type
7720 PIMDTraj_Solver, // parent class
7721 pseudo_inv, // func name
7722 N, A, invA, vectmp, eps
7723 );
7724 }
7725
7726 int cross(kids_real* vec1, kids_real* vec2, kids_real* prod) override {
7727 PYBIND11_OVERRIDE(
7728 int, // return type
7729 PIMDTraj_Solver, // parent class
7730 cross, // func name
7731 vec1, vec2, prod
7732 );
7733 }
7734
7735 int rst_output(const int& traj_in) override {
7736 PYBIND11_OVERRIDE(
7737 int, // return type
7738 PIMDTraj_Solver, // parent class
7739 rst_output, // func name
7740 traj_in
7741 );
7742 }
7743
7744 int rst_read(const int& traj_in) override {
7745 PYBIND11_OVERRIDE(
7746 int, // return type
7747 PIMDTraj_Solver, // parent class
7748 rst_read, // func name
7749 traj_in
7750 );
7751 }
7752
7753 int init_ofs(const int& itraj) override {
7754 PYBIND11_OVERRIDE(
7755 int, // return type
7756 Traj_Solver, // parent class
7757 init_ofs, // func name
7758 itraj
7759 );
7760 }
7761
7762 int final(const int& itraj) override {
7763 PYBIND11_OVERRIDE(
7764 int, // return type
7765 Traj_Solver, // parent class
7766 final, // func name
7767 itraj
7768 );
7769 }
7770
7771 int check_break(int& succ) override {
7772 PYBIND11_OVERRIDE(
7773 int, // return type
7774 Traj_Solver, // parent class
7775 check_break, // func name
7776 succ
7777 );
7778 }
7779
7780 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
7781 PYBIND11_OVERRIDE(
7782 int, // return type
7783 Traj_Solver, // parent class
7784 traj_velocityverlet, // func name
7785 tcfer, N
7786 );
7787 }
7788
7789 int init(int flag) override {
7790 PYBIND11_OVERRIDE(
7791 int, // return type
7792 Solver, // parent class
7793 init, // func name
7794 flag
7795 );
7796 }
7797
7798 int final(int flag) override {
7799 PYBIND11_OVERRIDE(
7800 int, // return type
7801 Solver, // parent class
7802 final, // func name
7803 flag
7804 );
7805 }
7806
7807 int cache(int flag) override {
7808 PYBIND11_OVERRIDE(
7809 int, // return type
7810 Solver, // parent class
7811 cache, // func name
7812 flag
7813 );
7814 }
7815 };
7816
7817 py::class_<CentroidMD_Solver, PIMDTraj_Solver, PyTrampoline_CentroidMD_Solver>(solvers_m, "CentroidMD_Solver", py::dynamic_attr())
7818 .def(py::init<Param, Model*>())
7819 .def(py::init<const std::string&, Model*>())
7820 .def_static("name", &CentroidMD_Solver::name)
7821 .def("update_thermo", static_cast<int (CentroidMD_Solver::*)(const kids_real&)>(&CentroidMD_Solver::update_thermo))
7822 .def("init", static_cast<int (CentroidMD_Solver::*)(const int&)>(&CentroidMD_Solver::init))
7823 .def("estimator", static_cast<int (CentroidMD_Solver::*)(const int&, TCFnucl&)>(&CentroidMD_Solver::estimator))
7824 .def("ff_calc1", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::ff_calc1))
7825 .def("update_r", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_r))
7826 .def("update_p", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p))
7827 .def("update_p_harm", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_p_harm))
7828 .def("caylay_update_half", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::caylay_update_half))
7829 .def("BAOAB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BAOAB))
7830 .def("BCOCB", static_cast<int (PIMDTraj_Solver::*)(int&, int)>(&PIMDTraj_Solver::BCOCB))
7831 .def("update_thermo", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::update_thermo))
7832 .def("traj", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj))
7833 .def("traj_Middle", static_cast<int (PIMDTraj_Solver::*)(TCFnucl&, const int&)>(&PIMDTraj_Solver::traj_Middle))
7834 .def("traj_property", static_cast<int (PIMDTraj_Solver::*)(const kids_real&)>(&PIMDTraj_Solver::traj_property))
7835 .def("sampler", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::sampler))
7836 .def("estimator", static_cast<int (PIMDTraj_Solver::*)(const int&, TCFnucl&)>(&PIMDTraj_Solver::estimator))
7837 .def("run_impl", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_impl))
7838 .def("run_parallel", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::run_parallel))
7839 .def("init", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::init))
7840 .def("all_X2K", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_X2K))
7841 .def("all_K2X", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_K2X))
7842 .def("all_FX2FK", static_cast<int (PIMDTraj_Solver::*)()>(&PIMDTraj_Solver::all_FX2FK))
7843 .def("rot_trans_corr", [](PIMDTraj_Solver& self, int Natom,
7844 py::array_t<kids_real, py::array::c_style | py::array::forcecast> m_in_arr,
7845 py::array_t<kids_real, py::array::c_style | py::array::forcecast> x_in_arr,
7846 py::array_t<kids_real, py::array::c_style | py::array::forcecast> p_in_arr,
7847 py::array_t<kids_real, py::array::c_style | py::array::forcecast> F_in_arr,
7848 bool cal_force) {
7849 return self.rot_trans_corr(Natom, m_in_arr.mutable_data(), x_in_arr.mutable_data(), p_in_arr.mutable_data(), F_in_arr.mutable_data(), cal_force);
7850 }
7851 )
7852 .def("pseudo_inv", [](PIMDTraj_Solver& self, int N,
7853 py::array_t<kids_real, py::array::c_style | py::array::forcecast> A_arr,
7854 py::array_t<kids_real, py::array::c_style | py::array::forcecast> invA_arr,
7855 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vectmp_arr,
7856 kids_real eps) {
7857 return self.pseudo_inv(N, A_arr.mutable_data(), invA_arr.mutable_data(), vectmp_arr.mutable_data(), eps);
7858 }
7859 )
7860 .def("cross", [](PIMDTraj_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec1_arr,
7861 py::array_t<kids_real, py::array::c_style | py::array::forcecast> vec2_arr,
7862 py::array_t<kids_real, py::array::c_style | py::array::forcecast> prod_arr) {
7863 return self.cross(vec1_arr.mutable_data(), vec2_arr.mutable_data(), prod_arr.mutable_data());
7864 }
7865 )
7866 .def("rst_output", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_output))
7867 .def("rst_read", static_cast<int (PIMDTraj_Solver::*)(const int&)>(&PIMDTraj_Solver::rst_read))
7868 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
7869 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
7870 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
7871 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
7872 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
7873 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
7874 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
7875 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
7876 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
7877 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
7878 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
7879 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
7880 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
7881 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
7882 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
7883 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
7884 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
7885 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
7886 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
7887 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
7888 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
7889 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
7890 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
7891
7892 class PyTrampoline_NadTraj_Solver : public NadTraj_Solver {
7893 public:
7894 using NadTraj_Solver::NadTraj_Solver;
7895
7896 int ff_calc1(const int& level, const bool& refered = false) override {
7897 PYBIND11_OVERRIDE(
7898 int, // return type
7899 NadTraj_Solver, // parent class
7900 ff_calc1, // func name
7901 level, refered
7902 );
7903 }
7904
7905 int ff_calc2() override {
7906 PYBIND11_OVERRIDE(
7907 int, // return type
7908 NadTraj_Solver, // parent class
7909 ff_calc2, // func name
7910
7911 );
7912 }
7913
7914 int evolve_elec(kids_complex* Uevolve) override {
7915 PYBIND11_OVERRIDE(
7916 int, // return type
7917 NadTraj_Solver, // parent class
7918 evolve_elec, // func name
7919 Uevolve
7920 );
7921 }
7922
7923 int init_occ2eac(const int& itraj) override {
7924 PYBIND11_OVERRIDE(
7925 int, // return type
7926 NadTraj_Solver, // parent class
7927 init_occ2eac, // func name
7928 itraj
7929 );
7930 }
7931
7932 int init_ofs(const int& itraj) override {
7933 PYBIND11_OVERRIDE(
7934 int, // return type
7935 NadTraj_Solver, // parent class
7936 init_ofs, // func name
7937 itraj
7938 );
7939 }
7940
7941 int init(const int& itraj) override {
7942 PYBIND11_OVERRIDE(
7943 int, // return type
7944 NadTraj_Solver, // parent class
7945 init, // func name
7946 itraj
7947 );
7948 }
7949
7950 int final(const int& itraj) override {
7951 PYBIND11_OVERRIDE(
7952 int, // return type
7953 NadTraj_Solver, // parent class
7954 final, // func name
7955 itraj
7956 );
7957 }
7958
7959 int check_break(int& succ) override {
7960 PYBIND11_OVERRIDE(
7961 int, // return type
7962 NadTraj_Solver, // parent class
7963 check_break, // func name
7964 succ
7965 );
7966 }
7967
7968 int rst_output(const int& itraj) override {
7969 PYBIND11_OVERRIDE(
7970 int, // return type
7971 NadTraj_Solver, // parent class
7972 rst_output, // func name
7973 itraj
7974 );
7975 }
7976
7977 int rst_read(const int& itraj) override {
7978 PYBIND11_OVERRIDE(
7979 int, // return type
7980 NadTraj_Solver, // parent class
7981 rst_read, // func name
7982 itraj
7983 );
7984 }
7985
7986 int traj_property(const kids_real& dt) override {
7987 PYBIND11_OVERRIDE(
7988 int, // return type
7989 NadTraj_Solver, // parent class
7990 traj_property, // func name
7991 dt
7992 );
7993 }
7994
7995 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
7996 PYBIND11_OVERRIDE(
7997 int, // return type
7998 NadTraj_Solver, // parent class
7999 traj, // func name
8000 tcfer, N, F
8001 );
8002 }
8003
8004 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
8005 PYBIND11_OVERRIDE(
8006 int, // return type
8007 NadTraj_Solver, // parent class
8008 traj_velocityverlet, // func name
8009 tcfer, N, F
8010 );
8011 }
8012
8013 int kernel0(kids_complex* rhox, const int& F) override {
8014 PYBIND11_OVERRIDE(
8015 int, // return type
8016 NadTraj_Solver, // parent class
8017 kernel0, // func name
8018 rhox, F
8019 );
8020 }
8021
8022 int kernelt(kids_complex* rhox, const int& F) override {
8023 PYBIND11_OVERRIDE(
8024 int, // return type
8025 NadTraj_Solver, // parent class
8026 kernelt, // func name
8027 rhox, F
8028 );
8029 }
8030
8031 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
8032 PYBIND11_OVERRIDE(
8033 int, // return type
8034 NadTraj_Solver, // parent class
8035 correlation, // func name
8036 isamp, tcfer
8037 );
8038 }
8039
8040 int run_impl() override {
8041 PYBIND11_OVERRIDE(
8042 int, // return type
8043 NadTraj_Solver, // parent class
8044 run_impl, // func name
8045
8046 );
8047 }
8048
8049 int run_parallel() override {
8050 PYBIND11_OVERRIDE(
8051 int, // return type
8052 NadTraj_Solver, // parent class
8053 run_parallel, // func name
8054
8055 );
8056 }
8057
8058 int ff_calc1(const int& level) override {
8059 PYBIND11_OVERRIDE(
8060 int, // return type
8061 Traj_Solver, // parent class
8062 ff_calc1, // func name
8063 level
8064 );
8065 }
8066
8067 int update_r(const kids_real& dt) override {
8068 PYBIND11_OVERRIDE(
8069 int, // return type
8070 Traj_Solver, // parent class
8071 update_r, // func name
8072 dt
8073 );
8074 }
8075
8076 int update_p(const kids_real& dt) override {
8077 PYBIND11_OVERRIDE(
8078 int, // return type
8079 Traj_Solver, // parent class
8080 update_p, // func name
8081 dt
8082 );
8083 }
8084
8085 int update_thermo(const kids_real& dt) override {
8086 PYBIND11_OVERRIDE(
8087 int, // return type
8088 Traj_Solver, // parent class
8089 update_thermo, // func name
8090 dt
8091 );
8092 }
8093
8094 int traj(TCFnucl& tcfer, const int& N) override {
8095 PYBIND11_OVERRIDE(
8096 int, // return type
8097 Traj_Solver, // parent class
8098 traj, // func name
8099 tcfer, N
8100 );
8101 }
8102
8103 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
8104 PYBIND11_OVERRIDE(
8105 int, // return type
8106 Traj_Solver, // parent class
8107 traj_velocityverlet, // func name
8108 tcfer, N
8109 );
8110 }
8111
8112 int sampler(const int& isamp, TCFnucl& tcfer) override {
8113 PYBIND11_OVERRIDE(
8114 int, // return type
8115 Traj_Solver, // parent class
8116 sampler, // func name
8117 isamp, tcfer
8118 );
8119 }
8120
8121 int estimator(const int& isamp, TCFnucl& tcfer) override {
8122 PYBIND11_OVERRIDE(
8123 int, // return type
8124 Traj_Solver, // parent class
8125 estimator, // func name
8126 isamp, tcfer
8127 );
8128 }
8129
8130 int init(int flag) override {
8131 PYBIND11_OVERRIDE(
8132 int, // return type
8133 Solver, // parent class
8134 init, // func name
8135 flag
8136 );
8137 }
8138
8139 int final(int flag) override {
8140 PYBIND11_OVERRIDE(
8141 int, // return type
8142 Solver, // parent class
8143 final, // func name
8144 flag
8145 );
8146 }
8147
8148 int cache(int flag) override {
8149 PYBIND11_OVERRIDE(
8150 int, // return type
8151 Solver, // parent class
8152 cache, // func name
8153 flag
8154 );
8155 }
8156 };
8157
8158 py::class_<NadTraj_Solver, Traj_Solver, PyTrampoline_NadTraj_Solver>(solvers_m, "NadTraj_Solver", py::dynamic_attr())
8159 .def(py::init<const Param&, Model*>())
8160 .def(py::init<const std::string&, Model*>())
8161 .def("ref_mvc", &NadTraj_Solver::ref_mvc, py::return_value_policy::reference_internal)
8162 .def("ref_fmean", &NadTraj_Solver::ref_fmean, py::return_value_policy::reference_internal)
8163 .def("ref_fcorr", &NadTraj_Solver::ref_fcorr, py::return_value_policy::reference_internal)
8164 .def("ref_V", &NadTraj_Solver::ref_V, py::return_value_policy::reference_internal)
8165 .def("ref_dV", &NadTraj_Solver::ref_dV, py::return_value_policy::reference_internal)
8166 .def("ref_ddV", &NadTraj_Solver::ref_ddV, py::return_value_policy::reference_internal)
8167 .def("ref_E", &NadTraj_Solver::ref_E, py::return_value_policy::reference_internal)
8168 .def("ref_T", &NadTraj_Solver::ref_T, py::return_value_policy::reference_internal)
8169 .def("ref_T0", &NadTraj_Solver::ref_T0, py::return_value_policy::reference_internal)
8170 .def("ref_dE", &NadTraj_Solver::ref_dE, py::return_value_policy::reference_internal)
8171 .def("ref_ddE", &NadTraj_Solver::ref_ddE, py::return_value_policy::reference_internal)
8172 .def("ref_L", &NadTraj_Solver::ref_L, py::return_value_policy::reference_internal)
8173 .def("ref_nacv", &NadTraj_Solver::ref_nacv, py::return_value_policy::reference_internal)
8174 .def("ref_eac0", &NadTraj_Solver::ref_eac0, py::return_value_policy::reference_internal)
8175 .def("ref_rho0", &NadTraj_Solver::ref_rho0, py::return_value_policy::reference_internal)
8176 .def("ref_rhot", &NadTraj_Solver::ref_rhot, py::return_value_policy::reference_internal)
8177 .def("ref_U", &NadTraj_Solver::ref_U, py::return_value_policy::reference_internal)
8178 .def("ref_H", &NadTraj_Solver::ref_H, py::return_value_policy::reference_internal)
8179 .def("ref_dH", &NadTraj_Solver::ref_dH, py::return_value_policy::reference_internal)
8180 .def("ref_ddH", &NadTraj_Solver::ref_ddH, py::return_value_policy::reference_internal)
8181 .def("ref_S", &NadTraj_Solver::ref_S, py::return_value_policy::reference_internal)
8182 .def("ref_dL", &NadTraj_Solver::ref_dL, py::return_value_policy::reference_internal)
8183 .def("ref_ddL", &NadTraj_Solver::ref_ddL, py::return_value_policy::reference_internal)
8184 .def("ref_eac", &NadTraj_Solver::ref_eac, py::return_value_policy::reference_internal)
8185 .def("ref_eacf", &NadTraj_Solver::ref_eacf, py::return_value_policy::reference_internal)
8186 .def("ref_eacb", &NadTraj_Solver::ref_eacb, py::return_value_policy::reference_internal)
8187 .def("ref_gmat", &NadTraj_Solver::ref_gmat, py::return_value_policy::reference_internal)
8188 .def("ref_rho", &NadTraj_Solver::ref_rho, py::return_value_policy::reference_internal)
8189 .def_static("name", &NadTraj_Solver::name)
8190 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
8191 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
8192 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
8193 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
8194 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
8195 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
8196 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
8197 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
8198 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
8199 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
8200 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
8201 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
8202 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
8203 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
8204 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
8205 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
8206 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
8207 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
8208 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
8209 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
8210 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
8211 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
8212 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
8213 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
8214 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
8215 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
8216 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
8217 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
8218 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
8219 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
8220 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
8221 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
8222 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
8223 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
8224 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
8225 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
8226 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
8227 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
8228 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
8229
8230 class PyTrampoline_MMD_Solver : public MMD_Solver {
8231 public:
8232 using MMD_Solver::MMD_Solver;
8233
8234 int init(const int& itraj) override {
8235 PYBIND11_OVERRIDE(
8236 int, // return type
8237 MMD_Solver, // parent class
8238 init, // func name
8239 itraj
8240 );
8241 }
8242
8243 int kernel0(kids_complex* rhox, const int& F) override {
8244 PYBIND11_OVERRIDE(
8245 int, // return type
8246 MMD_Solver, // parent class
8247 kernel0, // func name
8248 rhox, F
8249 );
8250 }
8251
8252 int kernelt(kids_complex* rhox, const int& F) override {
8253 PYBIND11_OVERRIDE(
8254 int, // return type
8255 MMD_Solver, // parent class
8256 kernelt, // func name
8257 rhox, F
8258 );
8259 }
8260
8261 int ff_calc1(const int& level, const bool& refered = false) override {
8262 PYBIND11_OVERRIDE(
8263 int, // return type
8264 NadTraj_Solver, // parent class
8265 ff_calc1, // func name
8266 level, refered
8267 );
8268 }
8269
8270 int ff_calc2() override {
8271 PYBIND11_OVERRIDE(
8272 int, // return type
8273 NadTraj_Solver, // parent class
8274 ff_calc2, // func name
8275
8276 );
8277 }
8278
8279 int evolve_elec(kids_complex* Uevolve) override {
8280 PYBIND11_OVERRIDE(
8281 int, // return type
8282 NadTraj_Solver, // parent class
8283 evolve_elec, // func name
8284 Uevolve
8285 );
8286 }
8287
8288 int init_occ2eac(const int& itraj) override {
8289 PYBIND11_OVERRIDE(
8290 int, // return type
8291 NadTraj_Solver, // parent class
8292 init_occ2eac, // func name
8293 itraj
8294 );
8295 }
8296
8297 int init_ofs(const int& itraj) override {
8298 PYBIND11_OVERRIDE(
8299 int, // return type
8300 NadTraj_Solver, // parent class
8301 init_ofs, // func name
8302 itraj
8303 );
8304 }
8305
8306 int final(const int& itraj) override {
8307 PYBIND11_OVERRIDE(
8308 int, // return type
8309 NadTraj_Solver, // parent class
8310 final, // func name
8311 itraj
8312 );
8313 }
8314
8315 int check_break(int& succ) override {
8316 PYBIND11_OVERRIDE(
8317 int, // return type
8318 NadTraj_Solver, // parent class
8319 check_break, // func name
8320 succ
8321 );
8322 }
8323
8324 int rst_output(const int& itraj) override {
8325 PYBIND11_OVERRIDE(
8326 int, // return type
8327 NadTraj_Solver, // parent class
8328 rst_output, // func name
8329 itraj
8330 );
8331 }
8332
8333 int rst_read(const int& itraj) override {
8334 PYBIND11_OVERRIDE(
8335 int, // return type
8336 NadTraj_Solver, // parent class
8337 rst_read, // func name
8338 itraj
8339 );
8340 }
8341
8342 int traj_property(const kids_real& dt) override {
8343 PYBIND11_OVERRIDE(
8344 int, // return type
8345 NadTraj_Solver, // parent class
8346 traj_property, // func name
8347 dt
8348 );
8349 }
8350
8351 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
8352 PYBIND11_OVERRIDE(
8353 int, // return type
8354 NadTraj_Solver, // parent class
8355 traj, // func name
8356 tcfer, N, F
8357 );
8358 }
8359
8360 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
8361 PYBIND11_OVERRIDE(
8362 int, // return type
8363 NadTraj_Solver, // parent class
8364 traj_velocityverlet, // func name
8365 tcfer, N, F
8366 );
8367 }
8368
8369 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
8370 PYBIND11_OVERRIDE(
8371 int, // return type
8372 NadTraj_Solver, // parent class
8373 correlation, // func name
8374 isamp, tcfer
8375 );
8376 }
8377
8378 int run_impl() override {
8379 PYBIND11_OVERRIDE(
8380 int, // return type
8381 NadTraj_Solver, // parent class
8382 run_impl, // func name
8383
8384 );
8385 }
8386
8387 int run_parallel() override {
8388 PYBIND11_OVERRIDE(
8389 int, // return type
8390 NadTraj_Solver, // parent class
8391 run_parallel, // func name
8392
8393 );
8394 }
8395
8396 int ff_calc1(const int& level) override {
8397 PYBIND11_OVERRIDE(
8398 int, // return type
8399 Traj_Solver, // parent class
8400 ff_calc1, // func name
8401 level
8402 );
8403 }
8404
8405 int update_r(const kids_real& dt) override {
8406 PYBIND11_OVERRIDE(
8407 int, // return type
8408 Traj_Solver, // parent class
8409 update_r, // func name
8410 dt
8411 );
8412 }
8413
8414 int update_p(const kids_real& dt) override {
8415 PYBIND11_OVERRIDE(
8416 int, // return type
8417 Traj_Solver, // parent class
8418 update_p, // func name
8419 dt
8420 );
8421 }
8422
8423 int update_thermo(const kids_real& dt) override {
8424 PYBIND11_OVERRIDE(
8425 int, // return type
8426 Traj_Solver, // parent class
8427 update_thermo, // func name
8428 dt
8429 );
8430 }
8431
8432 int traj(TCFnucl& tcfer, const int& N) override {
8433 PYBIND11_OVERRIDE(
8434 int, // return type
8435 Traj_Solver, // parent class
8436 traj, // func name
8437 tcfer, N
8438 );
8439 }
8440
8441 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
8442 PYBIND11_OVERRIDE(
8443 int, // return type
8444 Traj_Solver, // parent class
8445 traj_velocityverlet, // func name
8446 tcfer, N
8447 );
8448 }
8449
8450 int sampler(const int& isamp, TCFnucl& tcfer) override {
8451 PYBIND11_OVERRIDE(
8452 int, // return type
8453 Traj_Solver, // parent class
8454 sampler, // func name
8455 isamp, tcfer
8456 );
8457 }
8458
8459 int estimator(const int& isamp, TCFnucl& tcfer) override {
8460 PYBIND11_OVERRIDE(
8461 int, // return type
8462 Traj_Solver, // parent class
8463 estimator, // func name
8464 isamp, tcfer
8465 );
8466 }
8467
8468 int init(int flag) override {
8469 PYBIND11_OVERRIDE(
8470 int, // return type
8471 Solver, // parent class
8472 init, // func name
8473 flag
8474 );
8475 }
8476
8477 int final(int flag) override {
8478 PYBIND11_OVERRIDE(
8479 int, // return type
8480 Solver, // parent class
8481 final, // func name
8482 flag
8483 );
8484 }
8485
8486 int cache(int flag) override {
8487 PYBIND11_OVERRIDE(
8488 int, // return type
8489 Solver, // parent class
8490 cache, // func name
8491 flag
8492 );
8493 }
8494 };
8495
8496 py::class_<MMD_Solver, NadTraj_Solver, PyTrampoline_MMD_Solver>(solvers_m, "MMD_Solver", py::dynamic_attr())
8497 .def(py::init<Param, Model*>())
8498 .def(py::init<const std::string&, Model*>())
8499 .def_static("name", &MMD_Solver::name)
8500 .def("init", static_cast<int (MMD_Solver::*)(const int&)>(&MMD_Solver::init))
8501 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
8502 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
8503 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
8504 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
8505 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
8506 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
8507 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
8508 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
8509 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
8510 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
8511 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
8512 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
8513 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
8514 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
8515 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
8516 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
8517 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
8518 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
8519 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
8520 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
8521 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
8522 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
8523 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
8524 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
8525 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
8526 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
8527 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
8528 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
8529 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
8530 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
8531 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
8532 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
8533 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
8534 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
8535 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
8536 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
8537 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
8538 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
8539 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
8540
8541 class PyTrampoline_CMM_Solver : public CMM_Solver {
8542 public:
8543 using CMM_Solver::CMM_Solver;
8544
8545 int init_occ2eac(const int& itraj) override {
8546 PYBIND11_OVERRIDE(
8547 int, // return type
8548 CMM_Solver, // parent class
8549 init_occ2eac, // func name
8550 itraj
8551 );
8552 }
8553
8554 int init(const int& itraj) override {
8555 PYBIND11_OVERRIDE(
8556 int, // return type
8557 CMM_Solver, // parent class
8558 init, // func name
8559 itraj
8560 );
8561 }
8562
8563 int kernel_cmm(kids_complex* rhox, kids_real& xic, kids_real& gammac, const int& F) override {
8564 PYBIND11_OVERRIDE(
8565 int, // return type
8566 CMM_Solver, // parent class
8567 kernel_cmm, // func name
8568 rhox, xic, gammac, F
8569 );
8570 }
8571
8572 int kernel0(kids_complex* rhox, const int& F) override {
8573 PYBIND11_OVERRIDE(
8574 int, // return type
8575 CMM_Solver, // parent class
8576 kernel0, // func name
8577 rhox, F
8578 );
8579 }
8580
8581 int kernelt(kids_complex* rhox, const int& F) override {
8582 PYBIND11_OVERRIDE(
8583 int, // return type
8584 CMM_Solver, // parent class
8585 kernelt, // func name
8586 rhox, F
8587 );
8588 }
8589
8590 int ff_calc1(const int& level, const bool& refered = false) override {
8591 PYBIND11_OVERRIDE(
8592 int, // return type
8593 NadTraj_Solver, // parent class
8594 ff_calc1, // func name
8595 level, refered
8596 );
8597 }
8598
8599 int ff_calc2() override {
8600 PYBIND11_OVERRIDE(
8601 int, // return type
8602 NadTraj_Solver, // parent class
8603 ff_calc2, // func name
8604
8605 );
8606 }
8607
8608 int evolve_elec(kids_complex* Uevolve) override {
8609 PYBIND11_OVERRIDE(
8610 int, // return type
8611 NadTraj_Solver, // parent class
8612 evolve_elec, // func name
8613 Uevolve
8614 );
8615 }
8616
8617 int init_ofs(const int& itraj) override {
8618 PYBIND11_OVERRIDE(
8619 int, // return type
8620 NadTraj_Solver, // parent class
8621 init_ofs, // func name
8622 itraj
8623 );
8624 }
8625
8626 int final(const int& itraj) override {
8627 PYBIND11_OVERRIDE(
8628 int, // return type
8629 NadTraj_Solver, // parent class
8630 final, // func name
8631 itraj
8632 );
8633 }
8634
8635 int check_break(int& succ) override {
8636 PYBIND11_OVERRIDE(
8637 int, // return type
8638 NadTraj_Solver, // parent class
8639 check_break, // func name
8640 succ
8641 );
8642 }
8643
8644 int rst_output(const int& itraj) override {
8645 PYBIND11_OVERRIDE(
8646 int, // return type
8647 NadTraj_Solver, // parent class
8648 rst_output, // func name
8649 itraj
8650 );
8651 }
8652
8653 int rst_read(const int& itraj) override {
8654 PYBIND11_OVERRIDE(
8655 int, // return type
8656 NadTraj_Solver, // parent class
8657 rst_read, // func name
8658 itraj
8659 );
8660 }
8661
8662 int traj_property(const kids_real& dt) override {
8663 PYBIND11_OVERRIDE(
8664 int, // return type
8665 NadTraj_Solver, // parent class
8666 traj_property, // func name
8667 dt
8668 );
8669 }
8670
8671 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
8672 PYBIND11_OVERRIDE(
8673 int, // return type
8674 NadTraj_Solver, // parent class
8675 traj, // func name
8676 tcfer, N, F
8677 );
8678 }
8679
8680 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
8681 PYBIND11_OVERRIDE(
8682 int, // return type
8683 NadTraj_Solver, // parent class
8684 traj_velocityverlet, // func name
8685 tcfer, N, F
8686 );
8687 }
8688
8689 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
8690 PYBIND11_OVERRIDE(
8691 int, // return type
8692 NadTraj_Solver, // parent class
8693 correlation, // func name
8694 isamp, tcfer
8695 );
8696 }
8697
8698 int run_impl() override {
8699 PYBIND11_OVERRIDE(
8700 int, // return type
8701 NadTraj_Solver, // parent class
8702 run_impl, // func name
8703
8704 );
8705 }
8706
8707 int run_parallel() override {
8708 PYBIND11_OVERRIDE(
8709 int, // return type
8710 NadTraj_Solver, // parent class
8711 run_parallel, // func name
8712
8713 );
8714 }
8715
8716 int ff_calc1(const int& level) override {
8717 PYBIND11_OVERRIDE(
8718 int, // return type
8719 Traj_Solver, // parent class
8720 ff_calc1, // func name
8721 level
8722 );
8723 }
8724
8725 int update_r(const kids_real& dt) override {
8726 PYBIND11_OVERRIDE(
8727 int, // return type
8728 Traj_Solver, // parent class
8729 update_r, // func name
8730 dt
8731 );
8732 }
8733
8734 int update_p(const kids_real& dt) override {
8735 PYBIND11_OVERRIDE(
8736 int, // return type
8737 Traj_Solver, // parent class
8738 update_p, // func name
8739 dt
8740 );
8741 }
8742
8743 int update_thermo(const kids_real& dt) override {
8744 PYBIND11_OVERRIDE(
8745 int, // return type
8746 Traj_Solver, // parent class
8747 update_thermo, // func name
8748 dt
8749 );
8750 }
8751
8752 int traj(TCFnucl& tcfer, const int& N) override {
8753 PYBIND11_OVERRIDE(
8754 int, // return type
8755 Traj_Solver, // parent class
8756 traj, // func name
8757 tcfer, N
8758 );
8759 }
8760
8761 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
8762 PYBIND11_OVERRIDE(
8763 int, // return type
8764 Traj_Solver, // parent class
8765 traj_velocityverlet, // func name
8766 tcfer, N
8767 );
8768 }
8769
8770 int sampler(const int& isamp, TCFnucl& tcfer) override {
8771 PYBIND11_OVERRIDE(
8772 int, // return type
8773 Traj_Solver, // parent class
8774 sampler, // func name
8775 isamp, tcfer
8776 );
8777 }
8778
8779 int estimator(const int& isamp, TCFnucl& tcfer) override {
8780 PYBIND11_OVERRIDE(
8781 int, // return type
8782 Traj_Solver, // parent class
8783 estimator, // func name
8784 isamp, tcfer
8785 );
8786 }
8787
8788 int init(int flag) override {
8789 PYBIND11_OVERRIDE(
8790 int, // return type
8791 Solver, // parent class
8792 init, // func name
8793 flag
8794 );
8795 }
8796
8797 int final(int flag) override {
8798 PYBIND11_OVERRIDE(
8799 int, // return type
8800 Solver, // parent class
8801 final, // func name
8802 flag
8803 );
8804 }
8805
8806 int cache(int flag) override {
8807 PYBIND11_OVERRIDE(
8808 int, // return type
8809 Solver, // parent class
8810 cache, // func name
8811 flag
8812 );
8813 }
8814 };
8815
8816 py::class_<CMM_Solver, NadTraj_Solver, PyTrampoline_CMM_Solver>(solvers_m, "CMM_Solver", py::dynamic_attr())
8817 .def(py::init<Param, Model*>())
8818 .def(py::init<const std::string&, Model*>())
8819 .def_static("name", &CMM_Solver::name)
8820 .def("init_occ2eac", static_cast<int (CMM_Solver::*)(const int&)>(&CMM_Solver::init_occ2eac))
8821 .def("init", static_cast<int (CMM_Solver::*)(const int&)>(&CMM_Solver::init))
8822 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
8823 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
8824 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
8825 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
8826 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
8827 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
8828 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
8829 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
8830 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
8831 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
8832 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
8833 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
8834 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
8835 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
8836 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
8837 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
8838 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
8839 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
8840 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
8841 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
8842 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
8843 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
8844 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
8845 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
8846 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
8847 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
8848 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
8849 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
8850 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
8851 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
8852 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
8853 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
8854 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
8855 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
8856 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
8857 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
8858 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
8859 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
8860 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
8861
8862 class PyTrampoline_SQC_Solver : public SQC_Solver {
8863 public:
8864 using SQC_Solver::SQC_Solver;
8865
8866 int init_occ2eac(const int& itraj) override {
8867 PYBIND11_OVERRIDE(
8868 int, // return type
8869 SQC_Solver, // parent class
8870 init_occ2eac, // func name
8871 itraj
8872 );
8873 }
8874
8875 int init(const int& itraj) override {
8876 PYBIND11_OVERRIDE(
8877 int, // return type
8878 SQC_Solver, // parent class
8879 init, // func name
8880 itraj
8881 );
8882 }
8883
8884 int kernel0(kids_complex* rhox, const int& F) override {
8885 PYBIND11_OVERRIDE(
8886 int, // return type
8887 SQC_Solver, // parent class
8888 kernel0, // func name
8889 rhox, F
8890 );
8891 }
8892
8893 int kernelt(kids_complex* rhox, const int& F) override {
8894 PYBIND11_OVERRIDE(
8895 int, // return type
8896 SQC_Solver, // parent class
8897 kernelt, // func name
8898 rhox, F
8899 );
8900 }
8901
8902 int ff_calc1(const int& level, const bool& refered = false) override {
8903 PYBIND11_OVERRIDE(
8904 int, // return type
8905 NadTraj_Solver, // parent class
8906 ff_calc1, // func name
8907 level, refered
8908 );
8909 }
8910
8911 int ff_calc2() override {
8912 PYBIND11_OVERRIDE(
8913 int, // return type
8914 NadTraj_Solver, // parent class
8915 ff_calc2, // func name
8916
8917 );
8918 }
8919
8920 int evolve_elec(kids_complex* Uevolve) override {
8921 PYBIND11_OVERRIDE(
8922 int, // return type
8923 NadTraj_Solver, // parent class
8924 evolve_elec, // func name
8925 Uevolve
8926 );
8927 }
8928
8929 int init_ofs(const int& itraj) override {
8930 PYBIND11_OVERRIDE(
8931 int, // return type
8932 NadTraj_Solver, // parent class
8933 init_ofs, // func name
8934 itraj
8935 );
8936 }
8937
8938 int final(const int& itraj) override {
8939 PYBIND11_OVERRIDE(
8940 int, // return type
8941 NadTraj_Solver, // parent class
8942 final, // func name
8943 itraj
8944 );
8945 }
8946
8947 int check_break(int& succ) override {
8948 PYBIND11_OVERRIDE(
8949 int, // return type
8950 NadTraj_Solver, // parent class
8951 check_break, // func name
8952 succ
8953 );
8954 }
8955
8956 int rst_output(const int& itraj) override {
8957 PYBIND11_OVERRIDE(
8958 int, // return type
8959 NadTraj_Solver, // parent class
8960 rst_output, // func name
8961 itraj
8962 );
8963 }
8964
8965 int rst_read(const int& itraj) override {
8966 PYBIND11_OVERRIDE(
8967 int, // return type
8968 NadTraj_Solver, // parent class
8969 rst_read, // func name
8970 itraj
8971 );
8972 }
8973
8974 int traj_property(const kids_real& dt) override {
8975 PYBIND11_OVERRIDE(
8976 int, // return type
8977 NadTraj_Solver, // parent class
8978 traj_property, // func name
8979 dt
8980 );
8981 }
8982
8983 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
8984 PYBIND11_OVERRIDE(
8985 int, // return type
8986 NadTraj_Solver, // parent class
8987 traj, // func name
8988 tcfer, N, F
8989 );
8990 }
8991
8992 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
8993 PYBIND11_OVERRIDE(
8994 int, // return type
8995 NadTraj_Solver, // parent class
8996 traj_velocityverlet, // func name
8997 tcfer, N, F
8998 );
8999 }
9000
9001 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
9002 PYBIND11_OVERRIDE(
9003 int, // return type
9004 NadTraj_Solver, // parent class
9005 correlation, // func name
9006 isamp, tcfer
9007 );
9008 }
9009
9010 int run_impl() override {
9011 PYBIND11_OVERRIDE(
9012 int, // return type
9013 NadTraj_Solver, // parent class
9014 run_impl, // func name
9015
9016 );
9017 }
9018
9019 int run_parallel() override {
9020 PYBIND11_OVERRIDE(
9021 int, // return type
9022 NadTraj_Solver, // parent class
9023 run_parallel, // func name
9024
9025 );
9026 }
9027
9028 int ff_calc1(const int& level) override {
9029 PYBIND11_OVERRIDE(
9030 int, // return type
9031 Traj_Solver, // parent class
9032 ff_calc1, // func name
9033 level
9034 );
9035 }
9036
9037 int update_r(const kids_real& dt) override {
9038 PYBIND11_OVERRIDE(
9039 int, // return type
9040 Traj_Solver, // parent class
9041 update_r, // func name
9042 dt
9043 );
9044 }
9045
9046 int update_p(const kids_real& dt) override {
9047 PYBIND11_OVERRIDE(
9048 int, // return type
9049 Traj_Solver, // parent class
9050 update_p, // func name
9051 dt
9052 );
9053 }
9054
9055 int update_thermo(const kids_real& dt) override {
9056 PYBIND11_OVERRIDE(
9057 int, // return type
9058 Traj_Solver, // parent class
9059 update_thermo, // func name
9060 dt
9061 );
9062 }
9063
9064 int traj(TCFnucl& tcfer, const int& N) override {
9065 PYBIND11_OVERRIDE(
9066 int, // return type
9067 Traj_Solver, // parent class
9068 traj, // func name
9069 tcfer, N
9070 );
9071 }
9072
9073 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
9074 PYBIND11_OVERRIDE(
9075 int, // return type
9076 Traj_Solver, // parent class
9077 traj_velocityverlet, // func name
9078 tcfer, N
9079 );
9080 }
9081
9082 int sampler(const int& isamp, TCFnucl& tcfer) override {
9083 PYBIND11_OVERRIDE(
9084 int, // return type
9085 Traj_Solver, // parent class
9086 sampler, // func name
9087 isamp, tcfer
9088 );
9089 }
9090
9091 int estimator(const int& isamp, TCFnucl& tcfer) override {
9092 PYBIND11_OVERRIDE(
9093 int, // return type
9094 Traj_Solver, // parent class
9095 estimator, // func name
9096 isamp, tcfer
9097 );
9098 }
9099
9100 int init(int flag) override {
9101 PYBIND11_OVERRIDE(
9102 int, // return type
9103 Solver, // parent class
9104 init, // func name
9105 flag
9106 );
9107 }
9108
9109 int final(int flag) override {
9110 PYBIND11_OVERRIDE(
9111 int, // return type
9112 Solver, // parent class
9113 final, // func name
9114 flag
9115 );
9116 }
9117
9118 int cache(int flag) override {
9119 PYBIND11_OVERRIDE(
9120 int, // return type
9121 Solver, // parent class
9122 cache, // func name
9123 flag
9124 );
9125 }
9126 };
9127
9128 py::class_<SQC_Solver, NadTraj_Solver, PyTrampoline_SQC_Solver>(solvers_m, "SQC_Solver", py::dynamic_attr())
9129 .def(py::init<Param, Model*>())
9130 .def(py::init<const std::string&, Model*>())
9131 .def_static("name", &SQC_Solver::name)
9132 .def("init_occ2eac", static_cast<int (SQC_Solver::*)(const int&)>(&SQC_Solver::init_occ2eac))
9133 .def("init", static_cast<int (SQC_Solver::*)(const int&)>(&SQC_Solver::init))
9134 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
9135 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
9136 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
9137 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
9138 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
9139 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
9140 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
9141 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
9142 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
9143 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
9144 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
9145 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
9146 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
9147 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
9148 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
9149 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
9150 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
9151 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
9152 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
9153 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
9154 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
9155 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
9156 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
9157 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
9158 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
9159 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
9160 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
9161 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
9162 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
9163 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
9164 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
9165 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
9166 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
9167 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
9168 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
9169 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
9170 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
9171 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
9172 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
9173
9174 class PyTrampoline_LSC_Solver : public LSC_Solver {
9175 public:
9176 using LSC_Solver::LSC_Solver;
9177
9178 int init_occ2eac(const int& itraj) override {
9179 PYBIND11_OVERRIDE(
9180 int, // return type
9181 LSC_Solver, // parent class
9182 init_occ2eac, // func name
9183 itraj
9184 );
9185 }
9186
9187 int init(const int& itraj) override {
9188 PYBIND11_OVERRIDE(
9189 int, // return type
9190 LSC_Solver, // parent class
9191 init, // func name
9192 itraj
9193 );
9194 }
9195
9196 int kernel_lsc(kids_complex* rhox, kids_real& gammac, const int& F) override {
9197 PYBIND11_OVERRIDE(
9198 int, // return type
9199 LSC_Solver, // parent class
9200 kernel_lsc, // func name
9201 rhox, gammac, F
9202 );
9203 }
9204
9205 int kernel0(kids_complex* rhox, const int& F) override {
9206 PYBIND11_OVERRIDE(
9207 int, // return type
9208 LSC_Solver, // parent class
9209 kernel0, // func name
9210 rhox, F
9211 );
9212 }
9213
9214 int kernelt(kids_complex* rhox, const int& F) override {
9215 PYBIND11_OVERRIDE(
9216 int, // return type
9217 LSC_Solver, // parent class
9218 kernelt, // func name
9219 rhox, F
9220 );
9221 }
9222
9223 int ff_calc1(const int& level, const bool& refered = false) override {
9224 PYBIND11_OVERRIDE(
9225 int, // return type
9226 NadTraj_Solver, // parent class
9227 ff_calc1, // func name
9228 level, refered
9229 );
9230 }
9231
9232 int ff_calc2() override {
9233 PYBIND11_OVERRIDE(
9234 int, // return type
9235 NadTraj_Solver, // parent class
9236 ff_calc2, // func name
9237
9238 );
9239 }
9240
9241 int evolve_elec(kids_complex* Uevolve) override {
9242 PYBIND11_OVERRIDE(
9243 int, // return type
9244 NadTraj_Solver, // parent class
9245 evolve_elec, // func name
9246 Uevolve
9247 );
9248 }
9249
9250 int init_ofs(const int& itraj) override {
9251 PYBIND11_OVERRIDE(
9252 int, // return type
9253 NadTraj_Solver, // parent class
9254 init_ofs, // func name
9255 itraj
9256 );
9257 }
9258
9259 int final(const int& itraj) override {
9260 PYBIND11_OVERRIDE(
9261 int, // return type
9262 NadTraj_Solver, // parent class
9263 final, // func name
9264 itraj
9265 );
9266 }
9267
9268 int check_break(int& succ) override {
9269 PYBIND11_OVERRIDE(
9270 int, // return type
9271 NadTraj_Solver, // parent class
9272 check_break, // func name
9273 succ
9274 );
9275 }
9276
9277 int rst_output(const int& itraj) override {
9278 PYBIND11_OVERRIDE(
9279 int, // return type
9280 NadTraj_Solver, // parent class
9281 rst_output, // func name
9282 itraj
9283 );
9284 }
9285
9286 int rst_read(const int& itraj) override {
9287 PYBIND11_OVERRIDE(
9288 int, // return type
9289 NadTraj_Solver, // parent class
9290 rst_read, // func name
9291 itraj
9292 );
9293 }
9294
9295 int traj_property(const kids_real& dt) override {
9296 PYBIND11_OVERRIDE(
9297 int, // return type
9298 NadTraj_Solver, // parent class
9299 traj_property, // func name
9300 dt
9301 );
9302 }
9303
9304 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
9305 PYBIND11_OVERRIDE(
9306 int, // return type
9307 NadTraj_Solver, // parent class
9308 traj, // func name
9309 tcfer, N, F
9310 );
9311 }
9312
9313 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
9314 PYBIND11_OVERRIDE(
9315 int, // return type
9316 NadTraj_Solver, // parent class
9317 traj_velocityverlet, // func name
9318 tcfer, N, F
9319 );
9320 }
9321
9322 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
9323 PYBIND11_OVERRIDE(
9324 int, // return type
9325 NadTraj_Solver, // parent class
9326 correlation, // func name
9327 isamp, tcfer
9328 );
9329 }
9330
9331 int run_impl() override {
9332 PYBIND11_OVERRIDE(
9333 int, // return type
9334 NadTraj_Solver, // parent class
9335 run_impl, // func name
9336
9337 );
9338 }
9339
9340 int run_parallel() override {
9341 PYBIND11_OVERRIDE(
9342 int, // return type
9343 NadTraj_Solver, // parent class
9344 run_parallel, // func name
9345
9346 );
9347 }
9348
9349 int ff_calc1(const int& level) override {
9350 PYBIND11_OVERRIDE(
9351 int, // return type
9352 Traj_Solver, // parent class
9353 ff_calc1, // func name
9354 level
9355 );
9356 }
9357
9358 int update_r(const kids_real& dt) override {
9359 PYBIND11_OVERRIDE(
9360 int, // return type
9361 Traj_Solver, // parent class
9362 update_r, // func name
9363 dt
9364 );
9365 }
9366
9367 int update_p(const kids_real& dt) override {
9368 PYBIND11_OVERRIDE(
9369 int, // return type
9370 Traj_Solver, // parent class
9371 update_p, // func name
9372 dt
9373 );
9374 }
9375
9376 int update_thermo(const kids_real& dt) override {
9377 PYBIND11_OVERRIDE(
9378 int, // return type
9379 Traj_Solver, // parent class
9380 update_thermo, // func name
9381 dt
9382 );
9383 }
9384
9385 int traj(TCFnucl& tcfer, const int& N) override {
9386 PYBIND11_OVERRIDE(
9387 int, // return type
9388 Traj_Solver, // parent class
9389 traj, // func name
9390 tcfer, N
9391 );
9392 }
9393
9394 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
9395 PYBIND11_OVERRIDE(
9396 int, // return type
9397 Traj_Solver, // parent class
9398 traj_velocityverlet, // func name
9399 tcfer, N
9400 );
9401 }
9402
9403 int sampler(const int& isamp, TCFnucl& tcfer) override {
9404 PYBIND11_OVERRIDE(
9405 int, // return type
9406 Traj_Solver, // parent class
9407 sampler, // func name
9408 isamp, tcfer
9409 );
9410 }
9411
9412 int estimator(const int& isamp, TCFnucl& tcfer) override {
9413 PYBIND11_OVERRIDE(
9414 int, // return type
9415 Traj_Solver, // parent class
9416 estimator, // func name
9417 isamp, tcfer
9418 );
9419 }
9420
9421 int init(int flag) override {
9422 PYBIND11_OVERRIDE(
9423 int, // return type
9424 Solver, // parent class
9425 init, // func name
9426 flag
9427 );
9428 }
9429
9430 int final(int flag) override {
9431 PYBIND11_OVERRIDE(
9432 int, // return type
9433 Solver, // parent class
9434 final, // func name
9435 flag
9436 );
9437 }
9438
9439 int cache(int flag) override {
9440 PYBIND11_OVERRIDE(
9441 int, // return type
9442 Solver, // parent class
9443 cache, // func name
9444 flag
9445 );
9446 }
9447 };
9448
9449 py::class_<LSC_Solver, NadTraj_Solver, PyTrampoline_LSC_Solver>(solvers_m, "LSC_Solver", py::dynamic_attr())
9450 .def(py::init<Param, Model*>())
9451 .def(py::init<const std::string&, Model*>())
9452 .def_static("name", &LSC_Solver::name)
9453 .def("init_occ2eac", static_cast<int (LSC_Solver::*)(const int&)>(&LSC_Solver::init_occ2eac))
9454 .def("init", static_cast<int (LSC_Solver::*)(const int&)>(&LSC_Solver::init))
9455 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
9456 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
9457 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
9458 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
9459 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
9460 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
9461 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
9462 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
9463 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
9464 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
9465 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
9466 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
9467 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
9468 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
9469 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
9470 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
9471 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
9472 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
9473 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
9474 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
9475 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
9476 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
9477 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
9478 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
9479 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
9480 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
9481 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
9482 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
9483 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
9484 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
9485 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
9486 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
9487 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
9488 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
9489 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
9490 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
9491 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
9492 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
9493 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
9494
9495 class PyTrampoline_SMM_Solver : public SMM_Solver {
9496 public:
9497 using SMM_Solver::SMM_Solver;
9498
9499 int init_occ2eac(const int& itraj) override {
9500 PYBIND11_OVERRIDE(
9501 int, // return type
9502 SMM_Solver, // parent class
9503 init_occ2eac, // func name
9504 itraj
9505 );
9506 }
9507
9508 int init(const int& itraj) override {
9509 PYBIND11_OVERRIDE(
9510 int, // return type
9511 SMM_Solver, // parent class
9512 init, // func name
9513 itraj
9514 );
9515 }
9516
9517 int kernel_scmm(kids_complex* rhox, const int& F) override {
9518 PYBIND11_OVERRIDE(
9519 int, // return type
9520 SMM_Solver, // parent class
9521 kernel_scmm, // func name
9522 rhox, F
9523 );
9524 }
9525
9526 int kernel0(kids_complex* rhox, const int& F) override {
9527 PYBIND11_OVERRIDE(
9528 int, // return type
9529 SMM_Solver, // parent class
9530 kernel0, // func name
9531 rhox, F
9532 );
9533 }
9534
9535 int kernelt(kids_complex* rhox, const int& F) override {
9536 PYBIND11_OVERRIDE(
9537 int, // return type
9538 SMM_Solver, // parent class
9539 kernelt, // func name
9540 rhox, F
9541 );
9542 }
9543
9544 int ff_calc1(const int& level, const bool& refered = false) override {
9545 PYBIND11_OVERRIDE(
9546 int, // return type
9547 NadTraj_Solver, // parent class
9548 ff_calc1, // func name
9549 level, refered
9550 );
9551 }
9552
9553 int ff_calc2() override {
9554 PYBIND11_OVERRIDE(
9555 int, // return type
9556 NadTraj_Solver, // parent class
9557 ff_calc2, // func name
9558
9559 );
9560 }
9561
9562 int evolve_elec(kids_complex* Uevolve) override {
9563 PYBIND11_OVERRIDE(
9564 int, // return type
9565 NadTraj_Solver, // parent class
9566 evolve_elec, // func name
9567 Uevolve
9568 );
9569 }
9570
9571 int init_ofs(const int& itraj) override {
9572 PYBIND11_OVERRIDE(
9573 int, // return type
9574 NadTraj_Solver, // parent class
9575 init_ofs, // func name
9576 itraj
9577 );
9578 }
9579
9580 int final(const int& itraj) override {
9581 PYBIND11_OVERRIDE(
9582 int, // return type
9583 NadTraj_Solver, // parent class
9584 final, // func name
9585 itraj
9586 );
9587 }
9588
9589 int check_break(int& succ) override {
9590 PYBIND11_OVERRIDE(
9591 int, // return type
9592 NadTraj_Solver, // parent class
9593 check_break, // func name
9594 succ
9595 );
9596 }
9597
9598 int rst_output(const int& itraj) override {
9599 PYBIND11_OVERRIDE(
9600 int, // return type
9601 NadTraj_Solver, // parent class
9602 rst_output, // func name
9603 itraj
9604 );
9605 }
9606
9607 int rst_read(const int& itraj) override {
9608 PYBIND11_OVERRIDE(
9609 int, // return type
9610 NadTraj_Solver, // parent class
9611 rst_read, // func name
9612 itraj
9613 );
9614 }
9615
9616 int traj_property(const kids_real& dt) override {
9617 PYBIND11_OVERRIDE(
9618 int, // return type
9619 NadTraj_Solver, // parent class
9620 traj_property, // func name
9621 dt
9622 );
9623 }
9624
9625 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
9626 PYBIND11_OVERRIDE(
9627 int, // return type
9628 NadTraj_Solver, // parent class
9629 traj, // func name
9630 tcfer, N, F
9631 );
9632 }
9633
9634 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
9635 PYBIND11_OVERRIDE(
9636 int, // return type
9637 NadTraj_Solver, // parent class
9638 traj_velocityverlet, // func name
9639 tcfer, N, F
9640 );
9641 }
9642
9643 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
9644 PYBIND11_OVERRIDE(
9645 int, // return type
9646 NadTraj_Solver, // parent class
9647 correlation, // func name
9648 isamp, tcfer
9649 );
9650 }
9651
9652 int run_impl() override {
9653 PYBIND11_OVERRIDE(
9654 int, // return type
9655 NadTraj_Solver, // parent class
9656 run_impl, // func name
9657
9658 );
9659 }
9660
9661 int run_parallel() override {
9662 PYBIND11_OVERRIDE(
9663 int, // return type
9664 NadTraj_Solver, // parent class
9665 run_parallel, // func name
9666
9667 );
9668 }
9669
9670 int ff_calc1(const int& level) override {
9671 PYBIND11_OVERRIDE(
9672 int, // return type
9673 Traj_Solver, // parent class
9674 ff_calc1, // func name
9675 level
9676 );
9677 }
9678
9679 int update_r(const kids_real& dt) override {
9680 PYBIND11_OVERRIDE(
9681 int, // return type
9682 Traj_Solver, // parent class
9683 update_r, // func name
9684 dt
9685 );
9686 }
9687
9688 int update_p(const kids_real& dt) override {
9689 PYBIND11_OVERRIDE(
9690 int, // return type
9691 Traj_Solver, // parent class
9692 update_p, // func name
9693 dt
9694 );
9695 }
9696
9697 int update_thermo(const kids_real& dt) override {
9698 PYBIND11_OVERRIDE(
9699 int, // return type
9700 Traj_Solver, // parent class
9701 update_thermo, // func name
9702 dt
9703 );
9704 }
9705
9706 int traj(TCFnucl& tcfer, const int& N) override {
9707 PYBIND11_OVERRIDE(
9708 int, // return type
9709 Traj_Solver, // parent class
9710 traj, // func name
9711 tcfer, N
9712 );
9713 }
9714
9715 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
9716 PYBIND11_OVERRIDE(
9717 int, // return type
9718 Traj_Solver, // parent class
9719 traj_velocityverlet, // func name
9720 tcfer, N
9721 );
9722 }
9723
9724 int sampler(const int& isamp, TCFnucl& tcfer) override {
9725 PYBIND11_OVERRIDE(
9726 int, // return type
9727 Traj_Solver, // parent class
9728 sampler, // func name
9729 isamp, tcfer
9730 );
9731 }
9732
9733 int estimator(const int& isamp, TCFnucl& tcfer) override {
9734 PYBIND11_OVERRIDE(
9735 int, // return type
9736 Traj_Solver, // parent class
9737 estimator, // func name
9738 isamp, tcfer
9739 );
9740 }
9741
9742 int init(int flag) override {
9743 PYBIND11_OVERRIDE(
9744 int, // return type
9745 Solver, // parent class
9746 init, // func name
9747 flag
9748 );
9749 }
9750
9751 int final(int flag) override {
9752 PYBIND11_OVERRIDE(
9753 int, // return type
9754 Solver, // parent class
9755 final, // func name
9756 flag
9757 );
9758 }
9759
9760 int cache(int flag) override {
9761 PYBIND11_OVERRIDE(
9762 int, // return type
9763 Solver, // parent class
9764 cache, // func name
9765 flag
9766 );
9767 }
9768 };
9769
9770 py::class_<SMM_Solver, NadTraj_Solver, PyTrampoline_SMM_Solver>(solvers_m, "SMM_Solver", py::dynamic_attr())
9771 .def(py::init<Param, Model*>())
9772 .def(py::init<const std::string&, Model*>())
9773 .def("ref_xi1", &SMM_Solver::ref_xi1, py::return_value_policy::reference_internal)
9774 .def_static("name", &SMM_Solver::name)
9775 .def("init_occ2eac", static_cast<int (SMM_Solver::*)(const int&)>(&SMM_Solver::init_occ2eac))
9776 .def("init", static_cast<int (SMM_Solver::*)(const int&)>(&SMM_Solver::init))
9777 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
9778 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
9779 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
9780 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
9781 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
9782 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
9783 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
9784 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
9785 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
9786 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
9787 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
9788 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
9789 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
9790 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
9791 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
9792 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
9793 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
9794 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
9795 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
9796 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
9797 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
9798 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
9799 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
9800 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
9801 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
9802 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
9803 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
9804 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
9805 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
9806 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
9807 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
9808 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
9809 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
9810 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
9811 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
9812 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
9813 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
9814 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
9815 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
9816
9817 class PyTrampoline_Multi_NadTraj_Solver : public Multi_NadTraj_Solver {
9818 public:
9819 using Multi_NadTraj_Solver::Multi_NadTraj_Solver;
9820
9821 int ff_calc1(const int& level, const bool& refered = false) override {
9822 PYBIND11_OVERRIDE(
9823 int, // return type
9824 Multi_NadTraj_Solver, // parent class
9825 ff_calc1, // func name
9826 level, refered
9827 );
9828 }
9829
9830 int multi_ff_calc1(const int& level, const bool& refered = false) override {
9831 PYBIND11_OVERRIDE(
9832 int, // return type
9833 Multi_NadTraj_Solver, // parent class
9834 multi_ff_calc1, // func name
9835 level, refered
9836 );
9837 }
9838
9839 int ff_calc2() override {
9840 PYBIND11_OVERRIDE(
9841 int, // return type
9842 Multi_NadTraj_Solver, // parent class
9843 ff_calc2, // func name
9844
9845 );
9846 }
9847
9848 int multi_ff_calc2() override {
9849 PYBIND11_OVERRIDE(
9850 int, // return type
9851 Multi_NadTraj_Solver, // parent class
9852 multi_ff_calc2, // func name
9853
9854 );
9855 }
9856
9857 int evolve_elec(kids_complex* Uevolve) override {
9858 PYBIND11_OVERRIDE(
9859 int, // return type
9860 Multi_NadTraj_Solver, // parent class
9861 evolve_elec, // func name
9862 Uevolve
9863 );
9864 }
9865
9866 int multi_evolve_elec(kids_complex* Uevolve) override {
9867 PYBIND11_OVERRIDE(
9868 int, // return type
9869 Multi_NadTraj_Solver, // parent class
9870 multi_evolve_elec, // func name
9871 Uevolve
9872 );
9873 }
9874
9875 int update_p(const kids_real& dt_in) override {
9876 PYBIND11_OVERRIDE(
9877 int, // return type
9878 Multi_NadTraj_Solver, // parent class
9879 update_p, // func name
9880 dt_in
9881 );
9882 }
9883
9884 int update_r(const kids_real& dt_in) override {
9885 PYBIND11_OVERRIDE(
9886 int, // return type
9887 Multi_NadTraj_Solver, // parent class
9888 update_r, // func name
9889 dt_in
9890 );
9891 }
9892
9893 int update_thermo(const kids_real& dt_in) override {
9894 PYBIND11_OVERRIDE(
9895 int, // return type
9896 Multi_NadTraj_Solver, // parent class
9897 update_thermo, // func name
9898 dt_in
9899 );
9900 }
9901
9902 int init(const int& itraj) override {
9903 PYBIND11_OVERRIDE(
9904 int, // return type
9905 Multi_NadTraj_Solver, // parent class
9906 init, // func name
9907 itraj
9908 );
9909 }
9910
9911 int multi_init(const int& itraj) override {
9912 PYBIND11_OVERRIDE(
9913 int, // return type
9914 Multi_NadTraj_Solver, // parent class
9915 multi_init, // func name
9916 itraj
9917 );
9918 }
9919
9920 int init_occ2eac(const int& itraj) override {
9921 PYBIND11_OVERRIDE(
9922 int, // return type
9923 NadTraj_Solver, // parent class
9924 init_occ2eac, // func name
9925 itraj
9926 );
9927 }
9928
9929 int init_ofs(const int& itraj) override {
9930 PYBIND11_OVERRIDE(
9931 int, // return type
9932 NadTraj_Solver, // parent class
9933 init_ofs, // func name
9934 itraj
9935 );
9936 }
9937
9938 int final(const int& itraj) override {
9939 PYBIND11_OVERRIDE(
9940 int, // return type
9941 NadTraj_Solver, // parent class
9942 final, // func name
9943 itraj
9944 );
9945 }
9946
9947 int check_break(int& succ) override {
9948 PYBIND11_OVERRIDE(
9949 int, // return type
9950 NadTraj_Solver, // parent class
9951 check_break, // func name
9952 succ
9953 );
9954 }
9955
9956 int rst_output(const int& itraj) override {
9957 PYBIND11_OVERRIDE(
9958 int, // return type
9959 NadTraj_Solver, // parent class
9960 rst_output, // func name
9961 itraj
9962 );
9963 }
9964
9965 int rst_read(const int& itraj) override {
9966 PYBIND11_OVERRIDE(
9967 int, // return type
9968 NadTraj_Solver, // parent class
9969 rst_read, // func name
9970 itraj
9971 );
9972 }
9973
9974 int traj_property(const kids_real& dt) override {
9975 PYBIND11_OVERRIDE(
9976 int, // return type
9977 NadTraj_Solver, // parent class
9978 traj_property, // func name
9979 dt
9980 );
9981 }
9982
9983 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
9984 PYBIND11_OVERRIDE(
9985 int, // return type
9986 NadTraj_Solver, // parent class
9987 traj, // func name
9988 tcfer, N, F
9989 );
9990 }
9991
9992 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
9993 PYBIND11_OVERRIDE(
9994 int, // return type
9995 NadTraj_Solver, // parent class
9996 traj_velocityverlet, // func name
9997 tcfer, N, F
9998 );
9999 }
10000
10001 int kernel0(kids_complex* rhox, const int& F) override {
10002 PYBIND11_OVERRIDE(
10003 int, // return type
10004 NadTraj_Solver, // parent class
10005 kernel0, // func name
10006 rhox, F
10007 );
10008 }
10009
10010 int kernelt(kids_complex* rhox, const int& F) override {
10011 PYBIND11_OVERRIDE(
10012 int, // return type
10013 NadTraj_Solver, // parent class
10014 kernelt, // func name
10015 rhox, F
10016 );
10017 }
10018
10019 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
10020 PYBIND11_OVERRIDE(
10021 int, // return type
10022 NadTraj_Solver, // parent class
10023 correlation, // func name
10024 isamp, tcfer
10025 );
10026 }
10027
10028 int run_impl() override {
10029 PYBIND11_OVERRIDE(
10030 int, // return type
10031 NadTraj_Solver, // parent class
10032 run_impl, // func name
10033
10034 );
10035 }
10036
10037 int run_parallel() override {
10038 PYBIND11_OVERRIDE(
10039 int, // return type
10040 NadTraj_Solver, // parent class
10041 run_parallel, // func name
10042
10043 );
10044 }
10045
10046 int ff_calc1(const int& level) override {
10047 PYBIND11_OVERRIDE(
10048 int, // return type
10049 Traj_Solver, // parent class
10050 ff_calc1, // func name
10051 level
10052 );
10053 }
10054
10055 int traj(TCFnucl& tcfer, const int& N) override {
10056 PYBIND11_OVERRIDE(
10057 int, // return type
10058 Traj_Solver, // parent class
10059 traj, // func name
10060 tcfer, N
10061 );
10062 }
10063
10064 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
10065 PYBIND11_OVERRIDE(
10066 int, // return type
10067 Traj_Solver, // parent class
10068 traj_velocityverlet, // func name
10069 tcfer, N
10070 );
10071 }
10072
10073 int sampler(const int& isamp, TCFnucl& tcfer) override {
10074 PYBIND11_OVERRIDE(
10075 int, // return type
10076 Traj_Solver, // parent class
10077 sampler, // func name
10078 isamp, tcfer
10079 );
10080 }
10081
10082 int estimator(const int& isamp, TCFnucl& tcfer) override {
10083 PYBIND11_OVERRIDE(
10084 int, // return type
10085 Traj_Solver, // parent class
10086 estimator, // func name
10087 isamp, tcfer
10088 );
10089 }
10090
10091 int init(int flag) override {
10092 PYBIND11_OVERRIDE(
10093 int, // return type
10094 Solver, // parent class
10095 init, // func name
10096 flag
10097 );
10098 }
10099
10100 int final(int flag) override {
10101 PYBIND11_OVERRIDE(
10102 int, // return type
10103 Solver, // parent class
10104 final, // func name
10105 flag
10106 );
10107 }
10108
10109 int cache(int flag) override {
10110 PYBIND11_OVERRIDE(
10111 int, // return type
10112 Solver, // parent class
10113 cache, // func name
10114 flag
10115 );
10116 }
10117 };
10118
10119 py::class_<Multi_NadTraj_Solver, NadTraj_Solver, PyTrampoline_Multi_NadTraj_Solver>(solvers_m, "Multi_NadTraj_Solver", py::dynamic_attr())
10120 .def(py::init<const Param&, Model*, const int&>())
10121 .def(py::init<const std::string&, Model*>())
10122 .def("ref_nrs", &Multi_NadTraj_Solver::ref_nrs, py::return_value_policy::reference_internal)
10123 .def("ref_nps", &Multi_NadTraj_Solver::ref_nps, py::return_value_policy::reference_internal)
10124 .def("ref_nms", &Multi_NadTraj_Solver::ref_nms, py::return_value_policy::reference_internal)
10125 .def("ref_nfs", &Multi_NadTraj_Solver::ref_nfs, py::return_value_policy::reference_internal)
10126 .def("ref_vpeses", &Multi_NadTraj_Solver::ref_vpeses, py::return_value_policy::reference_internal)
10127 .def("ref_grads", &Multi_NadTraj_Solver::ref_grads, py::return_value_policy::reference_internal)
10128 .def("ref_hesses", &Multi_NadTraj_Solver::ref_hesses, py::return_value_policy::reference_internal)
10129 .def("ref_Vs", &Multi_NadTraj_Solver::ref_Vs, py::return_value_policy::reference_internal)
10130 .def("ref_dVs", &Multi_NadTraj_Solver::ref_dVs, py::return_value_policy::reference_internal)
10131 .def("ref_ddVs", &Multi_NadTraj_Solver::ref_ddVs, py::return_value_policy::reference_internal)
10132 .def("ref_Es", &Multi_NadTraj_Solver::ref_Es, py::return_value_policy::reference_internal)
10133 .def("ref_Ts", &Multi_NadTraj_Solver::ref_Ts, py::return_value_policy::reference_internal)
10134 .def("ref_dEs", &Multi_NadTraj_Solver::ref_dEs, py::return_value_policy::reference_internal)
10135 .def("ref_nacvs", &Multi_NadTraj_Solver::ref_nacvs, py::return_value_policy::reference_internal)
10136 .def("ref_Ls", &Multi_NadTraj_Solver::ref_Ls, py::return_value_policy::reference_internal)
10137 .def("ref_Ss", &Multi_NadTraj_Solver::ref_Ss, py::return_value_policy::reference_internal)
10138 .def("ref_rhos", &Multi_NadTraj_Solver::ref_rhos, py::return_value_policy::reference_internal)
10139 .def("ref_Us", &Multi_NadTraj_Solver::ref_Us, py::return_value_policy::reference_internal)
10140 .def_static("name", &Multi_NadTraj_Solver::name)
10141 .def("ff_calc1", static_cast<int (Multi_NadTraj_Solver::*)(const int&, const bool&)>(&Multi_NadTraj_Solver::ff_calc1))
10142 .def("multi_ff_calc1", static_cast<int (Multi_NadTraj_Solver::*)(const int&, const bool&)>(&Multi_NadTraj_Solver::multi_ff_calc1))
10143 .def("ff_calc2", static_cast<int (Multi_NadTraj_Solver::*)()>(&Multi_NadTraj_Solver::ff_calc2))
10144 .def("multi_ff_calc2", static_cast<int (Multi_NadTraj_Solver::*)()>(&Multi_NadTraj_Solver::multi_ff_calc2))
10145 .def("update_p", static_cast<int (Multi_NadTraj_Solver::*)(const kids_real&)>(&Multi_NadTraj_Solver::update_p))
10146 .def("update_r", static_cast<int (Multi_NadTraj_Solver::*)(const kids_real&)>(&Multi_NadTraj_Solver::update_r))
10147 .def("update_thermo", static_cast<int (Multi_NadTraj_Solver::*)(const kids_real&)>(&Multi_NadTraj_Solver::update_thermo))
10148 .def("init", static_cast<int (Multi_NadTraj_Solver::*)(const int&)>(&Multi_NadTraj_Solver::init))
10149 .def("multi_init", static_cast<int (Multi_NadTraj_Solver::*)(const int&)>(&Multi_NadTraj_Solver::multi_init))
10150 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
10151 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
10152 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
10153 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
10154 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
10155 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
10156 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
10157 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
10158 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
10159 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
10160 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
10161 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
10162 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
10163 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
10164 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
10165 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
10166 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
10167 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
10168 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
10169 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
10170 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
10171 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
10172 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
10173 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
10174 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
10175 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
10176 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
10177 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
10178 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
10179 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
10180 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
10181 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
10182 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
10183 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
10184 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
10185 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
10186 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
10187 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
10188 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
10189
10190 class PyTrampoline_PMM_Solver : public PMM_Solver {
10191 public:
10192 using PMM_Solver::PMM_Solver;
10193
10194 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
10195 PYBIND11_OVERRIDE(
10196 int, // return type
10197 PMM_Solver, // parent class
10198 traj, // func name
10199 tcfer, N, F
10200 );
10201 }
10202
10203 int multi_evolve_elec(kids_complex* Uevolve) override {
10204 PYBIND11_OVERRIDE(
10205 int, // return type
10206 PMM_Solver, // parent class
10207 multi_evolve_elec, // func name
10208 Uevolve
10209 );
10210 }
10211
10212 int multi_ff_calc2() override {
10213 PYBIND11_OVERRIDE(
10214 int, // return type
10215 PMM_Solver, // parent class
10216 multi_ff_calc2, // func name
10217
10218 );
10219 }
10220
10221 int multi_init(const int& itraj) override {
10222 PYBIND11_OVERRIDE(
10223 int, // return type
10224 PMM_Solver, // parent class
10225 multi_init, // func name
10226 itraj
10227 );
10228 }
10229
10230 int multi_reinit(const int& itraj) override {
10231 PYBIND11_OVERRIDE(
10232 int, // return type
10233 PMM_Solver, // parent class
10234 multi_reinit, // func name
10235 itraj
10236 );
10237 }
10238
10239 int kernel0(kids_complex* rhox, const int& F) override {
10240 PYBIND11_OVERRIDE(
10241 int, // return type
10242 PMM_Solver, // parent class
10243 kernel0, // func name
10244 rhox, F
10245 );
10246 }
10247
10248 int kernelt(kids_complex* rhox, const int& F) override {
10249 PYBIND11_OVERRIDE(
10250 int, // return type
10251 PMM_Solver, // parent class
10252 kernelt, // func name
10253 rhox, F
10254 );
10255 }
10256
10257 int ff_calc1(const int& level, const bool& refered = false) override {
10258 PYBIND11_OVERRIDE(
10259 int, // return type
10260 Multi_NadTraj_Solver, // parent class
10261 ff_calc1, // func name
10262 level, refered
10263 );
10264 }
10265
10266 int multi_ff_calc1(const int& level, const bool& refered = false) override {
10267 PYBIND11_OVERRIDE(
10268 int, // return type
10269 Multi_NadTraj_Solver, // parent class
10270 multi_ff_calc1, // func name
10271 level, refered
10272 );
10273 }
10274
10275 int ff_calc2() override {
10276 PYBIND11_OVERRIDE(
10277 int, // return type
10278 Multi_NadTraj_Solver, // parent class
10279 ff_calc2, // func name
10280
10281 );
10282 }
10283
10284 int evolve_elec(kids_complex* Uevolve) override {
10285 PYBIND11_OVERRIDE(
10286 int, // return type
10287 Multi_NadTraj_Solver, // parent class
10288 evolve_elec, // func name
10289 Uevolve
10290 );
10291 }
10292
10293 int update_p(const kids_real& dt_in) override {
10294 PYBIND11_OVERRIDE(
10295 int, // return type
10296 Multi_NadTraj_Solver, // parent class
10297 update_p, // func name
10298 dt_in
10299 );
10300 }
10301
10302 int update_r(const kids_real& dt_in) override {
10303 PYBIND11_OVERRIDE(
10304 int, // return type
10305 Multi_NadTraj_Solver, // parent class
10306 update_r, // func name
10307 dt_in
10308 );
10309 }
10310
10311 int update_thermo(const kids_real& dt_in) override {
10312 PYBIND11_OVERRIDE(
10313 int, // return type
10314 Multi_NadTraj_Solver, // parent class
10315 update_thermo, // func name
10316 dt_in
10317 );
10318 }
10319
10320 int init(const int& itraj) override {
10321 PYBIND11_OVERRIDE(
10322 int, // return type
10323 Multi_NadTraj_Solver, // parent class
10324 init, // func name
10325 itraj
10326 );
10327 }
10328
10329 int init_occ2eac(const int& itraj) override {
10330 PYBIND11_OVERRIDE(
10331 int, // return type
10332 NadTraj_Solver, // parent class
10333 init_occ2eac, // func name
10334 itraj
10335 );
10336 }
10337
10338 int init_ofs(const int& itraj) override {
10339 PYBIND11_OVERRIDE(
10340 int, // return type
10341 NadTraj_Solver, // parent class
10342 init_ofs, // func name
10343 itraj
10344 );
10345 }
10346
10347 int final(const int& itraj) override {
10348 PYBIND11_OVERRIDE(
10349 int, // return type
10350 NadTraj_Solver, // parent class
10351 final, // func name
10352 itraj
10353 );
10354 }
10355
10356 int check_break(int& succ) override {
10357 PYBIND11_OVERRIDE(
10358 int, // return type
10359 NadTraj_Solver, // parent class
10360 check_break, // func name
10361 succ
10362 );
10363 }
10364
10365 int rst_output(const int& itraj) override {
10366 PYBIND11_OVERRIDE(
10367 int, // return type
10368 NadTraj_Solver, // parent class
10369 rst_output, // func name
10370 itraj
10371 );
10372 }
10373
10374 int rst_read(const int& itraj) override {
10375 PYBIND11_OVERRIDE(
10376 int, // return type
10377 NadTraj_Solver, // parent class
10378 rst_read, // func name
10379 itraj
10380 );
10381 }
10382
10383 int traj_property(const kids_real& dt) override {
10384 PYBIND11_OVERRIDE(
10385 int, // return type
10386 NadTraj_Solver, // parent class
10387 traj_property, // func name
10388 dt
10389 );
10390 }
10391
10392 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
10393 PYBIND11_OVERRIDE(
10394 int, // return type
10395 NadTraj_Solver, // parent class
10396 traj_velocityverlet, // func name
10397 tcfer, N, F
10398 );
10399 }
10400
10401 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
10402 PYBIND11_OVERRIDE(
10403 int, // return type
10404 NadTraj_Solver, // parent class
10405 correlation, // func name
10406 isamp, tcfer
10407 );
10408 }
10409
10410 int run_impl() override {
10411 PYBIND11_OVERRIDE(
10412 int, // return type
10413 NadTraj_Solver, // parent class
10414 run_impl, // func name
10415
10416 );
10417 }
10418
10419 int run_parallel() override {
10420 PYBIND11_OVERRIDE(
10421 int, // return type
10422 NadTraj_Solver, // parent class
10423 run_parallel, // func name
10424
10425 );
10426 }
10427
10428 int ff_calc1(const int& level) override {
10429 PYBIND11_OVERRIDE(
10430 int, // return type
10431 Traj_Solver, // parent class
10432 ff_calc1, // func name
10433 level
10434 );
10435 }
10436
10437 int traj(TCFnucl& tcfer, const int& N) override {
10438 PYBIND11_OVERRIDE(
10439 int, // return type
10440 Traj_Solver, // parent class
10441 traj, // func name
10442 tcfer, N
10443 );
10444 }
10445
10446 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
10447 PYBIND11_OVERRIDE(
10448 int, // return type
10449 Traj_Solver, // parent class
10450 traj_velocityverlet, // func name
10451 tcfer, N
10452 );
10453 }
10454
10455 int sampler(const int& isamp, TCFnucl& tcfer) override {
10456 PYBIND11_OVERRIDE(
10457 int, // return type
10458 Traj_Solver, // parent class
10459 sampler, // func name
10460 isamp, tcfer
10461 );
10462 }
10463
10464 int estimator(const int& isamp, TCFnucl& tcfer) override {
10465 PYBIND11_OVERRIDE(
10466 int, // return type
10467 Traj_Solver, // parent class
10468 estimator, // func name
10469 isamp, tcfer
10470 );
10471 }
10472
10473 int init(int flag) override {
10474 PYBIND11_OVERRIDE(
10475 int, // return type
10476 Solver, // parent class
10477 init, // func name
10478 flag
10479 );
10480 }
10481
10482 int final(int flag) override {
10483 PYBIND11_OVERRIDE(
10484 int, // return type
10485 Solver, // parent class
10486 final, // func name
10487 flag
10488 );
10489 }
10490
10491 int cache(int flag) override {
10492 PYBIND11_OVERRIDE(
10493 int, // return type
10494 Solver, // parent class
10495 cache, // func name
10496 flag
10497 );
10498 }
10499 };
10500
10501 py::class_<PMM_Solver, Multi_NadTraj_Solver, PyTrampoline_PMM_Solver>(solvers_m, "PMM_Solver", py::dynamic_attr())
10502 .def(py::init<const Param&, Model*>())
10503 .def(py::init<const std::string&, Model*>())
10504 .def("ref_drhos", &PMM_Solver::ref_drhos, py::return_value_policy::reference_internal)
10505 .def("ref_deltarhos", &PMM_Solver::ref_deltarhos, py::return_value_policy::reference_internal)
10506 .def("ref_rhosumt", &PMM_Solver::ref_rhosumt, py::return_value_policy::reference_internal)
10507 .def("ref_rhoavg", &PMM_Solver::ref_rhoavg, py::return_value_policy::reference_internal)
10508 .def("ref_rho_corr", &PMM_Solver::ref_rho_corr, py::return_value_policy::reference_internal)
10509 .def_static("name", &PMM_Solver::name)
10510 .def("traj", static_cast<int (PMM_Solver::*)(NAD_TCFer&, const int&, const int&)>(&PMM_Solver::traj))
10511 .def("multi_ff_calc2", static_cast<int (PMM_Solver::*)()>(&PMM_Solver::multi_ff_calc2))
10512 .def("multi_init", static_cast<int (PMM_Solver::*)(const int&)>(&PMM_Solver::multi_init))
10513 .def("multi_reinit", static_cast<int (PMM_Solver::*)(const int&)>(&PMM_Solver::multi_reinit))
10514 .def("ff_calc1", static_cast<int (Multi_NadTraj_Solver::*)(const int&, const bool&)>(&Multi_NadTraj_Solver::ff_calc1))
10515 .def("multi_ff_calc1", static_cast<int (Multi_NadTraj_Solver::*)(const int&, const bool&)>(&Multi_NadTraj_Solver::multi_ff_calc1))
10516 .def("ff_calc2", static_cast<int (Multi_NadTraj_Solver::*)()>(&Multi_NadTraj_Solver::ff_calc2))
10517 .def("multi_ff_calc2", static_cast<int (Multi_NadTraj_Solver::*)()>(&Multi_NadTraj_Solver::multi_ff_calc2))
10518 .def("update_p", static_cast<int (Multi_NadTraj_Solver::*)(const kids_real&)>(&Multi_NadTraj_Solver::update_p))
10519 .def("update_r", static_cast<int (Multi_NadTraj_Solver::*)(const kids_real&)>(&Multi_NadTraj_Solver::update_r))
10520 .def("update_thermo", static_cast<int (Multi_NadTraj_Solver::*)(const kids_real&)>(&Multi_NadTraj_Solver::update_thermo))
10521 .def("init", static_cast<int (Multi_NadTraj_Solver::*)(const int&)>(&Multi_NadTraj_Solver::init))
10522 .def("multi_init", static_cast<int (Multi_NadTraj_Solver::*)(const int&)>(&Multi_NadTraj_Solver::multi_init))
10523 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
10524 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
10525 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
10526 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
10527 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
10528 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
10529 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
10530 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
10531 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
10532 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
10533 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
10534 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
10535 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
10536 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
10537 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
10538 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
10539 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
10540 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
10541 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
10542 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
10543 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
10544 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
10545 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
10546 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
10547 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
10548 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
10549 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
10550 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
10551 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
10552 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
10553 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
10554 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
10555 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
10556 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
10557 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
10558 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
10559 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
10560 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
10561 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
10562
10563 class PyTrampoline_WMM_Solver : public WMM_Solver {
10564 public:
10565 using WMM_Solver::WMM_Solver;
10566
10567 int init_occ2eac(const int& itraj) override {
10568 PYBIND11_OVERRIDE(
10569 int, // return type
10570 WMM_Solver, // parent class
10571 init_occ2eac, // func name
10572 itraj
10573 );
10574 }
10575
10576 int init(const int& itraj) override {
10577 PYBIND11_OVERRIDE(
10578 int, // return type
10579 WMM_Solver, // parent class
10580 init, // func name
10581 itraj
10582 );
10583 }
10584
10585 int kernel_cmm(kids_complex* rhox, kids_real& xic, kids_real& gammac, const int& F) override {
10586 PYBIND11_OVERRIDE(
10587 int, // return type
10588 WMM_Solver, // parent class
10589 kernel_cmm, // func name
10590 rhox, xic, gammac, F
10591 );
10592 }
10593
10594 int kernel0(kids_complex* rhox, const int& F) override {
10595 PYBIND11_OVERRIDE(
10596 int, // return type
10597 WMM_Solver, // parent class
10598 kernel0, // func name
10599 rhox, F
10600 );
10601 }
10602
10603 int kernelt(kids_complex* rhox, const int& F) override {
10604 PYBIND11_OVERRIDE(
10605 int, // return type
10606 WMM_Solver, // parent class
10607 kernelt, // func name
10608 rhox, F
10609 );
10610 }
10611
10612 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
10613 PYBIND11_OVERRIDE(
10614 int, // return type
10615 WMM_Solver, // parent class
10616 traj_velocityverlet, // func name
10617 tcfer, N, F
10618 );
10619 }
10620
10621 int ff_calc1(const int& level, const bool& refered = false) override {
10622 PYBIND11_OVERRIDE(
10623 int, // return type
10624 NadTraj_Solver, // parent class
10625 ff_calc1, // func name
10626 level, refered
10627 );
10628 }
10629
10630 int ff_calc2() override {
10631 PYBIND11_OVERRIDE(
10632 int, // return type
10633 NadTraj_Solver, // parent class
10634 ff_calc2, // func name
10635
10636 );
10637 }
10638
10639 int evolve_elec(kids_complex* Uevolve) override {
10640 PYBIND11_OVERRIDE(
10641 int, // return type
10642 NadTraj_Solver, // parent class
10643 evolve_elec, // func name
10644 Uevolve
10645 );
10646 }
10647
10648 int init_ofs(const int& itraj) override {
10649 PYBIND11_OVERRIDE(
10650 int, // return type
10651 NadTraj_Solver, // parent class
10652 init_ofs, // func name
10653 itraj
10654 );
10655 }
10656
10657 int final(const int& itraj) override {
10658 PYBIND11_OVERRIDE(
10659 int, // return type
10660 NadTraj_Solver, // parent class
10661 final, // func name
10662 itraj
10663 );
10664 }
10665
10666 int check_break(int& succ) override {
10667 PYBIND11_OVERRIDE(
10668 int, // return type
10669 NadTraj_Solver, // parent class
10670 check_break, // func name
10671 succ
10672 );
10673 }
10674
10675 int rst_output(const int& itraj) override {
10676 PYBIND11_OVERRIDE(
10677 int, // return type
10678 NadTraj_Solver, // parent class
10679 rst_output, // func name
10680 itraj
10681 );
10682 }
10683
10684 int rst_read(const int& itraj) override {
10685 PYBIND11_OVERRIDE(
10686 int, // return type
10687 NadTraj_Solver, // parent class
10688 rst_read, // func name
10689 itraj
10690 );
10691 }
10692
10693 int traj_property(const kids_real& dt) override {
10694 PYBIND11_OVERRIDE(
10695 int, // return type
10696 NadTraj_Solver, // parent class
10697 traj_property, // func name
10698 dt
10699 );
10700 }
10701
10702 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
10703 PYBIND11_OVERRIDE(
10704 int, // return type
10705 NadTraj_Solver, // parent class
10706 traj, // func name
10707 tcfer, N, F
10708 );
10709 }
10710
10711 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
10712 PYBIND11_OVERRIDE(
10713 int, // return type
10714 NadTraj_Solver, // parent class
10715 correlation, // func name
10716 isamp, tcfer
10717 );
10718 }
10719
10720 int run_impl() override {
10721 PYBIND11_OVERRIDE(
10722 int, // return type
10723 NadTraj_Solver, // parent class
10724 run_impl, // func name
10725
10726 );
10727 }
10728
10729 int run_parallel() override {
10730 PYBIND11_OVERRIDE(
10731 int, // return type
10732 NadTraj_Solver, // parent class
10733 run_parallel, // func name
10734
10735 );
10736 }
10737
10738 int ff_calc1(const int& level) override {
10739 PYBIND11_OVERRIDE(
10740 int, // return type
10741 Traj_Solver, // parent class
10742 ff_calc1, // func name
10743 level
10744 );
10745 }
10746
10747 int update_r(const kids_real& dt) override {
10748 PYBIND11_OVERRIDE(
10749 int, // return type
10750 Traj_Solver, // parent class
10751 update_r, // func name
10752 dt
10753 );
10754 }
10755
10756 int update_p(const kids_real& dt) override {
10757 PYBIND11_OVERRIDE(
10758 int, // return type
10759 Traj_Solver, // parent class
10760 update_p, // func name
10761 dt
10762 );
10763 }
10764
10765 int update_thermo(const kids_real& dt) override {
10766 PYBIND11_OVERRIDE(
10767 int, // return type
10768 Traj_Solver, // parent class
10769 update_thermo, // func name
10770 dt
10771 );
10772 }
10773
10774 int traj(TCFnucl& tcfer, const int& N) override {
10775 PYBIND11_OVERRIDE(
10776 int, // return type
10777 Traj_Solver, // parent class
10778 traj, // func name
10779 tcfer, N
10780 );
10781 }
10782
10783 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
10784 PYBIND11_OVERRIDE(
10785 int, // return type
10786 Traj_Solver, // parent class
10787 traj_velocityverlet, // func name
10788 tcfer, N
10789 );
10790 }
10791
10792 int sampler(const int& isamp, TCFnucl& tcfer) override {
10793 PYBIND11_OVERRIDE(
10794 int, // return type
10795 Traj_Solver, // parent class
10796 sampler, // func name
10797 isamp, tcfer
10798 );
10799 }
10800
10801 int estimator(const int& isamp, TCFnucl& tcfer) override {
10802 PYBIND11_OVERRIDE(
10803 int, // return type
10804 Traj_Solver, // parent class
10805 estimator, // func name
10806 isamp, tcfer
10807 );
10808 }
10809
10810 int init(int flag) override {
10811 PYBIND11_OVERRIDE(
10812 int, // return type
10813 Solver, // parent class
10814 init, // func name
10815 flag
10816 );
10817 }
10818
10819 int final(int flag) override {
10820 PYBIND11_OVERRIDE(
10821 int, // return type
10822 Solver, // parent class
10823 final, // func name
10824 flag
10825 );
10826 }
10827
10828 int cache(int flag) override {
10829 PYBIND11_OVERRIDE(
10830 int, // return type
10831 Solver, // parent class
10832 cache, // func name
10833 flag
10834 );
10835 }
10836 };
10837
10838 py::class_<WMM_Solver, NadTraj_Solver, PyTrampoline_WMM_Solver>(solvers_m, "WMM_Solver", py::dynamic_attr())
10839 .def(py::init<Param, Model*>())
10840 .def(py::init<const std::string&, Model*>())
10841 .def_static("name", &WMM_Solver::name)
10842 .def("init_occ2eac", static_cast<int (WMM_Solver::*)(const int&)>(&WMM_Solver::init_occ2eac))
10843 .def("init", static_cast<int (WMM_Solver::*)(const int&)>(&WMM_Solver::init))
10844 .def("traj_velocityverlet", static_cast<int (WMM_Solver::*)(NAD_TCFer&, const int&, const int&)>(&WMM_Solver::traj_velocityverlet))
10845 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
10846 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
10847 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
10848 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
10849 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
10850 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
10851 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
10852 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
10853 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
10854 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
10855 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
10856 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
10857 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
10858 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
10859 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
10860 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
10861 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
10862 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
10863 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
10864 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
10865 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
10866 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
10867 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
10868 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
10869 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
10870 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
10871 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
10872 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
10873 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
10874 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
10875 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
10876 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
10877 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
10878 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
10879 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
10880 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
10881 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
10882 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
10883 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
10884
10885 class PyTrampoline_NAD_TCFer : public NAD_TCFer {
10886 public:
10887 using NAD_TCFer::NAD_TCFer;
10888 };
10889
10890 py::class_<NAD_TCFer, PyTrampoline_NAD_TCFer>(models_m, "NAD_TCFer", py::dynamic_attr())
10891 .def(py::init<const int&, const int&, const int&, const int&, const int&, const int&>())
10892 .def_readwrite("lentcf", &NAD_TCFer::lentcf)
10893 .def_readwrite("tcf_reduced", &NAD_TCFer::tcf_reduced)
10894 .def("ref_val", &NAD_TCFer::ref_val, py::return_value_policy::reference_internal)
10895 .def("ref_tcf_0t_bool", &NAD_TCFer::ref_tcf_0t_bool, py::return_value_policy::reference_internal)
10896 .def("ref_tcf_0t_val", &NAD_TCFer::ref_tcf_0t_val, py::return_value_policy::reference_internal)
10897 .def("ref_coll", &NAD_TCFer::ref_coll, py::return_value_policy::reference_internal)
10898 .def("ref_stat", &NAD_TCFer::ref_stat, py::return_value_policy::reference_internal)
10899 .def("ref_tcf_0_bool", &NAD_TCFer::ref_tcf_0_bool, py::return_value_policy::reference_internal)
10900 .def("ref_tcf_t_bool", &NAD_TCFer::ref_tcf_t_bool, py::return_value_policy::reference_internal)
10901 .def("ref_tcf_0_val", &NAD_TCFer::ref_tcf_0_val, py::return_value_policy::reference_internal)
10902 .def("ref_tcf_t_val", &NAD_TCFer::ref_tcf_t_val, py::return_value_policy::reference_internal)
10903 .def("Clear", static_cast<int (NAD_TCFer::*)()>(&NAD_TCFer::Clear))
10904 .def("Amount", static_cast<int (NAD_TCFer::*)(NAD_TCFer&)>(&NAD_TCFer::Amount))
10905 .def("MPIAmount", static_cast<int (NAD_TCFer::*)(NAD_TCFer&)>(&NAD_TCFer::MPIAmount))
10906 .def("Count", static_cast<int (NAD_TCFer::*)(const int&, const int&)>(&NAD_TCFer::Count))
10907 .def("ifrecord", static_cast<bool (NAD_TCFer::*)(const int&, const int&)>(&NAD_TCFer::ifrecord))
10908 .def("report", static_cast<int (NAD_TCFer::*)(const std::string&, const double&)>(&NAD_TCFer::report));
10909
10910 class PyTrampoline_Hopping_Solver : public Hopping_Solver {
10911 public:
10912 using Hopping_Solver::Hopping_Solver;
10913
10914 int init_occ2eac(const int& itraj) override {
10915 PYBIND11_OVERRIDE(
10916 int, // return type
10917 Hopping_Solver, // parent class
10918 init_occ2eac, // func name
10919 itraj
10920 );
10921 }
10922
10923 int init(const int& itraj) override {
10924 PYBIND11_OVERRIDE(
10925 int, // return type
10926 Hopping_Solver, // parent class
10927 init, // func name
10928 itraj
10929 );
10930 }
10931
10932 inline kids_real nucl_Ekin() override {
10933 PYBIND11_OVERRIDE(
10934 kids_real, // return type
10935 Hopping_Solver, // parent class
10936 nucl_Ekin, // func name
10937
10938 );
10939 }
10940
10941 int SE_Hamiltonian(const bool& refered) override {
10942 PYBIND11_OVERRIDE(
10943 int, // return type
10944 Hopping_Solver, // parent class
10945 SE_Hamiltonian, // func name
10946 refered
10947 );
10948 }
10949
10950 int phase_correction() override {
10951 PYBIND11_OVERRIDE(
10952 int, // return type
10953 Hopping_Solver, // parent class
10954 phase_correction, // func name
10955
10956 );
10957 }
10958
10959 int hopping_choose(const int& iocc, kids_complex* rhox, kids_complex* H, kids_real& dt) override {
10960 PYBIND11_OVERRIDE(
10961 int, // return type
10962 Hopping_Solver, // parent class
10963 hopping_choose, // func name
10964 iocc, rhox, H, dt
10965 );
10966 }
10967
10968 int hopping_direction(kids_real* direction, const int& to) override {
10969 PYBIND11_OVERRIDE(
10970 int, // return type
10971 Hopping_Solver, // parent class
10972 hopping_direction, // func name
10973 direction, to
10974 );
10975 }
10976
10977 int hopping_impulse(kids_real* direction, const int& occ_to) override {
10978 PYBIND11_OVERRIDE(
10979 int, // return type
10980 Hopping_Solver, // parent class
10981 hopping_impulse, // func name
10982 direction, occ_to
10983 );
10984 }
10985
10986 int time_calc() override {
10987 PYBIND11_OVERRIDE(
10988 int, // return type
10989 Hopping_Solver, // parent class
10990 time_calc, // func name
10991
10992 );
10993 }
10994
10995 int coherent_evolve(const kids_real& dt) override {
10996 PYBIND11_OVERRIDE(
10997 int, // return type
10998 Hopping_Solver, // parent class
10999 coherent_evolve, // func name
11000 dt
11001 );
11002 }
11003
11004 int decoherent_evolve(const kids_real& dt) override {
11005 PYBIND11_OVERRIDE(
11006 int, // return type
11007 Hopping_Solver, // parent class
11008 decoherent_evolve, // func name
11009 dt
11010 );
11011 }
11012
11013 int hopping_collapse(const kids_real& dt, const int& to) override {
11014 PYBIND11_OVERRIDE(
11015 int, // return type
11016 Hopping_Solver, // parent class
11017 hopping_collapse, // func name
11018 dt, to
11019 );
11020 }
11021
11022 int ff_calc1(const int& level, const bool& refered = false) override {
11023 PYBIND11_OVERRIDE(
11024 int, // return type
11025 Hopping_Solver, // parent class
11026 ff_calc1, // func name
11027 level, refered
11028 );
11029 }
11030
11031 int kernel_fssh(kids_complex* rhox, const int& F) override {
11032 PYBIND11_OVERRIDE(
11033 int, // return type
11034 Hopping_Solver, // parent class
11035 kernel_fssh, // func name
11036 rhox, F
11037 );
11038 }
11039
11040 int kernel0(kids_complex* rhox, const int& F) override {
11041 PYBIND11_OVERRIDE(
11042 int, // return type
11043 Hopping_Solver, // parent class
11044 kernel0, // func name
11045 rhox, F
11046 );
11047 }
11048
11049 int kernelt(kids_complex* rhox, const int& F) override {
11050 PYBIND11_OVERRIDE(
11051 int, // return type
11052 Hopping_Solver, // parent class
11053 kernelt, // func name
11054 rhox, F
11055 );
11056 }
11057
11058 int check_break(int& succ) override {
11059 PYBIND11_OVERRIDE(
11060 int, // return type
11061 Hopping_Solver, // parent class
11062 check_break, // func name
11063 succ
11064 );
11065 }
11066
11067 int ff_calc2() override {
11068 PYBIND11_OVERRIDE(
11069 int, // return type
11070 Hopping_Solver, // parent class
11071 ff_calc2, // func name
11072
11073 );
11074 }
11075
11076 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
11077 PYBIND11_OVERRIDE(
11078 int, // return type
11079 Hopping_Solver, // parent class
11080 traj, // func name
11081 tcfer, N, F
11082 );
11083 }
11084
11085 int evolve_elec(kids_complex* Uevolve) override {
11086 PYBIND11_OVERRIDE(
11087 int, // return type
11088 NadTraj_Solver, // parent class
11089 evolve_elec, // func name
11090 Uevolve
11091 );
11092 }
11093
11094 int init_ofs(const int& itraj) override {
11095 PYBIND11_OVERRIDE(
11096 int, // return type
11097 NadTraj_Solver, // parent class
11098 init_ofs, // func name
11099 itraj
11100 );
11101 }
11102
11103 int final(const int& itraj) override {
11104 PYBIND11_OVERRIDE(
11105 int, // return type
11106 NadTraj_Solver, // parent class
11107 final, // func name
11108 itraj
11109 );
11110 }
11111
11112 int rst_output(const int& itraj) override {
11113 PYBIND11_OVERRIDE(
11114 int, // return type
11115 NadTraj_Solver, // parent class
11116 rst_output, // func name
11117 itraj
11118 );
11119 }
11120
11121 int rst_read(const int& itraj) override {
11122 PYBIND11_OVERRIDE(
11123 int, // return type
11124 NadTraj_Solver, // parent class
11125 rst_read, // func name
11126 itraj
11127 );
11128 }
11129
11130 int traj_property(const kids_real& dt) override {
11131 PYBIND11_OVERRIDE(
11132 int, // return type
11133 NadTraj_Solver, // parent class
11134 traj_property, // func name
11135 dt
11136 );
11137 }
11138
11139 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
11140 PYBIND11_OVERRIDE(
11141 int, // return type
11142 NadTraj_Solver, // parent class
11143 traj_velocityverlet, // func name
11144 tcfer, N, F
11145 );
11146 }
11147
11148 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
11149 PYBIND11_OVERRIDE(
11150 int, // return type
11151 NadTraj_Solver, // parent class
11152 correlation, // func name
11153 isamp, tcfer
11154 );
11155 }
11156
11157 int run_impl() override {
11158 PYBIND11_OVERRIDE(
11159 int, // return type
11160 NadTraj_Solver, // parent class
11161 run_impl, // func name
11162
11163 );
11164 }
11165
11166 int run_parallel() override {
11167 PYBIND11_OVERRIDE(
11168 int, // return type
11169 NadTraj_Solver, // parent class
11170 run_parallel, // func name
11171
11172 );
11173 }
11174
11175 int ff_calc1(const int& level) override {
11176 PYBIND11_OVERRIDE(
11177 int, // return type
11178 Traj_Solver, // parent class
11179 ff_calc1, // func name
11180 level
11181 );
11182 }
11183
11184 int update_r(const kids_real& dt) override {
11185 PYBIND11_OVERRIDE(
11186 int, // return type
11187 Traj_Solver, // parent class
11188 update_r, // func name
11189 dt
11190 );
11191 }
11192
11193 int update_p(const kids_real& dt) override {
11194 PYBIND11_OVERRIDE(
11195 int, // return type
11196 Traj_Solver, // parent class
11197 update_p, // func name
11198 dt
11199 );
11200 }
11201
11202 int update_thermo(const kids_real& dt) override {
11203 PYBIND11_OVERRIDE(
11204 int, // return type
11205 Traj_Solver, // parent class
11206 update_thermo, // func name
11207 dt
11208 );
11209 }
11210
11211 int traj(TCFnucl& tcfer, const int& N) override {
11212 PYBIND11_OVERRIDE(
11213 int, // return type
11214 Traj_Solver, // parent class
11215 traj, // func name
11216 tcfer, N
11217 );
11218 }
11219
11220 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
11221 PYBIND11_OVERRIDE(
11222 int, // return type
11223 Traj_Solver, // parent class
11224 traj_velocityverlet, // func name
11225 tcfer, N
11226 );
11227 }
11228
11229 int sampler(const int& isamp, TCFnucl& tcfer) override {
11230 PYBIND11_OVERRIDE(
11231 int, // return type
11232 Traj_Solver, // parent class
11233 sampler, // func name
11234 isamp, tcfer
11235 );
11236 }
11237
11238 int estimator(const int& isamp, TCFnucl& tcfer) override {
11239 PYBIND11_OVERRIDE(
11240 int, // return type
11241 Traj_Solver, // parent class
11242 estimator, // func name
11243 isamp, tcfer
11244 );
11245 }
11246
11247 int init(int flag) override {
11248 PYBIND11_OVERRIDE(
11249 int, // return type
11250 Solver, // parent class
11251 init, // func name
11252 flag
11253 );
11254 }
11255
11256 int final(int flag) override {
11257 PYBIND11_OVERRIDE(
11258 int, // return type
11259 Solver, // parent class
11260 final, // func name
11261 flag
11262 );
11263 }
11264
11265 int cache(int flag) override {
11266 PYBIND11_OVERRIDE(
11267 int, // return type
11268 Solver, // parent class
11269 cache, // func name
11270 flag
11271 );
11272 }
11273 };
11274
11275 py::class_<Hopping_Solver, NadTraj_Solver, PyTrampoline_Hopping_Solver>(solvers_m, "Hopping_Solver", py::dynamic_attr())
11276 .def(py::init<Param, Model*>())
11277 .def(py::init<const std::string&, Model*>())
11278 .def("ref_arg_nr", &Hopping_Solver::ref_arg_nr, py::return_value_policy::reference_internal)
11279 .def("ref_arg_np", &Hopping_Solver::ref_arg_np, py::return_value_policy::reference_internal)
11280 .def("ref_time_coh", &Hopping_Solver::ref_time_coh, py::return_value_policy::reference_internal)
11281 .def("ref_time_los", &Hopping_Solver::ref_time_los, py::return_value_policy::reference_internal)
11282 .def("ref_dnp_diss", &Hopping_Solver::ref_dnp_diss, py::return_value_policy::reference_internal)
11283 .def("ref_probs_dish", &Hopping_Solver::ref_probs_dish, py::return_value_policy::reference_internal)
11284 .def("ref_idx_dish", &Hopping_Solver::ref_idx_dish, py::return_value_policy::reference_internal)
11285 .def("ref_direction", &Hopping_Solver::ref_direction, py::return_value_policy::reference_internal)
11286 .def("ref_drho_diss", &Hopping_Solver::ref_drho_diss, py::return_value_policy::reference_internal)
11287 .def("ref_Uh", &Hopping_Solver::ref_Uh, py::return_value_policy::reference_internal)
11288 .def_static("name", &Hopping_Solver::name)
11289 .def("init_occ2eac", static_cast<int (Hopping_Solver::*)(const int&)>(&Hopping_Solver::init_occ2eac))
11290 .def("init", static_cast<int (Hopping_Solver::*)(const int&)>(&Hopping_Solver::init))
11291 .def("nucl_Ekin", static_cast<kids_real (Hopping_Solver::*)()>(&Hopping_Solver::nucl_Ekin))
11292 .def("SE_Hamiltonian", static_cast<int (Hopping_Solver::*)(const bool&)>(&Hopping_Solver::SE_Hamiltonian))
11293 .def("phase_correction", static_cast<int (Hopping_Solver::*)()>(&Hopping_Solver::phase_correction))
11294 .def("hopping_direction", [](Hopping_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> direction_arr,
11295 const int& to) {
11296 return self.hopping_direction(direction_arr.mutable_data(), to);
11297 }
11298 )
11299 .def("hopping_impulse", [](Hopping_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> direction_arr,
11300 const int& occ_to) {
11301 return self.hopping_impulse(direction_arr.mutable_data(), occ_to);
11302 }
11303 )
11304 .def("time_calc", static_cast<int (Hopping_Solver::*)()>(&Hopping_Solver::time_calc))
11305 .def("coherent_evolve", static_cast<int (Hopping_Solver::*)(const kids_real&)>(&Hopping_Solver::coherent_evolve))
11306 .def("decoherent_evolve", static_cast<int (Hopping_Solver::*)(const kids_real&)>(&Hopping_Solver::decoherent_evolve))
11307 .def("hopping_collapse", static_cast<int (Hopping_Solver::*)(const kids_real&, const int&)>(&Hopping_Solver::hopping_collapse))
11308 .def("ff_calc1", static_cast<int (Hopping_Solver::*)(const int&, const bool&)>(&Hopping_Solver::ff_calc1))
11309 .def("check_break", static_cast<int (Hopping_Solver::*)(int&)>(&Hopping_Solver::check_break))
11310 .def("ff_calc2", static_cast<int (Hopping_Solver::*)()>(&Hopping_Solver::ff_calc2))
11311 .def("traj", static_cast<int (Hopping_Solver::*)(NAD_TCFer&, const int&, const int&)>(&Hopping_Solver::traj))
11312 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
11313 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
11314 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
11315 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
11316 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
11317 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
11318 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
11319 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
11320 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
11321 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
11322 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
11323 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
11324 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
11325 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
11326 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
11327 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
11328 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
11329 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
11330 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
11331 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
11332 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
11333 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
11334 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
11335 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
11336 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
11337 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
11338 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
11339 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
11340 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
11341 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
11342 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
11343 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
11344 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
11345 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
11346 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
11347 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
11348 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
11349 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
11350 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
11351
11352 class PyTrampoline_ProductMPS_Solver : public ProductMPS_Solver {
11353 public:
11354 using ProductMPS_Solver::ProductMPS_Solver;
11355
11356 int init(const int& itraj) override {
11357 PYBIND11_OVERRIDE(
11358 int, // return type
11359 ProductMPS_Solver, // parent class
11360 init, // func name
11361 itraj
11362 );
11363 }
11364
11365 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
11366 PYBIND11_OVERRIDE(
11367 int, // return type
11368 ProductMPS_Solver, // parent class
11369 traj, // func name
11370 tcfer, N, F
11371 );
11372 }
11373
11374 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
11375 PYBIND11_OVERRIDE(
11376 int, // return type
11377 ProductMPS_Solver, // parent class
11378 correlation, // func name
11379 isamp, tcfer
11380 );
11381 }
11382
11383 int ff_calc1(const int& level, const bool& refered = false) override {
11384 PYBIND11_OVERRIDE(
11385 int, // return type
11386 NadTraj_Solver, // parent class
11387 ff_calc1, // func name
11388 level, refered
11389 );
11390 }
11391
11392 int ff_calc2() override {
11393 PYBIND11_OVERRIDE(
11394 int, // return type
11395 NadTraj_Solver, // parent class
11396 ff_calc2, // func name
11397
11398 );
11399 }
11400
11401 int evolve_elec(kids_complex* Uevolve) override {
11402 PYBIND11_OVERRIDE(
11403 int, // return type
11404 NadTraj_Solver, // parent class
11405 evolve_elec, // func name
11406 Uevolve
11407 );
11408 }
11409
11410 int init_occ2eac(const int& itraj) override {
11411 PYBIND11_OVERRIDE(
11412 int, // return type
11413 NadTraj_Solver, // parent class
11414 init_occ2eac, // func name
11415 itraj
11416 );
11417 }
11418
11419 int init_ofs(const int& itraj) override {
11420 PYBIND11_OVERRIDE(
11421 int, // return type
11422 NadTraj_Solver, // parent class
11423 init_ofs, // func name
11424 itraj
11425 );
11426 }
11427
11428 int final(const int& itraj) override {
11429 PYBIND11_OVERRIDE(
11430 int, // return type
11431 NadTraj_Solver, // parent class
11432 final, // func name
11433 itraj
11434 );
11435 }
11436
11437 int check_break(int& succ) override {
11438 PYBIND11_OVERRIDE(
11439 int, // return type
11440 NadTraj_Solver, // parent class
11441 check_break, // func name
11442 succ
11443 );
11444 }
11445
11446 int rst_output(const int& itraj) override {
11447 PYBIND11_OVERRIDE(
11448 int, // return type
11449 NadTraj_Solver, // parent class
11450 rst_output, // func name
11451 itraj
11452 );
11453 }
11454
11455 int rst_read(const int& itraj) override {
11456 PYBIND11_OVERRIDE(
11457 int, // return type
11458 NadTraj_Solver, // parent class
11459 rst_read, // func name
11460 itraj
11461 );
11462 }
11463
11464 int traj_property(const kids_real& dt) override {
11465 PYBIND11_OVERRIDE(
11466 int, // return type
11467 NadTraj_Solver, // parent class
11468 traj_property, // func name
11469 dt
11470 );
11471 }
11472
11473 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
11474 PYBIND11_OVERRIDE(
11475 int, // return type
11476 NadTraj_Solver, // parent class
11477 traj_velocityverlet, // func name
11478 tcfer, N, F
11479 );
11480 }
11481
11482 int kernel0(kids_complex* rhox, const int& F) override {
11483 PYBIND11_OVERRIDE(
11484 int, // return type
11485 NadTraj_Solver, // parent class
11486 kernel0, // func name
11487 rhox, F
11488 );
11489 }
11490
11491 int kernelt(kids_complex* rhox, const int& F) override {
11492 PYBIND11_OVERRIDE(
11493 int, // return type
11494 NadTraj_Solver, // parent class
11495 kernelt, // func name
11496 rhox, F
11497 );
11498 }
11499
11500 int run_impl() override {
11501 PYBIND11_OVERRIDE(
11502 int, // return type
11503 NadTraj_Solver, // parent class
11504 run_impl, // func name
11505
11506 );
11507 }
11508
11509 int run_parallel() override {
11510 PYBIND11_OVERRIDE(
11511 int, // return type
11512 NadTraj_Solver, // parent class
11513 run_parallel, // func name
11514
11515 );
11516 }
11517
11518 int ff_calc1(const int& level) override {
11519 PYBIND11_OVERRIDE(
11520 int, // return type
11521 Traj_Solver, // parent class
11522 ff_calc1, // func name
11523 level
11524 );
11525 }
11526
11527 int update_r(const kids_real& dt) override {
11528 PYBIND11_OVERRIDE(
11529 int, // return type
11530 Traj_Solver, // parent class
11531 update_r, // func name
11532 dt
11533 );
11534 }
11535
11536 int update_p(const kids_real& dt) override {
11537 PYBIND11_OVERRIDE(
11538 int, // return type
11539 Traj_Solver, // parent class
11540 update_p, // func name
11541 dt
11542 );
11543 }
11544
11545 int update_thermo(const kids_real& dt) override {
11546 PYBIND11_OVERRIDE(
11547 int, // return type
11548 Traj_Solver, // parent class
11549 update_thermo, // func name
11550 dt
11551 );
11552 }
11553
11554 int traj(TCFnucl& tcfer, const int& N) override {
11555 PYBIND11_OVERRIDE(
11556 int, // return type
11557 Traj_Solver, // parent class
11558 traj, // func name
11559 tcfer, N
11560 );
11561 }
11562
11563 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
11564 PYBIND11_OVERRIDE(
11565 int, // return type
11566 Traj_Solver, // parent class
11567 traj_velocityverlet, // func name
11568 tcfer, N
11569 );
11570 }
11571
11572 int sampler(const int& isamp, TCFnucl& tcfer) override {
11573 PYBIND11_OVERRIDE(
11574 int, // return type
11575 Traj_Solver, // parent class
11576 sampler, // func name
11577 isamp, tcfer
11578 );
11579 }
11580
11581 int estimator(const int& isamp, TCFnucl& tcfer) override {
11582 PYBIND11_OVERRIDE(
11583 int, // return type
11584 Traj_Solver, // parent class
11585 estimator, // func name
11586 isamp, tcfer
11587 );
11588 }
11589
11590 int init(int flag) override {
11591 PYBIND11_OVERRIDE(
11592 int, // return type
11593 Solver, // parent class
11594 init, // func name
11595 flag
11596 );
11597 }
11598
11599 int final(int flag) override {
11600 PYBIND11_OVERRIDE(
11601 int, // return type
11602 Solver, // parent class
11603 final, // func name
11604 flag
11605 );
11606 }
11607
11608 int cache(int flag) override {
11609 PYBIND11_OVERRIDE(
11610 int, // return type
11611 Solver, // parent class
11612 cache, // func name
11613 flag
11614 );
11615 }
11616 };
11617
11618 py::class_<ProductMPS_Solver, NadTraj_Solver, PyTrampoline_ProductMPS_Solver>(solvers_m, "ProductMPS_Solver", py::dynamic_attr())
11619 .def(py::init<Param, Model*>())
11620 .def(py::init<const std::string&, Model*>())
11621 .def_readwrite("M", &ProductMPS_Solver::M)
11622 .def_readwrite("F", &ProductMPS_Solver::F)
11623 .def_readwrite("FF", &ProductMPS_Solver::FF)
11624 .def_readwrite("MF", &ProductMPS_Solver::MF)
11625 .def_readwrite("MFF", &ProductMPS_Solver::MFF)
11626 .def_readwrite("type", &ProductMPS_Solver::type)
11627 .def_readwrite("scale", &ProductMPS_Solver::scale)
11628 .def("ref_rhos", &ProductMPS_Solver::ref_rhos, py::return_value_policy::reference_internal)
11629 .def("ref_rhos0", &ProductMPS_Solver::ref_rhos0, py::return_value_policy::reference_internal)
11630 .def("ref_rhost", &ProductMPS_Solver::ref_rhost, py::return_value_policy::reference_internal)
11631 .def("ref_Hs", &ProductMPS_Solver::ref_Hs, py::return_value_policy::reference_internal)
11632 .def_static("name", &ProductMPS_Solver::name)
11633 .def("init", static_cast<int (ProductMPS_Solver::*)(const int&)>(&ProductMPS_Solver::init))
11634 .def("traj", static_cast<int (ProductMPS_Solver::*)(NAD_TCFer&, const int&, const int&)>(&ProductMPS_Solver::traj))
11635 .def("correlation", static_cast<int (ProductMPS_Solver::*)(const int&, NAD_TCFer&)>(&ProductMPS_Solver::correlation))
11636 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
11637 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
11638 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
11639 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
11640 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
11641 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
11642 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
11643 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
11644 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
11645 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
11646 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
11647 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
11648 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
11649 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
11650 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
11651 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
11652 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
11653 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
11654 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
11655 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
11656 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
11657 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
11658 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
11659 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
11660 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
11661 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
11662 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
11663 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
11664 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
11665 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
11666 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
11667 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
11668 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
11669 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
11670 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
11671 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
11672 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
11673 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
11674 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
11675
11676 class PyTrampoline_QCPI_Solver : public QCPI_Solver {
11677 public:
11678 using QCPI_Solver::QCPI_Solver;
11679
11680 int propagate_tensor() override {
11681 PYBIND11_OVERRIDE(
11682 int, // return type
11683 QCPI_Solver, // parent class
11684 propagate_tensor, // func name
11685
11686 );
11687 }
11688
11689 kids_complex propagate_nuc(kids_real* nr2_trj, kids_real* np2_trj,
11690 kids_real* nr1_trj, kids_real* np1_trj,
11691 const int& prev, const int& next, const kids_real& dt) override {
11692 PYBIND11_OVERRIDE(
11693 kids_complex, // return type
11694 QCPI_Solver, // parent class
11695 propagate_nuc, // func name
11696 nr2_trj, np2_trj, nr1_trj, np1_trj, prev, next, dt
11697 );
11698 }
11699
11700 int init(const int& itraj) override {
11701 PYBIND11_OVERRIDE(
11702 int, // return type
11703 QCPI_Solver, // parent class
11704 init, // func name
11705 itraj
11706 );
11707 }
11708
11709 int kernel0(kids_complex* rhox, const int& F) override {
11710 PYBIND11_OVERRIDE(
11711 int, // return type
11712 QCPI_Solver, // parent class
11713 kernel0, // func name
11714 rhox, F
11715 );
11716 }
11717
11718 int kernelt(kids_complex* rhox, const int& F) override {
11719 PYBIND11_OVERRIDE(
11720 int, // return type
11721 QCPI_Solver, // parent class
11722 kernelt, // func name
11723 rhox, F
11724 );
11725 }
11726
11727 int traj(NAD_TCFer& tcfer, const int& N, const int& F) override {
11728 PYBIND11_OVERRIDE(
11729 int, // return type
11730 QCPI_Solver, // parent class
11731 traj, // func name
11732 tcfer, N, F
11733 );
11734 }
11735
11736 int ff_calc1(const int& level, const bool& refered = false) override {
11737 PYBIND11_OVERRIDE(
11738 int, // return type
11739 NadTraj_Solver, // parent class
11740 ff_calc1, // func name
11741 level, refered
11742 );
11743 }
11744
11745 int ff_calc2() override {
11746 PYBIND11_OVERRIDE(
11747 int, // return type
11748 NadTraj_Solver, // parent class
11749 ff_calc2, // func name
11750
11751 );
11752 }
11753
11754 int evolve_elec(kids_complex* Uevolve) override {
11755 PYBIND11_OVERRIDE(
11756 int, // return type
11757 NadTraj_Solver, // parent class
11758 evolve_elec, // func name
11759 Uevolve
11760 );
11761 }
11762
11763 int init_occ2eac(const int& itraj) override {
11764 PYBIND11_OVERRIDE(
11765 int, // return type
11766 NadTraj_Solver, // parent class
11767 init_occ2eac, // func name
11768 itraj
11769 );
11770 }
11771
11772 int init_ofs(const int& itraj) override {
11773 PYBIND11_OVERRIDE(
11774 int, // return type
11775 NadTraj_Solver, // parent class
11776 init_ofs, // func name
11777 itraj
11778 );
11779 }
11780
11781 int final(const int& itraj) override {
11782 PYBIND11_OVERRIDE(
11783 int, // return type
11784 NadTraj_Solver, // parent class
11785 final, // func name
11786 itraj
11787 );
11788 }
11789
11790 int check_break(int& succ) override {
11791 PYBIND11_OVERRIDE(
11792 int, // return type
11793 NadTraj_Solver, // parent class
11794 check_break, // func name
11795 succ
11796 );
11797 }
11798
11799 int rst_output(const int& itraj) override {
11800 PYBIND11_OVERRIDE(
11801 int, // return type
11802 NadTraj_Solver, // parent class
11803 rst_output, // func name
11804 itraj
11805 );
11806 }
11807
11808 int rst_read(const int& itraj) override {
11809 PYBIND11_OVERRIDE(
11810 int, // return type
11811 NadTraj_Solver, // parent class
11812 rst_read, // func name
11813 itraj
11814 );
11815 }
11816
11817 int traj_property(const kids_real& dt) override {
11818 PYBIND11_OVERRIDE(
11819 int, // return type
11820 NadTraj_Solver, // parent class
11821 traj_property, // func name
11822 dt
11823 );
11824 }
11825
11826 int traj_velocityverlet(NAD_TCFer& tcfer, const int& N, const int& F) override {
11827 PYBIND11_OVERRIDE(
11828 int, // return type
11829 NadTraj_Solver, // parent class
11830 traj_velocityverlet, // func name
11831 tcfer, N, F
11832 );
11833 }
11834
11835 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
11836 PYBIND11_OVERRIDE(
11837 int, // return type
11838 NadTraj_Solver, // parent class
11839 correlation, // func name
11840 isamp, tcfer
11841 );
11842 }
11843
11844 int run_impl() override {
11845 PYBIND11_OVERRIDE(
11846 int, // return type
11847 NadTraj_Solver, // parent class
11848 run_impl, // func name
11849
11850 );
11851 }
11852
11853 int run_parallel() override {
11854 PYBIND11_OVERRIDE(
11855 int, // return type
11856 NadTraj_Solver, // parent class
11857 run_parallel, // func name
11858
11859 );
11860 }
11861
11862 int ff_calc1(const int& level) override {
11863 PYBIND11_OVERRIDE(
11864 int, // return type
11865 Traj_Solver, // parent class
11866 ff_calc1, // func name
11867 level
11868 );
11869 }
11870
11871 int update_r(const kids_real& dt) override {
11872 PYBIND11_OVERRIDE(
11873 int, // return type
11874 Traj_Solver, // parent class
11875 update_r, // func name
11876 dt
11877 );
11878 }
11879
11880 int update_p(const kids_real& dt) override {
11881 PYBIND11_OVERRIDE(
11882 int, // return type
11883 Traj_Solver, // parent class
11884 update_p, // func name
11885 dt
11886 );
11887 }
11888
11889 int update_thermo(const kids_real& dt) override {
11890 PYBIND11_OVERRIDE(
11891 int, // return type
11892 Traj_Solver, // parent class
11893 update_thermo, // func name
11894 dt
11895 );
11896 }
11897
11898 int traj(TCFnucl& tcfer, const int& N) override {
11899 PYBIND11_OVERRIDE(
11900 int, // return type
11901 Traj_Solver, // parent class
11902 traj, // func name
11903 tcfer, N
11904 );
11905 }
11906
11907 int traj_velocityverlet(TCFnucl& tcfer, const int& N) override {
11908 PYBIND11_OVERRIDE(
11909 int, // return type
11910 Traj_Solver, // parent class
11911 traj_velocityverlet, // func name
11912 tcfer, N
11913 );
11914 }
11915
11916 int sampler(const int& isamp, TCFnucl& tcfer) override {
11917 PYBIND11_OVERRIDE(
11918 int, // return type
11919 Traj_Solver, // parent class
11920 sampler, // func name
11921 isamp, tcfer
11922 );
11923 }
11924
11925 int estimator(const int& isamp, TCFnucl& tcfer) override {
11926 PYBIND11_OVERRIDE(
11927 int, // return type
11928 Traj_Solver, // parent class
11929 estimator, // func name
11930 isamp, tcfer
11931 );
11932 }
11933
11934 int init(int flag) override {
11935 PYBIND11_OVERRIDE(
11936 int, // return type
11937 Solver, // parent class
11938 init, // func name
11939 flag
11940 );
11941 }
11942
11943 int final(int flag) override {
11944 PYBIND11_OVERRIDE(
11945 int, // return type
11946 Solver, // parent class
11947 final, // func name
11948 flag
11949 );
11950 }
11951
11952 int cache(int flag) override {
11953 PYBIND11_OVERRIDE(
11954 int, // return type
11955 Solver, // parent class
11956 cache, // func name
11957 flag
11958 );
11959 }
11960 };
11961
11962 py::class_<QCPI_Solver, NadTraj_Solver, PyTrampoline_QCPI_Solver>(solvers_m, "QCPI_Solver", py::dynamic_attr())
11963 .def(py::init<Param, Model*>())
11964 .def(py::init<const std::string&, Model*>())
11965 .def("ref_idx_arr", &QCPI_Solver::ref_idx_arr, py::return_value_policy::reference_internal)
11966 .def("ref_nrs", &QCPI_Solver::ref_nrs, py::return_value_policy::reference_internal)
11967 .def("ref_nps", &QCPI_Solver::ref_nps, py::return_value_policy::reference_internal)
11968 .def("ref_nrs_copy", &QCPI_Solver::ref_nrs_copy, py::return_value_policy::reference_internal)
11969 .def("ref_nps_copy", &QCPI_Solver::ref_nps_copy, py::return_value_policy::reference_internal)
11970 .def("ref_nx", &QCPI_Solver::ref_nx, py::return_value_policy::reference_internal)
11971 .def("ref_ny", &QCPI_Solver::ref_ny, py::return_value_policy::reference_internal)
11972 .def("ref_nx_copy", &QCPI_Solver::ref_nx_copy, py::return_value_policy::reference_internal)
11973 .def("ref_ny_copy", &QCPI_Solver::ref_ny_copy, py::return_value_policy::reference_internal)
11974 .def_static("name", &QCPI_Solver::name)
11975 .def("get_index", [](QCPI_Solver& self, py::array_t<int, py::array::c_style | py::array::forcecast> arr_arr,
11976 const int& num,
11977 const int& base,
11978 const int& len) {
11979 return self.get_index(arr_arr.mutable_data(), num, base, len);
11980 }
11981 )
11982 .def("get_Nnum", [](QCPI_Solver& self, py::array_t<int, py::array::c_style | py::array::forcecast> arr_arr,
11983 const int& base,
11984 const int& len) {
11985 return self.get_Nnum(arr_arr.mutable_data(), base, len);
11986 }
11987 )
11988 .def("propagate_tensor", static_cast<int (QCPI_Solver::*)()>(&QCPI_Solver::propagate_tensor))
11989 .def("propagate_nuc", [](QCPI_Solver& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr2_trj_arr,
11990 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np2_trj_arr,
11991 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr1_trj_arr,
11992 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np1_trj_arr,
11993 const int& prev,
11994 const int& next,
11995 const kids_real& dt) {
11996 return self.propagate_nuc(nr2_trj_arr.mutable_data(), np2_trj_arr.mutable_data(), nr1_trj_arr.mutable_data(), np1_trj_arr.mutable_data(), prev, next, dt);
11997 }
11998 )
11999 .def("init", static_cast<int (QCPI_Solver::*)(const int&)>(&QCPI_Solver::init))
12000 .def("traj", static_cast<int (QCPI_Solver::*)(NAD_TCFer&, const int&, const int&)>(&QCPI_Solver::traj))
12001 .def("ff_calc1", static_cast<int (NadTraj_Solver::*)(const int&, const bool&)>(&NadTraj_Solver::ff_calc1))
12002 .def("ff_calc2", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::ff_calc2))
12003 .def("init_occ2eac", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_occ2eac))
12004 .def("init_ofs", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init_ofs))
12005 .def("init", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::init))
12006 .def("final", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::final))
12007 .def("check_break", static_cast<int (NadTraj_Solver::*)(int&)>(&NadTraj_Solver::check_break))
12008 .def("rst_output", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_output))
12009 .def("rst_read", static_cast<int (NadTraj_Solver::*)(const int&)>(&NadTraj_Solver::rst_read))
12010 .def("traj_property", static_cast<int (NadTraj_Solver::*)(const kids_real&)>(&NadTraj_Solver::traj_property))
12011 .def("traj", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj))
12012 .def("traj_velocityverlet", static_cast<int (NadTraj_Solver::*)(NAD_TCFer&, const int&, const int&)>(&NadTraj_Solver::traj_velocityverlet))
12013 .def("sampler", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::sampler))
12014 .def("correlation", static_cast<int (NadTraj_Solver::*)(const int&, NAD_TCFer&)>(&NadTraj_Solver::correlation))
12015 .def("run_impl", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_impl))
12016 .def("run_parallel", static_cast<int (NadTraj_Solver::*)()>(&NadTraj_Solver::run_parallel))
12017 .def("ff_calc1", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::ff_calc1))
12018 .def("init_ofs", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init_ofs))
12019 .def("init", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::init))
12020 .def("final", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::final))
12021 .def("rst_output", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_output))
12022 .def("rst_read", static_cast<int (Traj_Solver::*)(const int&)>(&Traj_Solver::rst_read))
12023 .def("check_break", static_cast<int (Traj_Solver::*)(int&)>(&Traj_Solver::check_break))
12024 .def("traj_property", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::traj_property))
12025 .def("update_r", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_r))
12026 .def("update_p", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_p))
12027 .def("update_thermo", static_cast<int (Traj_Solver::*)(const kids_real&)>(&Traj_Solver::update_thermo))
12028 .def("traj", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj))
12029 .def("traj_velocityverlet", static_cast<int (Traj_Solver::*)(TCFnucl&, const int&)>(&Traj_Solver::traj_velocityverlet))
12030 .def("sampler", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::sampler))
12031 .def("estimator", static_cast<int (Traj_Solver::*)(const int&, TCFnucl&)>(&Traj_Solver::estimator))
12032 .def("run_impl", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_impl))
12033 .def("run_parallel", static_cast<int (Traj_Solver::*)()>(&Traj_Solver::run_parallel))
12034 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
12035 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
12036 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
12037 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
12038 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
12039 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
12040
12041 class PyTrampoline_HEOM_Solver : public HEOM_Solver {
12042 public:
12043 using HEOM_Solver::HEOM_Solver;
12044
12045 int Init_Bath(const int& ib, const int& Nr, const int& Ni, kids_real& gdph_m, kids_complex* tcf_coef,
12046 kids_complex* tcf_zero, kids_complex* tcf_deri) override {
12047 PYBIND11_OVERRIDE(
12048 int, // return type
12049 HEOM_Solver, // parent class
12050 Init_Bath, // func name
12051 ib, Nr, Ni, gdph_m, tcf_coef, tcf_zero, tcf_deri
12052 );
12053 }
12054
12055 int Generate_ADOs() override {
12056 PYBIND11_OVERRIDE(
12057 int, // return type
12058 HEOM_Solver, // parent class
12059 Generate_ADOs, // func name
12060
12061 );
12062 }
12063
12064 int run_impl() override {
12065 PYBIND11_OVERRIDE(
12066 int, // return type
12067 HEOM_Solver, // parent class
12068 run_impl, // func name
12069
12070 );
12071 }
12072
12073 int run_parallel() override {
12074 PYBIND11_OVERRIDE(
12075 int, // return type
12076 HEOM_Solver, // parent class
12077 run_parallel, // func name
12078
12079 );
12080 }
12081
12082 int Evolve(kids_complex* sigma_tot_t1, kids_complex* sigma_tot_t2) override {
12083 PYBIND11_OVERRIDE(
12084 int, // return type
12085 HEOM_Solver, // parent class
12086 Evolve, // func name
12087 sigma_tot_t1, sigma_tot_t2
12088 );
12089 }
12090
12091 bool if_filteration(int* arr) override {
12092 PYBIND11_OVERRIDE(
12093 bool, // return type
12094 HEOM_Solver, // parent class
12095 if_filteration, // func name
12096 arr
12097 );
12098 }
12099
12100 int init(int flag) override {
12101 PYBIND11_OVERRIDE(
12102 int, // return type
12103 Solver, // parent class
12104 init, // func name
12105 flag
12106 );
12107 }
12108
12109 int final(int flag) override {
12110 PYBIND11_OVERRIDE(
12111 int, // return type
12112 Solver, // parent class
12113 final, // func name
12114 flag
12115 );
12116 }
12117
12118 int cache(int flag) override {
12119 PYBIND11_OVERRIDE(
12120 int, // return type
12121 Solver, // parent class
12122 cache, // func name
12123 flag
12124 );
12125 }
12126 };
12127
12128 py::class_<HEOM_Solver, Solver, PyTrampoline_HEOM_Solver>(solvers_m, "HEOM_Solver", py::dynamic_attr())
12129 .def(py::init<Param, Model*>())
12130 .def(py::init<const std::string&, Model*>())
12131 .def_readwrite("N", &HEOM_Solver::N)
12132 .def_readwrite("H", &HEOM_Solver::H)
12133 .def_readwrite("F", &HEOM_Solver::F)
12134 .def_readwrite("FF", &HEOM_Solver::FF)
12135 .def_readwrite("nbath", &HEOM_Solver::nbath)
12136 .def_readwrite("Nexpan_M", &HEOM_Solver::Nexpan_M)
12137 .def_readwrite("Nexpan_Nr", &HEOM_Solver::Nexpan_Nr)
12138 .def_readwrite("Nexpan_Ni", &HEOM_Solver::Nexpan_Ni)
12139 .def_readwrite("Nchs", &HEOM_Solver::Nchs)
12140 .def_readwrite("NADOs", &HEOM_Solver::NADOs)
12141 .def_readwrite("Nconn", &HEOM_Solver::Nconn)
12142 .def_readwrite("BasisExpanType", &HEOM_Solver::BasisExpanType)
12143 .def_readwrite("basis_file", &HEOM_Solver::basis_file)
12144 .def_readwrite("sstep", &HEOM_Solver::sstep)
12145 .def_readwrite("nstep", &HEOM_Solver::nstep)
12146 .def_readwrite("adia_pure", &HEOM_Solver::adia_pure)
12147 .def_readwrite("occ0", &HEOM_Solver::occ0)
12148 .def_readwrite("dt", &HEOM_Solver::dt)
12149 .def_readwrite("tend", &HEOM_Solver::tend)
12150 .def_readwrite("vscale", &HEOM_Solver::vscale)
12151 .def("ref_csr_iADOs", &HEOM_Solver::ref_csr_iADOs, py::return_value_policy::reference_internal)
12152 .def("ref_csr_connec_LD", &HEOM_Solver::ref_csr_connec_LD, py::return_value_policy::reference_internal)
12153 .def("ref_csr_connec", &HEOM_Solver::ref_csr_connec, py::return_value_policy::reference_internal)
12154 .def("ref_csr_type", &HEOM_Solver::ref_csr_type, py::return_value_policy::reference_internal)
12155 .def("ref_csr_ivalue", &HEOM_Solver::ref_csr_ivalue, py::return_value_policy::reference_internal)
12156 .def("ref_csr_cvalue", &HEOM_Solver::ref_csr_cvalue, py::return_value_policy::reference_internal)
12157 .def("ref_Tcftype", &HEOM_Solver::ref_Tcftype, py::return_value_policy::reference_internal)
12158 .def("ref_tcf_site", &HEOM_Solver::ref_tcf_site, py::return_value_policy::reference_internal)
12159 .def("ref_Esys", &HEOM_Solver::ref_Esys, py::return_value_policy::reference_internal)
12160 .def("ref_tcf_coef", &HEOM_Solver::ref_tcf_coef, py::return_value_policy::reference_internal)
12161 .def("ref_tcf_zero", &HEOM_Solver::ref_tcf_zero, py::return_value_policy::reference_internal)
12162 .def("ref_tcf_deri", &HEOM_Solver::ref_tcf_deri, py::return_value_policy::reference_internal)
12163 .def("ref_sigma_tot", &HEOM_Solver::ref_sigma_tot, py::return_value_policy::reference_internal)
12164 .def("ref_rdm_arr", &HEOM_Solver::ref_rdm_arr, py::return_value_policy::reference_internal)
12165 .def("ref_Tsys", &HEOM_Solver::ref_Tsys, py::return_value_policy::reference_internal)
12166 .def("ref_Hsys", &HEOM_Solver::ref_Hsys, py::return_value_policy::reference_internal)
12167 .def("ref_T0", &HEOM_Solver::ref_T0, py::return_value_policy::reference_internal)
12168 .def("ref_Hsys_time", &HEOM_Solver::ref_Hsys_time, py::return_value_policy::reference_internal)
12169 .def("ref_eac0", &HEOM_Solver::ref_eac0, py::return_value_policy::reference_internal)
12170 .def("ref_rho0", &HEOM_Solver::ref_rho0, py::return_value_policy::reference_internal)
12171 .def_static("name", &HEOM_Solver::name)
12172 .def("Generate_ADOs", static_cast<int (HEOM_Solver::*)()>(&HEOM_Solver::Generate_ADOs))
12173 .def("run_impl", static_cast<int (HEOM_Solver::*)()>(&HEOM_Solver::run_impl))
12174 .def("run_parallel", static_cast<int (HEOM_Solver::*)()>(&HEOM_Solver::run_parallel))
12175 .def("if_filteration", [](HEOM_Solver& self, py::array_t<int, py::array::c_style | py::array::forcecast> arr_arr) {
12176 return self.if_filteration(arr_arr.mutable_data());
12177 }
12178 )
12179 .def("findarr", [](HEOM_Solver& self, py::array_t<int, py::array::c_style | py::array::forcecast> arr_arr,
12180 const long long int& iX,
12181 const int& N) {
12182 return self.findarr(arr_arr.mutable_data(), iX, N);
12183 }
12184 )
12185 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
12186 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
12187 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
12188 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
12189 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
12190 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
12191
12192 class PyTrampoline_RedField_Solver : public RedField_Solver {
12193 public:
12194 using RedField_Solver::RedField_Solver;
12195
12196 int run_impl() override {
12197 PYBIND11_OVERRIDE(
12198 int, // return type
12199 RedField_Solver, // parent class
12200 run_impl, // func name
12201
12202 );
12203 }
12204
12205 int run_parallel() override {
12206 PYBIND11_OVERRIDE(
12207 int, // return type
12208 Solver, // parent class
12209 run_parallel, // func name
12210
12211 );
12212 }
12213
12214 int init(int flag) override {
12215 PYBIND11_OVERRIDE(
12216 int, // return type
12217 Solver, // parent class
12218 init, // func name
12219 flag
12220 );
12221 }
12222
12223 int final(int flag) override {
12224 PYBIND11_OVERRIDE(
12225 int, // return type
12226 Solver, // parent class
12227 final, // func name
12228 flag
12229 );
12230 }
12231
12232 int cache(int flag) override {
12233 PYBIND11_OVERRIDE(
12234 int, // return type
12235 Solver, // parent class
12236 cache, // func name
12237 flag
12238 );
12239 }
12240 };
12241
12242 py::class_<RedField_Solver, Solver, PyTrampoline_RedField_Solver>(solvers_m, "RedField_Solver", py::dynamic_attr())
12243 .def(py::init<Param, Model*>())
12244 .def(py::init<const std::string&, Model*>())
12245 .def("ref_Eele", &RedField_Solver::ref_Eele, py::return_value_policy::reference_internal)
12246 .def("ref_Tele", &RedField_Solver::ref_Tele, py::return_value_policy::reference_internal)
12247 .def("ref_Hele", &RedField_Solver::ref_Hele, py::return_value_policy::reference_internal)
12248 .def("ref_mDE", &RedField_Solver::ref_mDE, py::return_value_policy::reference_internal)
12249 .def("ref_Qtran", &RedField_Solver::ref_Qtran, py::return_value_policy::reference_internal)
12250 .def("ref_C_mDE", &RedField_Solver::ref_C_mDE, py::return_value_policy::reference_internal)
12251 .def("ref_GM_tensor", &RedField_Solver::ref_GM_tensor, py::return_value_policy::reference_internal)
12252 .def("ref_R_tensor", &RedField_Solver::ref_R_tensor, py::return_value_policy::reference_internal)
12253 .def("ref_eac0", &RedField_Solver::ref_eac0, py::return_value_policy::reference_internal)
12254 .def("ref_rho0", &RedField_Solver::ref_rho0, py::return_value_policy::reference_internal)
12255 .def("ref_rhoadia", &RedField_Solver::ref_rhoadia, py::return_value_policy::reference_internal)
12256 .def("ref_rhodia", &RedField_Solver::ref_rhodia, py::return_value_policy::reference_internal)
12257 .def("ref_rho1", &RedField_Solver::ref_rho1, py::return_value_policy::reference_internal)
12258 .def("ref_rho2", &RedField_Solver::ref_rho2, py::return_value_policy::reference_internal)
12259 .def("ref_rho3", &RedField_Solver::ref_rho3, py::return_value_policy::reference_internal)
12260 .def("ref_rho4", &RedField_Solver::ref_rho4, py::return_value_policy::reference_internal)
12261 .def("ref_rhotmp", &RedField_Solver::ref_rhotmp, py::return_value_policy::reference_internal)
12262 .def_static("name", &RedField_Solver::name)
12263 .def("run_impl", static_cast<int (RedField_Solver::*)()>(&RedField_Solver::run_impl))
12264 .def("calc_R_tensor", static_cast<int (RedField_Solver::*)()>(&RedField_Solver::calc_R_tensor))
12265 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
12266 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
12267 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
12268 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
12269 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
12270 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
12271
12272 class PyTrampoline_SSE_Solver : public SSE_Solver {
12273 public:
12274 using SSE_Solver::SSE_Solver;
12275
12276 int init(const int& itraj) override {
12277 PYBIND11_OVERRIDE(
12278 int, // return type
12279 SSE_Solver, // parent class
12280 init, // func name
12281 itraj
12282 );
12283 }
12284
12285 int correlation(const int& isamp, NAD_TCFer& tcfer) override {
12286 PYBIND11_OVERRIDE(
12287 int, // return type
12288 SSE_Solver, // parent class
12289 correlation, // func name
12290 isamp, tcfer
12291 );
12292 }
12293
12294 int sampler(const int& isamp, NAD_TCFer& tcfer) override {
12295 PYBIND11_OVERRIDE(
12296 int, // return type
12297 SSE_Solver, // parent class
12298 sampler, // func name
12299 isamp, tcfer
12300 );
12301 }
12302
12303 int action_on_wavafunction(kids_complex* eacnew, kids_complex* eac, const kids_real& t) override {
12304 PYBIND11_OVERRIDE(
12305 int, // return type
12306 SSE_Solver, // parent class
12307 action_on_wavafunction, // func name
12308 eacnew, eac, t
12309 );
12310 }
12311
12312 int action_on_wavafunction_adia(kids_complex* eacnew, kids_complex* eac, const kids_real& t) override {
12313 PYBIND11_OVERRIDE(
12314 int, // return type
12315 SSE_Solver, // parent class
12316 action_on_wavafunction_adia, // func name
12317 eacnew, eac, t
12318 );
12319 }
12320
12321 int time_kernel(kids_complex* Ker, const kids_real& t) override {
12322 PYBIND11_OVERRIDE(
12323 int, // return type
12324 SSE_Solver, // parent class
12325 time_kernel, // func name
12326 Ker, t
12327 );
12328 }
12329
12330 int call_memory_array_adia(const kids_real& dt) override {
12331 PYBIND11_OVERRIDE(
12332 int, // return type
12333 SSE_Solver, // parent class
12334 call_memory_array_adia, // func name
12335 dt
12336 );
12337 }
12338
12339 int sse(NAD_TCFer& tcfer, const int& N, const int& F) override {
12340 PYBIND11_OVERRIDE(
12341 int, // return type
12342 SSE_Solver, // parent class
12343 sse, // func name
12344 tcfer, N, F
12345 );
12346 }
12347
12348 int sse_adia(NAD_TCFer& tcfer, const int& N, const int& F) override {
12349 PYBIND11_OVERRIDE(
12350 int, // return type
12351 SSE_Solver, // parent class
12352 sse_adia, // func name
12353 tcfer, N, F
12354 );
12355 }
12356
12357 int action_on_wavafunction_adia_mem(kids_complex* eacnew, kids_complex* eacold, const int& hstep,
12358 const bool& hupdate) override {
12359 PYBIND11_OVERRIDE(
12360 int, // return type
12361 SSE_Solver, // parent class
12362 action_on_wavafunction_adia_mem, // func name
12363 eacnew, eacold, hstep, hupdate
12364 );
12365 }
12366
12367 int run_parallel() override {
12368 PYBIND11_OVERRIDE(
12369 int, // return type
12370 SSE_Solver, // parent class
12371 run_parallel, // func name
12372
12373 );
12374 }
12375
12376 int run_impl() override {
12377 PYBIND11_OVERRIDE(
12378 int, // return type
12379 Solver, // parent class
12380 run_impl, // func name
12381
12382 );
12383 }
12384
12385 int init(int flag) override {
12386 PYBIND11_OVERRIDE(
12387 int, // return type
12388 Solver, // parent class
12389 init, // func name
12390 flag
12391 );
12392 }
12393
12394 int final(int flag) override {
12395 PYBIND11_OVERRIDE(
12396 int, // return type
12397 Solver, // parent class
12398 final, // func name
12399 flag
12400 );
12401 }
12402
12403 int cache(int flag) override {
12404 PYBIND11_OVERRIDE(
12405 int, // return type
12406 Solver, // parent class
12407 cache, // func name
12408 flag
12409 );
12410 }
12411 };
12412
12413 py::class_<SSE_Solver, Solver, PyTrampoline_SSE_Solver>(solvers_m, "SSE_Solver", py::dynamic_attr())
12414 .def(py::init<Param, Model*>())
12415 .def(py::init<const std::string&, Model*>())
12416 .def("ref_rand1", &SSE_Solver::ref_rand1, py::return_value_policy::reference_internal)
12417 .def("ref_rand2", &SSE_Solver::ref_rand2, py::return_value_policy::reference_internal)
12418 .def("ref_Eele", &SSE_Solver::ref_Eele, py::return_value_policy::reference_internal)
12419 .def("ref_DE", &SSE_Solver::ref_DE, py::return_value_policy::reference_internal)
12420 .def("ref_w", &SSE_Solver::ref_w, py::return_value_policy::reference_internal)
12421 .def("ref_tanhqwb", &SSE_Solver::ref_tanhqwb, py::return_value_policy::reference_internal)
12422 .def("ref_xicoeff1", &SSE_Solver::ref_xicoeff1, py::return_value_policy::reference_internal)
12423 .def("ref_xicoeff2", &SSE_Solver::ref_xicoeff2, py::return_value_policy::reference_internal)
12424 .def("ref_alpha_pref", &SSE_Solver::ref_alpha_pref, py::return_value_policy::reference_internal)
12425 .def("ref_CL", &SSE_Solver::ref_CL, py::return_value_policy::reference_internal)
12426 .def("ref_DEpW", &SSE_Solver::ref_DEpW, py::return_value_policy::reference_internal)
12427 .def("ref_DEmW", &SSE_Solver::ref_DEmW, py::return_value_policy::reference_internal)
12428 .def("ref_coeff_DEpW", &SSE_Solver::ref_coeff_DEpW, py::return_value_policy::reference_internal)
12429 .def("ref_coeff_DEmW", &SSE_Solver::ref_coeff_DEmW, py::return_value_policy::reference_internal)
12430 .def("ref_Hele", &SSE_Solver::ref_Hele, py::return_value_policy::reference_internal)
12431 .def("ref_Tele", &SSE_Solver::ref_Tele, py::return_value_policy::reference_internal)
12432 .def("ref_T0", &SSE_Solver::ref_T0, py::return_value_policy::reference_internal)
12433 .def("ref_Xzero", &SSE_Solver::ref_Xzero, py::return_value_policy::reference_internal)
12434 .def("ref_Xtran", &SSE_Solver::ref_Xtran, py::return_value_policy::reference_internal)
12435 .def("ref_Qzero", &SSE_Solver::ref_Qzero, py::return_value_policy::reference_internal)
12436 .def("ref_Qtran", &SSE_Solver::ref_Qtran, py::return_value_policy::reference_internal)
12437 .def("ref_BL", &SSE_Solver::ref_BL, py::return_value_policy::reference_internal)
12438 .def("ref_tmpbarr1", &SSE_Solver::ref_tmpbarr1, py::return_value_policy::reference_internal)
12439 .def("ref_tmpbarr2", &SSE_Solver::ref_tmpbarr2, py::return_value_policy::reference_internal)
12440 .def("ref_eac", &SSE_Solver::ref_eac, py::return_value_policy::reference_internal)
12441 .def("ref_eac_adia", &SSE_Solver::ref_eac_adia, py::return_value_policy::reference_internal)
12442 .def("ref_eac0", &SSE_Solver::ref_eac0, py::return_value_policy::reference_internal)
12443 .def("ref_rho0", &SSE_Solver::ref_rho0, py::return_value_policy::reference_internal)
12444 .def("ref_rhot", &SSE_Solver::ref_rhot, py::return_value_policy::reference_internal)
12445 .def("ref_fact1", &SSE_Solver::ref_fact1, py::return_value_policy::reference_internal)
12446 .def("ref_fact2", &SSE_Solver::ref_fact2, py::return_value_policy::reference_internal)
12447 .def("ref_fact3", &SSE_Solver::ref_fact3, py::return_value_policy::reference_internal)
12448 .def("ref_fact4", &SSE_Solver::ref_fact4, py::return_value_policy::reference_internal)
12449 .def("ref_eactmp", &SSE_Solver::ref_eactmp, py::return_value_policy::reference_internal)
12450 .def("ref_eactmp1", &SSE_Solver::ref_eactmp1, py::return_value_policy::reference_internal)
12451 .def("ref_eactmp2", &SSE_Solver::ref_eactmp2, py::return_value_policy::reference_internal)
12452 .def("ref_eacadd1", &SSE_Solver::ref_eacadd1, py::return_value_policy::reference_internal)
12453 .def("ref_eacadd2", &SSE_Solver::ref_eacadd2, py::return_value_policy::reference_internal)
12454 .def("ref_eactran", &SSE_Solver::ref_eactran, py::return_value_policy::reference_internal)
12455 .def("ref_crand1", &SSE_Solver::ref_crand1, py::return_value_policy::reference_internal)
12456 .def("ref_crand2", &SSE_Solver::ref_crand2, py::return_value_policy::reference_internal)
12457 .def("ref_invexpiEt", &SSE_Solver::ref_invexpiEt, py::return_value_policy::reference_internal)
12458 .def("ref_U", &SSE_Solver::ref_U, py::return_value_policy::reference_internal)
12459 .def("ref_expiwt", &SSE_Solver::ref_expiwt, py::return_value_policy::reference_internal)
12460 .def("ref_expiDEt", &SSE_Solver::ref_expiDEt, py::return_value_policy::reference_internal)
12461 .def("ref_invexpiwt", &SSE_Solver::ref_invexpiwt, py::return_value_policy::reference_internal)
12462 .def("ref_invexpiDEt", &SSE_Solver::ref_invexpiDEt, py::return_value_policy::reference_internal)
12463 .def("ref_expiwdht", &SSE_Solver::ref_expiwdht, py::return_value_policy::reference_internal)
12464 .def("ref_invexpiwdht", &SSE_Solver::ref_invexpiwdht, py::return_value_policy::reference_internal)
12465 .def("ref_expiwt_now", &SSE_Solver::ref_expiwt_now, py::return_value_policy::reference_internal)
12466 .def("ref_invexpiwt_now", &SSE_Solver::ref_invexpiwt_now, py::return_value_policy::reference_internal)
12467 .def("ref_Xtmpj", &SSE_Solver::ref_Xtmpj, py::return_value_policy::reference_internal)
12468 .def("ref_Xtmp2j", &SSE_Solver::ref_Xtmp2j, py::return_value_policy::reference_internal)
12469 .def("ref_xi", &SSE_Solver::ref_xi, py::return_value_policy::reference_internal)
12470 .def("ref_time_ker", &SSE_Solver::ref_time_ker, py::return_value_policy::reference_internal)
12471 .def("ref_mem_arr", &SSE_Solver::ref_mem_arr, py::return_value_policy::reference_internal)
12472 .def_static("name", &SSE_Solver::name)
12473 .def("init", static_cast<int (SSE_Solver::*)(const int&)>(&SSE_Solver::init))
12474 .def("correlation", static_cast<int (SSE_Solver::*)(const int&, NAD_TCFer&)>(&SSE_Solver::correlation))
12475 .def("sampler", static_cast<int (SSE_Solver::*)(const int&, NAD_TCFer&)>(&SSE_Solver::sampler))
12476 .def("call_memory_array_adia", static_cast<int (SSE_Solver::*)(const kids_real&)>(&SSE_Solver::call_memory_array_adia))
12477 .def("sse", static_cast<int (SSE_Solver::*)(NAD_TCFer&, const int&, const int&)>(&SSE_Solver::sse))
12478 .def("sse_adia", static_cast<int (SSE_Solver::*)(NAD_TCFer&, const int&, const int&)>(&SSE_Solver::sse_adia))
12479 .def("run_parallel", static_cast<int (SSE_Solver::*)()>(&SSE_Solver::run_parallel))
12480 .def("run", static_cast<int (Solver::*)()>(&Solver::run))
12481 .def("run_impl", static_cast<int (Solver::*)()>(&Solver::run_impl))
12482 .def("run_parallel", static_cast<int (Solver::*)()>(&Solver::run_parallel))
12483 .def("init", static_cast<int (Solver::*)(int)>(&Solver::init))
12484 .def("final", static_cast<int (Solver::*)(int)>(&Solver::final))
12485 .def("cache", static_cast<int (Solver::*)(int)>(&Solver::cache));
12486
12487 class PyTrampoline_Bath : public Bath {
12488 public:
12489 using Bath::Bath;
12490 };
12491
12492 py::class_<Bath, Model, PyTrampoline_Bath>(models_m, "Bath", py::dynamic_attr())
12493 .def(py::init<const Param&, const int&, const int&>())
12494 .def(py::init<const std::string&, const int&, const int&>())
12495 .def_readwrite("coup_type", &Bath::coup_type)
12496 .def_readwrite("coup_flag", &Bath::coup_flag)
12497 .def_readwrite("spec_type", &Bath::spec_type)
12498 .def_readwrite("spec_flag", &Bath::spec_flag)
12499 .def_readwrite("omegac", &Bath::omegac)
12500 .def_readwrite("lambda", &Bath::lambda)
12501 .def_readwrite("beta", &Bath::beta)
12502 .def_readwrite("nbath", &Bath::nbath)
12503 .def_readwrite("F", &Bath::F)
12504 .def("ref_Q", &Bath::ref_Q, py::return_value_policy::reference_internal)
12505 .def("Discretization", [](Bath& self, py::array_t<double, py::array::c_style | py::array::forcecast> W_arr_arr,
12506 py::array_t<double, py::array::c_style | py::array::forcecast> C_arr_arr,
12507 const int& Nb) {
12508 return self.Discretization(W_arr_arr.mutable_data(), C_arr_arr.mutable_data(), Nb);
12509 }
12510 )
12511 .def("J_Ohmic", static_cast<double (Bath::*)(const double&)>(&Bath::J_Ohmic))
12512 .def("J_Debye", static_cast<double (Bath::*)(const double&)>(&Bath::J_Debye))
12513 .def("J_Refit", [](Bath& self, const double& w,
12514 py::array_t<double, py::array::c_style | py::array::forcecast> W_arr_arr,
12515 py::array_t<double, py::array::c_style | py::array::forcecast> C_arr_arr,
12516 const int& Nb) {
12517 return self.J_Refit(w, W_arr_arr.mutable_data(), C_arr_arr.mutable_data(), Nb);
12518 }
12519 )
12520 .def("J", [](Bath& self, const double& w,
12521 py::array_t<double, py::array::c_style | py::array::forcecast> W_arr_arr,
12522 py::array_t<double, py::array::c_style | py::array::forcecast> C_arr_arr,
12523 const int& Nb) {
12524 return self.J(w, W_arr_arr.mutable_data(), C_arr_arr.mutable_data(), Nb);
12525 }
12526 )
12527 .def("fun_Cw_Re", [](Bath& self, const double& w,
12528 py::array_t<double, py::array::c_style | py::array::forcecast> W_arr_arr,
12529 py::array_t<double, py::array::c_style | py::array::forcecast> C_arr_arr,
12530 const int& Nb) {
12531 return self.fun_Cw_Re(w, W_arr_arr.mutable_data(), C_arr_arr.mutable_data(), Nb);
12532 }
12533 );
12534
12535 class PyTrampoline_Thermostat : public Thermostat {
12536 public:
12537 using Thermostat::Thermostat;
12538
12539 int evolve(kids_real* nr, kids_real* np, kids_real* nm, const kids_real& dt, const int& N, const int& start = 0,
12540 kids_real gammal_in = -1.0f) override {
12541 PYBIND11_OVERRIDE(
12542 int, // return type
12543 Thermostat, // parent class
12544 evolve, // func name
12545 nr, np, nm, dt, N, start, gammal_in
12546 );
12547 }
12548 };
12549
12550 py::class_<Thermostat, Model, PyTrampoline_Thermostat>(models_m, "Thermostat", py::dynamic_attr())
12551 .def(py::init<const Param&>())
12552 .def(py::init<const std::string&>())
12553 .def_readwrite("beta", &Thermostat::beta)
12554 .def("ref_nhc_r", &Thermostat::ref_nhc_r, py::return_value_policy::reference_internal)
12555 .def("ref_nhc_p", &Thermostat::ref_nhc_p, py::return_value_policy::reference_internal)
12556 .def("ref_nhc_G", &Thermostat::ref_nhc_G, py::return_value_policy::reference_internal)
12557 .def("ref_nhc_Q", &Thermostat::ref_nhc_Q, py::return_value_policy::reference_internal)
12558 .def("init_alloc", static_cast<int (Thermostat::*)(const int&)>(&Thermostat::init_alloc))
12559 .def("dothermo", static_cast<bool (Thermostat::*)(const int&)>(&Thermostat::dothermo))
12560 .def("set_gammal", static_cast<void (Thermostat::*)(kids_real)>(&Thermostat::set_gammal))
12561 .def("evolve", [](Thermostat& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
12562 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
12563 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
12564 const kids_real& dt,
12565 const int& N,
12566 const int& start,
12567 kids_real gammal_in) {
12568 return self.evolve(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), dt, N, start, gammal_in);
12569 }
12570 )
12571 .def("run_NHC", [](Thermostat& self, py::array_t<kids_real, py::array::c_style | py::array::forcecast> nr_arr,
12572 py::array_t<kids_real, py::array::c_style | py::array::forcecast> np_arr,
12573 py::array_t<kids_real, py::array::c_style | py::array::forcecast> nm_arr,
12574 const kids_real& dt,
12575 const int& N,
12576 const int& start,
12577 kids_real gammal_in) {
12578 return self.run_NHC(nr_arr.mutable_data(), np_arr.mutable_data(), nm_arr.mutable_data(), dt, N, start, gammal_in);
12579 }
12580 );
12581}
12582// clang-format off
12583
PyDataSet def(py::init<>())
PYBIND11_MODULE(libopendf, m)