eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
NEBProjection.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
14
#include "
Eigen.h
"
15
#include "
NEBSpringForce.h
"
16
#include "
Parameters.h
"
17
#include <variant>
18
19
namespace
eonc::neb
{
20
22
struct
ImageForceData
{
23
const
AtomMatrix
&
force
;
24
const
AtomMatrix
&
tangent
;
25
const
SpringResult
&
springResult
;
26
long
nFreeAtoms
;
27
long
nAtoms
;
28
};
29
32
struct
PlainEB
{
33
AtomMatrix
project
(
const
ImageForceData
&d)
const
;
34
};
35
38
struct
NEB_Projection
{
39
AtomMatrix
project
(
const
ImageForceData
&d)
const
;
40
};
41
45
struct
DNEB_Projection
{
46
AtomMatrix
project
(
const
ImageForceData
&d)
const
;
47
};
48
49
using
ProjectionStrategy
=
50
std::variant<PlainEB, NEB_Projection, DNEB_Projection>;
51
55
ProjectionStrategy
buildProjectionStrategy
(
const
Parameters
¶ms);
56
59
AtomMatrix
computeDNEBComponent
(
const
AtomMatrix
&forceSpring,
60
const
AtomMatrix
&tangent,
61
const
AtomMatrix
&
forcePerp
);
62
63
}
// namespace eonc::neb
Eigen.h
AtomMatrix
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition
Eigen.h:37
NEBSpringForce.h
Parameters.h
eonc::Parameters
Definition
Parameters.h:28
eonc::neb
Definition
NEBForceProjection.cpp:18
eonc::neb::buildProjectionStrategy
ProjectionStrategy buildProjectionStrategy(const Parameters ¶ms)
Build the projection strategy from parameters.
Definition
NEBProjection.cpp:33
eonc::neb::ProjectionStrategy
std::variant< PlainEB, NEB_Projection, DNEB_Projection > ProjectionStrategy
Definition
NEBProjection.h:49
eonc::neb::computeDNEBComponent
AtomMatrix computeDNEBComponent(const AtomMatrix &forceSpring, const AtomMatrix &tangent, const AtomMatrix &fPerp)
Compute the DNEB force component for a given image.
Definition
NEBProjection.cpp:47
eonc::neb::forcePerp
AtomMatrix forcePerp(const AtomMatrix &force, const AtomMatrix &tangent)
Compute the perpendicular component of force relative to the tangent.
Definition
NEBForceProjection.cpp:69
eonc::neb::DNEB_Projection
Trygubenko & Wales, JCP 120:2082, 2004.
Definition
NEBProjection.h:45
eonc::neb::DNEB_Projection::project
AtomMatrix project(const ImageForceData &d) const
Definition
NEBProjection.cpp:26
eonc::neb::ImageForceData
Data for a single image needed by projection strategies.
Definition
NEBProjection.h:22
eonc::neb::ImageForceData::tangent
const AtomMatrix & tangent
Definition
NEBProjection.h:24
eonc::neb::ImageForceData::springResult
const SpringResult & springResult
Definition
NEBProjection.h:25
eonc::neb::ImageForceData::nAtoms
long nAtoms
Definition
NEBProjection.h:27
eonc::neb::ImageForceData::nFreeAtoms
long nFreeAtoms
Definition
NEBProjection.h:26
eonc::neb::ImageForceData::force
const AtomMatrix & force
Definition
NEBProjection.h:23
eonc::neb::NEB_Projection
Jonsson, Mills, Jacobsen 1998 (World Scientific).
Definition
NEBProjection.h:38
eonc::neb::NEB_Projection::project
AtomMatrix project(const ImageForceData &d) const
Definition
NEBProjection.cpp:21
eonc::neb::PlainEB
Mills, Jonsson, Schenter, Surf.
Definition
NEBProjection.h:32
eonc::neb::PlainEB::project
AtomMatrix project(const ImageForceData &d) const
Definition
NEBProjection.cpp:17
eonc::neb::SpringResult
Result of spring force computation for a single image.
Definition
NEBSpringForce.h:24
include
eon
NEBProjection.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf