class rgpot::XTBDlopen

Overview

Plugin path: dlopen libxtb_engine.so, which implements the same ISO_C_BINDING singlepoint as linked XTBPot behind xtb_c_abi.h. More…

#include <XTBDlopen.hpp>
 
class XTBDlopen {
public:
    // construction
 
    XTBDlopen(const XTBDlopenConfig& config);
    XTBDlopen(const XTBConfig& xtb = XTBConfig{});
    XTBDlopen(const XTBDlopen&);
    ~XTBDlopen();
 
    // methods
 
    XTBDlopen& operator=(const XTBDlopen&);
    bool available() const;
    void forceImpl(const ForceInput& in, ForceOut* out) const;
    std::tuple<double, types::AtomMatrix, double> operator()(const types::AtomMatrix& positions, const std::vector<int>& atmtypes, const std::array<std::array<double, 3>, 3>& box) const;
};

Detailed Documentation

Plugin path: dlopen libxtb_engine.so, which implements the same ISO_C_BINDING singlepoint as linked XTBPot behind xtb_c_abi.h. Search: engine_path, RGPOT_XTB_ENGINE, XTB_ENGINE, bare libxtb_engine.so, then EON_POTENTIALS_PATH / RGPOT_ENGINE_PATH.

Always compiled (no NEEDED libxtb). Linked XTBPot remains optional via -Dwith_xtb=true.

Methods

std::tuple<double, types::AtomMatrix, double> operator()(const types::AtomMatrix& positions, const std::vector<int>& atmtypes, const std::array<std::array<double, 3>, 3>& box) const

Convenience operator matching Potential interface shape.