Loading...
Searching...
No Matches
NEBProjection.cpp
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#include "eon/NEBProjection.h"
14
15namespace eonc::neb {
16
20
25
32
34 bool omActive = params.neb_options().spring.om.enabled;
35 bool weightedActive = params.neb_options().spring.weighting.enabled;
36
37 if (params.neb_options().spring.use_elastic_band && !omActive &&
38 !weightedActive) {
39 return PlainEB{};
40 }
41 if (params.neb_options().spring.doubly_nudged && !omActive &&
42 !weightedActive) {
44 }
45 return NEB_Projection{};
46}
47
49 const AtomMatrix &tangent,
50 const AtomMatrix &fPerp, bool useSwitching) {
51 return eonc::neb::computeDNEB(forceSpring, tangent, fPerp, useSwitching);
52}
53
54} // namespace eonc::neb
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
const neb_options_t & neb_options() const
AtomMatrix computeDNEB(const AtomMatrix &forceSpring, const AtomMatrix &tangent, const AtomMatrix &fPerp, bool useSwitching)
Compute the doubly-nudged elastic band perpendicular spring force.
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
struct eonc::neb_options_t::spring_options_t::energy_weighting_t weighting
struct eonc::neb_options_t::spring_options_t::onsager_machlup_t om
struct eonc::neb_options_t::spring_options_t spring