20#pragma GCC diagnostic push
21#pragma GCC diagnostic ignored "-Wpedantic"
22#pragma GCC diagnostic ignored "-Wunused-parameter"
23#pragma GCC diagnostic ignored "-Wfloat-equal"
24#pragma GCC diagnostic ignored "-Wfloat-conversion"
25#pragma GCC diagnostic ignored "-Wsign-conversion"
26#pragma GCC diagnostic ignored "-Wold-style-cast"
28#include <torch/script.h>
29#include <torch/version.h>
30#if __has_include(<torch/cuda.h>)
31#include <torch/cuda.h>
33#if __has_include(<torch/mps.h>)
37#include "metatensor/torch.hpp"
38#include "metatensor/torch/module.hpp"
39#include "metatomic/torch.hpp"
41#pragma GCC diagnostic pop
92 metatensor_torch::TensorBlock
94 const double *positions,
const double *box,
95 const bool periodic[3]);
111 [[nodiscard]] std::shared_ptr<eonc::Potential>
132 void force(
long nAtoms,
const double *positions,
const int *atomicNrs,
133 double *forces,
double *energy,
double *variance,
134 const double *box)
override;
140 [[nodiscard]]
bool isThreadSafe() const noexcept
override {
return false; }
152 void forceBatch(
long nSystems,
long nAtoms,
const double *
const *positions,
153 const int *
const *atomicNrs,
double *
const *forces,
154 double *energies,
double *variances,
155 const double *
const *boxes)
override;
161 const double *
const *positions,
162 const int *
const *atomicNrs,
double *
const *forces,
163 double *energies,
double *variances,
164 const double *
const *boxes);
eonc::metatomic_options_t metatomic_options_t
RAII helper for class-scoped logging.