#include <CatLearnPot.h>
Public Member Functions | |
| CatLearnPot (const Parameters &a_params) | |
| void | train_optimize (const MatrixXd &features, const MatrixXd &targets) override |
| void | force (long nAtoms, const double *positions, const int *atomicNrs, double *forces, double *energy, double *variance, const double *box) override |
| bool | isThreadSafe () const noexcept override |
| Whether this potential's force() can be called from multiple threads on the SAME instance. | |
| Public Member Functions inherited from eonc::SurrogatePotential | |
| SurrogatePotential (PotType a_ptype, const Parameters &a_params) | |
| virtual | ~SurrogatePotential ()=default |
| bool | isSurrogate () const noexcept override |
| Whether this is a surrogate (GP) potential. | |
| std::tuple< double, AtomMatrix, double > | get_ef_var (const AtomMatrix pos, const VectorXi atmnrs, const Matrix3d box) |
| Public Member Functions inherited from eonc::Potential | |
| Potential (PotType a_ptype) | |
| Potential (PotType a_ptype, const Parameters &) | |
| Potential (const Parameters &a_params) | |
| virtual | ~Potential () |
| std::tuple< double, AtomMatrix > | get_ef (const AtomMatrix &pos, const VectorXi &atmnrs, const Matrix3d &box) |
| PotType | getType () const |
| virtual bool | requiresIsolatedMoleculeLayout () const noexcept |
| True for molecular QM / non-PBC backends (NWChem socket, ASE ORCA/NWChem, …). | |
| virtual bool | isSharedInstanceThreadSafe () const noexcept |
| Conservative gate for sharing one Potential instance across threads. | |
| virtual bool | needsPerImageInstance () const noexcept |
| Whether NEB should create separate Potential instances per image for true parallel force evaluation. | |
| virtual bool | supportsBatchEvaluation () const noexcept |
| Whether this potential supports batched evaluation of N systems in a single call. | |
| virtual void | forceBatch (long nSystems, long nAtoms, const double *const *positions, const int *const *atomicNrs, double *const *forces, double *energies, double *variances, const double *const *boxes) |
| Evaluate forces for N systems in a single call. | |
Public Attributes | |
| py::object | m_gpmod |
| MatrixXd | variance |
| Public Attributes inherited from eonc::Potential | |
| std::atomic< size_t > | forceCallCounter |
Additional Inherited Members | |
| Protected Attributes inherited from eonc::Potential | |
| PotType | ptype |
Definition at line 25 of file CatLearnPot.h.
| CatLearnPot::CatLearnPot | ( | const Parameters & | a_params | ) |
Definition at line 16 of file CatLearnPot.cpp.
|
overridevirtual |
Implements eonc::Potential.
Definition at line 36 of file CatLearnPot.cpp.
|
inlinenodiscardoverridevirtualnoexcept |
Whether this potential's force() can be called from multiple threads on the SAME instance.
Python-based potentials return false. Potentials with internal mutex (MetatomicPotential) return true but serialize internally – use needsPerImageInstance() to check if separate instances would enable true parallelism.
Reimplemented from eonc::Potential.
Definition at line 36 of file CatLearnPot.h.
|
overridevirtual |
Implements eonc::SurrogatePotential.
Definition at line 31 of file CatLearnPot.cpp.
| py::object CatLearnPot::m_gpmod |
Definition at line 38 of file CatLearnPot.h.
| MatrixXd CatLearnPot::variance |
Definition at line 40 of file CatLearnPot.h.