eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
ASE_ORCA.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
** Repo:
10
** https://github.com/TheochemUI/eOn
11
*/
12
#pragma once
13
#define PYBIND11_DETAILED_ERROR_MESSAGES
14
15
#include "
eon/Potential.h
"
16
17
#include <filesystem>
18
19
#include <pybind11/eigen.h>
20
#include <pybind11/embed.h>
21
#include <pybind11/pybind11.h>
22
23
namespace
py = pybind11;
24
using namespace
pybind11::literals;
// to bring in the `_a` literal
25
26
class
ASEOrcaPot
:
public
Potential
{
27
28
private
:
29
py::object
calc
;
30
py::object
ase
;
31
std::filesystem::path
workDir
;
32
size_t
counter
{0};
33
34
public
:
35
ASEOrcaPot
(
const
Parameters
&a_params);
36
virtual
~ASEOrcaPot
();
37
38
// Functions
39
void
force
(
long
nAtoms,
const
double
*R,
const
int
*atomicNrs,
double
*F,
40
double
*U,
double
*variance,
const
double
*box)
override
;
41
[[nodiscard]]
bool
isThreadSafe
() const noexcept
override
{
return
false
; }
43
[[nodiscard]]
bool
requiresIsolatedMoleculeLayout
() const noexcept
override
{
44
return
true
;
45
}
46
47
[[nodiscard]]
bool
needsPerImageInstance
() const noexcept
override
{
48
return
true
;
49
}
50
};
Potential.h
ASEOrcaPot::force
void force(long nAtoms, const double *R, const int *atomicNrs, double *F, double *U, double *variance, const double *box) override
Definition
ASE_ORCA.cpp:119
ASEOrcaPot::isThreadSafe
bool isThreadSafe() const noexcept override
Whether this potential's force() can be called from multiple threads on the SAME instance.
Definition
ASE_ORCA.h:41
ASEOrcaPot::~ASEOrcaPot
virtual ~ASEOrcaPot()
Definition
ASE_ORCA.cpp:110
ASEOrcaPot::ASEOrcaPot
ASEOrcaPot(const Parameters &a_params)
Definition
ASE_ORCA.cpp:61
ASEOrcaPot::requiresIsolatedMoleculeLayout
bool requiresIsolatedMoleculeLayout() const noexcept override
ORCA does not support PBC; non-centered PBC wraps tear molecules (#188).
Definition
ASE_ORCA.h:43
ASEOrcaPot::ase
py::object ase
Definition
ASE_ORCA.h:30
ASEOrcaPot::counter
size_t counter
Definition
ASE_ORCA.h:32
ASEOrcaPot::needsPerImageInstance
bool needsPerImageInstance() const noexcept override
ORCA runs as external subprocess; separate instances are independent.
Definition
ASE_ORCA.h:47
ASEOrcaPot::calc
py::object calc
Definition
ASE_ORCA.h:29
ASEOrcaPot::workDir
std::filesystem::path workDir
Definition
ASE_ORCA.h:31
eonc::Parameters
Definition
Parameters.h:28
eonc::Potential::Potential
Potential(PotType a_ptype)
Definition
Potential.h:35
include
eon
potentials
ASE_ORCA
ASE_ORCA.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf