eOn 3.2.0
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
MetatomicDynPot.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
** Thin host-side Potential: all torch/metatomic work happens in
7
** libmetatomic_pot.so via C ABI (dlopen).
8
*/
9
#pragma once
10
11
#include "
eon/Potential.h
"
12
#include "
eon/potentials/Metatomic/metatomic_c_abi.h
"
13
14
namespace
eonc
{
15
16
class
IMetatomicLoader
;
17
18
class
MetatomicDynPot
:
public
eonc::Potential
{
19
public
:
21
explicit
MetatomicDynPot
(
const
eonc::Parameters
¶ms);
23
MetatomicDynPot
(
const
eonc::Parameters
¶ms,
IMetatomicLoader
&loader);
24
~MetatomicDynPot
()
override
;
25
26
void
force
(
long
nAtoms,
const
double
*positions,
const
int
*atomicNrs,
27
double
*forces,
double
*energy,
double
*variance,
28
const
double
*box)
override
;
29
30
[[nodiscard]]
bool
isThreadSafe
() const noexcept
override
{
return
false
; }
31
[[nodiscard]]
bool
needsPerImageInstance
() const noexcept
override
{
32
return
false
;
33
}
34
35
private
:
36
IMetatomicLoader
&
loader_
;
37
EonMtaPot
*
m_handle
{
nullptr
};
38
};
39
40
}
// namespace eonc
metatomic_c_abi.h
Potential.h
eonc::IMetatomicLoader
Definition
MetatomicLoader.h:21
eonc::MetatomicDynPot::force
void force(long nAtoms, const double *positions, const int *atomicNrs, double *forces, double *energy, double *variance, const double *box) override
Definition
MetatomicDynPot.cpp:64
eonc::MetatomicDynPot::~MetatomicDynPot
~MetatomicDynPot() override
Definition
MetatomicDynPot.cpp:57
eonc::MetatomicDynPot::needsPerImageInstance
bool needsPerImageInstance() const noexcept override
Whether NEB should create separate Potential instances per image for true parallel force evaluation.
Definition
MetatomicDynPot.h:31
eonc::MetatomicDynPot::loader_
IMetatomicLoader & loader_
Definition
MetatomicDynPot.h:36
eonc::MetatomicDynPot::isThreadSafe
bool isThreadSafe() const noexcept override
Whether this potential's force() can be called from multiple threads on the SAME instance.
Definition
MetatomicDynPot.h:30
eonc::MetatomicDynPot::MetatomicDynPot
MetatomicDynPot(const eonc::Parameters ¶ms)
Production: process-default MetatomicLoader::instance().
Definition
MetatomicDynPot.cpp:40
eonc::MetatomicDynPot::m_handle
EonMtaPot * m_handle
Definition
MetatomicDynPot.h:37
eonc::Parameters
Definition
Parameters.h:35
eonc::Potential
Definition
Potential.h:42
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:23
EonMtaPot
Definition
MetatomicCAbi.cpp:19
include
eon
potentials
Metatomic
MetatomicDynPot.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf