20#include <pybind11/eigen.h>
29 :
Job(std::move(parameters), rt) {
32 py::module_ sys_mod = py::module_::import(
"sys");
33 py::module_ ipdb_mod = py::module_::import(
"ipdb");
34 sys_mod.attr(
"breakpointhook") = ipdb_mod.attr(
"set_trace");
39 :
Job(potPassed, parameters) {
42 py::module_ sys_mod = py::module_::import(
"sys");
43 py::module_ ipdb_mod = py::module_::import(
"ipdb");
44 sys_mod.attr(
"breakpointhook") = ipdb_mod.attr(
"set_trace");
48 std::vector<std::string>
run()
override;
50 std::shared_ptr<NudgedElasticBand>
52 std::shared_ptr<Matter> final_state);
56 std::unique_ptr<NudgedElasticBand>
neb);
64 std::shared_ptr<Potential> true_pot);
66 std::shared_ptr<Potential> true_pot);
68std::pair<Eigen::VectorXd, Eigen::VectorXd>
70 std::shared_ptr<Potential> true_pot);
71std::vector<Matter>
getMidSlice(
const std::vector<Matter> &matobjs);
72bool accuratePES(std::vector<std::shared_ptr<Matter>> &matobjs,
73 std::shared_ptr<Potential> true_pot);
74std::pair<double, Eigen::VectorXd::Index>
78namespace helpers::eigen {
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, eOnStorageOrder > MatrixXd
The job class is used to serve as an abstract class for all jobs, as well as to call a job at runtime...
std::shared_ptr< NudgedElasticBand > runFromMatter(std::shared_ptr< Matter > initial, std::shared_ptr< Matter > final_state)
Matter-first NEB surrogate path (endpoints as Matter).
GPSurrogateJob(std::unique_ptr< Parameters > parameters, Runtime &rt)
std::vector< std::string > run() override
Virtual run; used solely for dynamic dispatch.
GPSurrogateJob(std::shared_ptr< Potential > potPassed, const Parameters ¶meters)
std::vector< std::string > returnFiles
void saveData(NudgedElasticBand::NEBStatus status, std::unique_ptr< NudgedElasticBand > neb)
~GPSurrogateJob()=default
Job(std::unique_ptr< Parameters > parameters, Runtime &rt)
Borrow: caller keeps Runtime alive (CLI stack / Python Session).
Move-only composition root for process resources (dlopen loaders and the potential registry).
MatrixXd vertCat(const MatrixXd &m1, const MatrixXd &m2)
void addVectorRow(MatrixXd &data, const Eigen::VectorXd &newrow)
MatrixXd get_targets(std::vector< Matter > &matobjs, std::shared_ptr< Potential > true_pot)
MatrixXd get_features(const std::vector< Matter > &matobjs)
bool accuratePES(std::vector< std::shared_ptr< Matter > > &matobjs, std::shared_ptr< Potential > true_pot)
std::pair< double, Eigen::VectorXd::Index > getMaxUncertainty(const std::vector< std::shared_ptr< Matter > > &matobjs)
std::vector< Matter > getMidSlice(const std::vector< Matter > &matobjs)
std::pair< Eigen::VectorXd, Eigen::VectorXd > getNewDataPoint(const std::vector< std::shared_ptr< Matter > > &matobjs, std::shared_ptr< Potential > true_pot)
Eigen::VectorXd make_target(Matter &m1, std::shared_ptr< Potential > true_pot)
RAII resource manager for the ARTn C library with global synchronization.
void ensure_interpreter()