eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
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
17
extern
"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
31
typedef
struct
EonMtaPot
EonMtaPot
;
32
37
typedef
struct
EonMtaConfig
{
38
const
char
*
model_path
;
39
const
char
*
device
;
40
const
char
*
length_unit
;
41
const
char
*
extensions_directory
;
42
int
check_consistency
;
43
double
uncertainty_threshold
;
44
const
char
*
energy_output
;
45
const
char
*
energy_uncertainty_output
;
46
const
char
*
force_output
;
47
int
non_conservative
;
48
int
random_rotation
;
49
long
n_symmetry_rotations
;
50
int
deterministic
;
51
int
deterministic_strict
;
52
const
char
*
variant_base
;
53
const
char
*
variant_energy
;
54
const
char
*
variant_energy_uncertainty
;
55
const
char
*
variant_force
;
56
}
EonMtaConfig
;
57
62
EON_MTA_API
EonMtaPot
*
eon_mta_pot_create
(
const
EonMtaConfig
*cfg,
char
*errbuf,
63
size_t
errlen);
64
65
EON_MTA_API
void
eon_mta_pot_destroy
(
EonMtaPot
*pot);
66
71
EON_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
77
EON_MTA_API
int
eon_mta_abi_version
(
void
);
78
79
#define EON_MTA_ABI_VERSION 1
80
81
#ifdef __cplusplus
82
}
83
#endif
EON_MTA_API
#define EON_MTA_API
Definition
metatomic_c_abi.h:27
eon_mta_pot_force
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.
Definition
MetatomicCAbi.cpp:78
eon_mta_pot_create
EON_MTA_API EonMtaPot * eon_mta_pot_create(const EonMtaConfig *cfg, char *errbuf, size_t errlen)
Create pot.
Definition
MetatomicCAbi.cpp:35
eon_mta_pot_destroy
EON_MTA_API void eon_mta_pot_destroy(EonMtaPot *pot)
Definition
MetatomicCAbi.cpp:76
eon_mta_abi_version
EON_MTA_API int eon_mta_abi_version(void)
ABI version for loader checks.
Definition
MetatomicCAbi.cpp:33
EonMtaConfig
Flat config for create (mirrors Parameters::metatomic_options_t).
Definition
metatomic_c_abi.h:37
EonMtaConfig::device
const char * device
Definition
metatomic_c_abi.h:39
EonMtaConfig::extensions_directory
const char * extensions_directory
Definition
metatomic_c_abi.h:41
EonMtaConfig::random_rotation
int random_rotation
Definition
metatomic_c_abi.h:48
EonMtaConfig::variant_force
const char * variant_force
Definition
metatomic_c_abi.h:55
EonMtaConfig::model_path
const char * model_path
Definition
metatomic_c_abi.h:38
EonMtaConfig::length_unit
const char * length_unit
Definition
metatomic_c_abi.h:40
EonMtaConfig::n_symmetry_rotations
long n_symmetry_rotations
Definition
metatomic_c_abi.h:49
EonMtaConfig::non_conservative
int non_conservative
Definition
metatomic_c_abi.h:47
EonMtaConfig::check_consistency
int check_consistency
Definition
metatomic_c_abi.h:42
EonMtaConfig::energy_output
const char * energy_output
Definition
metatomic_c_abi.h:44
EonMtaConfig::deterministic
int deterministic
Definition
metatomic_c_abi.h:50
EonMtaConfig::force_output
const char * force_output
Definition
metatomic_c_abi.h:46
EonMtaConfig::variant_base
const char * variant_base
Definition
metatomic_c_abi.h:52
EonMtaConfig::deterministic_strict
int deterministic_strict
Definition
metatomic_c_abi.h:51
EonMtaConfig::energy_uncertainty_output
const char * energy_uncertainty_output
Definition
metatomic_c_abi.h:45
EonMtaConfig::variant_energy
const char * variant_energy
Definition
metatomic_c_abi.h:53
EonMtaConfig::variant_energy_uncertainty
const char * variant_energy_uncertainty
Definition
metatomic_c_abi.h:54
EonMtaConfig::uncertainty_threshold
double uncertainty_threshold
Definition
metatomic_c_abi.h:43
EonMtaPot
Definition
MetatomicCAbi.cpp:19
include
eon
potentials
Metatomic
metatomic_c_abi.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf