Loading...
Searching...
No Matches
metatomic_c_abi.h
Go to the documentation of this file.
1/*
2** This file is part of eOn.
3**
4** SPDX-License-Identifier: BSD-3-Clause
5**
6** Copyright (c) 2010--present, eOn Development Team
7** All rights reserved.
8**
9** Pure C ABI for libmetatomic_pot.so — loadable via dlopen like Fortran pots /
10** liblammps. Host eOn never includes torch headers.
11*/
12#pragma once
13
14#include <stddef.h>
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20#ifdef _WIN32
21#ifdef EON_MTA_BUILD
22#define EON_MTA_API __declspec(dllexport)
23#else
24#define EON_MTA_API __declspec(dllimport)
25#endif
26#else
27#define EON_MTA_API __attribute__((visibility("default")))
28#endif
29
31typedef struct EonMtaPot EonMtaPot;
32
57
63 size_t errlen);
64
66
71EON_MTA_API int eon_mta_pot_force(EonMtaPot *pot, long nAtoms,
72 const double *positions, const int *atomicNrs,
73 double *forces, double *energy,
74 double *variance, const double *box);
75
78
79#define EON_MTA_ABI_VERSION 1
80
81#ifdef __cplusplus
82}
83#endif
#define EON_MTA_API
EON_MTA_API int eon_mta_pot_force(EonMtaPot *pot, long nAtoms, const double *positions, const int *atomicNrs, double *forces, double *energy, double *variance, const double *box)
Evaluate energy + forces.
EON_MTA_API EonMtaPot * eon_mta_pot_create(const EonMtaConfig *cfg, char *errbuf, size_t errlen)
Create pot.
EON_MTA_API void eon_mta_pot_destroy(EonMtaPot *pot)
EON_MTA_API int eon_mta_abi_version(void)
ABI version for loader checks.
Flat config for create (mirrors Parameters::metatomic_options_t).
const char * device
const char * extensions_directory
const char * variant_force
const char * model_path
const char * length_unit
long n_symmetry_rotations
const char * energy_output
const char * force_output
const char * variant_base
const char * energy_uncertainty_output
const char * variant_energy
const char * variant_energy_uncertainty
double uncertainty_threshold