23#include <pybind11/eigen.h>
32 :
Job(std::move(parameters)) {
35 py::module_ sys_mod = py::module_::import(
"sys");
36 py::module_ ipdb_mod = py::module_::import(
"ipdb");
37 sys_mod.attr(
"breakpointhook") = ipdb_mod.attr(
"set_trace");
42 :
Job(potPassed, parameters) {
45 py::module_ sys_mod = py::module_::import(
"sys");
46 py::module_ ipdb_mod = py::module_::import(
"ipdb");
47 sys_mod.attr(
"breakpointhook") = ipdb_mod.attr(
"set_trace");
51 std::vector<std::string>
run()
override;
53 std::shared_ptr<NudgedElasticBand>
55 std::shared_ptr<Matter> final_state);
59 std::unique_ptr<NudgedElasticBand>
neb);
67 std::shared_ptr<Potential> true_pot);
69 std::shared_ptr<Potential> true_pot);
71std::pair<Eigen::VectorXd, Eigen::VectorXd>
73 std::shared_ptr<Potential> true_pot);
74std::vector<Matter>
getMidSlice(
const std::vector<Matter> &matobjs);
75bool accuratePES(std::vector<std::shared_ptr<Matter>> &matobjs,
76 std::shared_ptr<Potential> true_pot);
77std::pair<double, Eigen::VectorXd::Index>
81namespace 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).
void saveData(NudgedElasticBand::NEBStatus status, std::unique_ptr< NudgedElasticBand > neb)
GPSurrogateJob(std::unique_ptr< Parameters > parameters)
GPSurrogateJob(std::shared_ptr< Potential > potPassed, const Parameters ¶meters)
std::vector< std::string > returnFiles
std::vector< std::string > run() override
Virtual run; used solely for dynamic dispatch.
~GPSurrogateJob()=default
Job(std::unique_ptr< Parameters > parameters)
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()