eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
MetatomicEngineLoader.h
Go to the documentation of this file.
1
#pragma once
2
/*
3
** Thin RGPOT-metatomic backend: dlopen libmetatomic_engine.so (no torch).
4
*/
5
#include "
metatomic_c_abi.h
"
6
#include <memory>
7
#include <string>
8
9
struct
MetatomicEngineOptions
{
10
std::string
model_path
;
11
std::string
device
{
"cpu"
};
12
std::string
length_unit
{
"angstrom"
};
13
std::string
extensions_directory
;
14
bool
check_consistency
{
false
};
15
double
uncertainty_threshold
{-1.0};
16
std::string
engine_path
;
// optional explicit .so path
17
bool
torch_determinism_strict
{
false
};
18
};
19
20
class
MetatomicEngineLoader
{
21
public
:
22
explicit
MetatomicEngineLoader
(
const
MetatomicEngineOptions
&opt);
23
~MetatomicEngineLoader
();
24
MetatomicEngineLoader
(
const
MetatomicEngineLoader
&) =
delete
;
25
MetatomicEngineLoader
&
operator=
(
const
MetatomicEngineLoader
&) =
delete
;
26
27
[[nodiscard]]
bool
available
() const noexcept {
return
m_pot
!=
nullptr
; }
28
void
force
(
long
N,
const
double
*R,
const
int
*atomicNrs,
double
*F,
29
double
*U,
double
*variance,
const
double
*box)
const
;
30
31
private
:
32
void
*
m_lib
{
nullptr
};
33
RgpotMtaPot
*
m_pot
{
nullptr
};
34
using
create_fn
=
RgpotMtaPot
*(*)(
const
RgpotMtaConfig
*,
char
*,
size_t
);
35
using
destroy_fn
= void (*)(
RgpotMtaPot
*);
36
using
force_fn
= int (*)(
RgpotMtaPot
*, long,
const
double
*,
const
int
*,
37
double
*,
double
*,
double
*,
const
double
*);
38
create_fn
m_create
{
nullptr
};
39
destroy_fn
m_destroy
{
nullptr
};
40
force_fn
m_force
{
nullptr
};
41
};
metatomic_c_abi.h
C ABI between Metatomic frontend and libmetatomic_engine.so.
MetatomicEngineLoader::m_destroy
destroy_fn m_destroy
Definition
MetatomicEngineLoader.h:39
MetatomicEngineLoader::destroy_fn
void(*)(RgpotMtaPot *) destroy_fn
Definition
MetatomicEngineLoader.h:35
MetatomicEngineLoader::create_fn
RgpotMtaPot *(*)(const RgpotMtaConfig *, char *, size_t) create_fn
Definition
MetatomicEngineLoader.h:34
MetatomicEngineLoader::m_lib
void * m_lib
Definition
MetatomicEngineLoader.h:32
MetatomicEngineLoader::operator=
MetatomicEngineLoader & operator=(const MetatomicEngineLoader &)=delete
MetatomicEngineLoader::m_create
create_fn m_create
Definition
MetatomicEngineLoader.h:38
MetatomicEngineLoader::force
void force(long N, const double *R, const int *atomicNrs, double *F, double *U, double *variance, const double *box) const
Definition
MetatomicEngineLoader.cpp:124
MetatomicEngineLoader::force_fn
int(*)(RgpotMtaPot *, long, const double *, const int *, double *, double *, double *, const double *) force_fn
Definition
MetatomicEngineLoader.h:36
MetatomicEngineLoader::m_force
force_fn m_force
Definition
MetatomicEngineLoader.h:40
MetatomicEngineLoader::available
bool available() const noexcept
Definition
MetatomicEngineLoader.h:27
MetatomicEngineLoader::~MetatomicEngineLoader
~MetatomicEngineLoader()
Definition
MetatomicEngineLoader.cpp:114
MetatomicEngineLoader::m_pot
RgpotMtaPot * m_pot
Definition
MetatomicEngineLoader.h:33
MetatomicEngineLoader::MetatomicEngineLoader
MetatomicEngineLoader(const MetatomicEngineOptions &opt)
Definition
MetatomicEngineLoader.cpp:33
MetatomicEngineLoader::MetatomicEngineLoader
MetatomicEngineLoader(const MetatomicEngineLoader &)=delete
MetatomicEngineOptions
Definition
MetatomicEngineLoader.h:9
MetatomicEngineOptions::uncertainty_threshold
double uncertainty_threshold
Definition
MetatomicEngineLoader.h:15
MetatomicEngineOptions::check_consistency
bool check_consistency
Definition
MetatomicEngineLoader.h:14
MetatomicEngineOptions::length_unit
std::string length_unit
Definition
MetatomicEngineLoader.h:12
MetatomicEngineOptions::extensions_directory
std::string extensions_directory
Definition
MetatomicEngineLoader.h:13
MetatomicEngineOptions::device
std::string device
Definition
MetatomicEngineLoader.h:11
MetatomicEngineOptions::torch_determinism_strict
bool torch_determinism_strict
Definition
MetatomicEngineLoader.h:17
MetatomicEngineOptions::engine_path
std::string engine_path
Definition
MetatomicEngineLoader.h:16
MetatomicEngineOptions::model_path
std::string model_path
Definition
MetatomicEngineLoader.h:10
RgpotMtaConfig
Flat config (subset of MetatomicConfig).
Definition
metatomic_c_abi.h:29
RgpotMtaPot
Definition
MetatomicEngineAbi.cpp:17
include
eon
potentials
Rgpot
MetatomicEngineLoader.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf