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
19namespace eonc::neb {
20
29
32struct PlainEB {
33 AtomMatrix project(const ImageForceData &d) const;
34};
35
39 AtomMatrix project(const ImageForceData &d) const;
40};
41
46 bool use_switching{false};
47 AtomMatrix project(const ImageForceData &d) const;
48};
49
51 std::variant<PlainEB, NEB_Projection, DNEB_Projection>;
52
57
63 const AtomMatrix &tangent,
64 const AtomMatrix &forcePerp, bool useSwitching);
65
66} // namespace eonc::neb
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
AtomMatrix computeDNEBComponent(const AtomMatrix &forceSpring, const AtomMatrix &tangent, const AtomMatrix &fPerp, bool useSwitching)
Compute the DNEB force component for a given image.
ProjectionStrategy buildProjectionStrategy(const Parameters &params)
Build the projection strategy from parameters.
std::variant< PlainEB, NEB_Projection, DNEB_Projection > ProjectionStrategy
AtomMatrix forcePerp(const AtomMatrix &force, const AtomMatrix &tangent)
Compute the perpendicular component of force relative to the tangent.
Trygubenko & Wales, JCP 120:2082, 2004.
AtomMatrix project(const ImageForceData &d) const
Data for a single image needed by projection strategies.
const AtomMatrix & tangent
const SpringResult & springResult
const AtomMatrix & force
Jonsson, Mills, Jacobsen 1998 (World Scientific).
AtomMatrix project(const ImageForceData &d) const
Mills, Jonsson, Schenter, Surf.
AtomMatrix project(const ImageForceData &d) const
Result of spring force computation for a single image.