22#include <readcon-core.hpp>
38 const std::vector<std::shared_ptr<AtomMatrix>> &tangent,
43 const std::vector<std::shared_ptr<Matter>> &path,
44 const std::vector<std::shared_ptr<AtomMatrix>> &tangent,
45 const std::vector<std::shared_ptr<EigenmodeStrategy>> &eigenmode_solvers,
46 long numImages,
bool estimateEigenvalues,
bool writeToFile,
size_t idx,
52 const std::vector<std::shared_ptr<Matter>> &path,
53 const std::vector<std::shared_ptr<AtomMatrix>> &tangent,
54 const std::vector<std::shared_ptr<EigenmodeStrategy>> &eigenmode_solvers,
55 long numImages,
bool estimateEigenvalues,
56 std::optional<size_t> bandIndex = std::nullopt);
60 const std::vector<std::shared_ptr<Matter>> &path,
61 const std::vector<std::shared_ptr<AtomMatrix>> &tangent,
62 const std::vector<std::shared_ptr<EigenmodeStrategy>> &eigenmode_solvers,
63 long numImages,
bool estimateEigenvalues, std::string filename,
64 std::optional<size_t> bandIndex = std::nullopt);
IoStatus
Structured I/O result for the client surface (nanobind-friendly).
std::vector< readcon::ConFrame > pathToConFrames(const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, const std::vector< std::shared_ptr< EigenmodeStrategy > > &eigenmode_solvers, long numImages, bool estimateEigenvalues, std::optional< size_t > bandIndex)
Build stamped ConFrames for a NEB band (same metadata as writePathCon).
eonc::io::IoStatus writePathCon(const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, const std::vector< std::shared_ptr< EigenmodeStrategy > > &eigenmode_solvers, long numImages, bool estimateEigenvalues, std::string filename, std::optional< size_t > bandIndex)
Write a NEB band as a multi-frame .con via readcon ConFrameBuilder::clone().
void printImageData(const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, const std::vector< std::shared_ptr< EigenmodeStrategy > > &eigenmode_solvers, long numImages, bool estimateEigenvalues, bool writeToFile, size_t idx, eonc::log::Scoped log)
Print NEB image data to log and optionally to file.
ExtremaResult findSplineExtrema(const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, long numImages)
Find extrema along the MEP using cubic spline interpolation.
RAII helper for class-scoped logging.
std::vector< double > energies
std::vector< double > curvatures
std::vector< double > positions