eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
Dimer.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
#include "
LowestEigenmode.h
"
14
#include "
Matter.h
"
15
#include "
Parameters.h
"
16
#include "
Potential.h
"
17
18
namespace
eonc
{
19
22
class
Dimer
:
public
LowestEigenmode
{
23
public
:
24
Dimer
(std::shared_ptr<Matter> matter,
const
Parameters
&
params
,
25
std::shared_ptr<Potential>
pot
);
26
~Dimer
() =
default
;
27
28
void
compute
(std::shared_ptr<Matter> matter,
AtomMatrix
initialDirection);
29
[[nodiscard]]
double
getEigenvalue
();
30
[[nodiscard]]
AtomMatrix
getEigenvector
();
31
32
private
:
33
eonc::log::FileScoped
log
{
"dimer"
,
"dimer.log"
};
34
std::shared_ptr<Matter>
matterCenter
;
35
std::shared_ptr<Matter>
matterDimer
;
36
AtomMatrix
direction
;
37
AtomMatrix
rotationalPlane
;
38
double
eigenvalue
{0.0};
39
long
nAtoms
{0};
40
42
void
determineRotationalPlane
(
const
AtomMatrix
&rotationalForce,
43
AtomMatrix
&rotationalForceOld,
44
const
AtomMatrix
&rotationalPlaneOld,
45
double
&lengthRotationalForceOld);
46
48
void
rotate
(
double
rotationAngle);
49
51
double
calcRotationalForceReturnCurvature
(
AtomMatrix
&rotationalForce);
52
};
53
54
}
// namespace eonc
55
56
using
eonc::Dimer
;
AtomMatrix
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition
Eigen.h:37
LowestEigenmode.h
Matter.h
Parameters.h
Potential.h
Dimer::Dimer
Dimer(std::shared_ptr< Matter > matter, const Parameters ¶ms, std::shared_ptr< Potential > pot)
Definition
Dimer.cpp:23
eonc::Dimer
Classic dimer method to find the lowest curvature mode.
Definition
Dimer.h:22
eonc::Dimer::~Dimer
~Dimer()=default
eonc::Dimer::direction
AtomMatrix direction
Definition
Dimer.h:36
eonc::Dimer::rotationalPlane
AtomMatrix rotationalPlane
Definition
Dimer.h:37
eonc::Dimer::matterDimer
std::shared_ptr< Matter > matterDimer
Definition
Dimer.h:35
eonc::Dimer::nAtoms
long nAtoms
Definition
Dimer.h:39
eonc::Dimer::getEigenvalue
double getEigenvalue()
Definition
Dimer.cpp:146
eonc::Dimer::Dimer
Dimer(std::shared_ptr< Matter > matter, const Parameters ¶ms, std::shared_ptr< Potential > pot)
Definition
Dimer.cpp:23
eonc::Dimer::matterCenter
std::shared_ptr< Matter > matterCenter
Definition
Dimer.h:34
eonc::Dimer::eigenvalue
double eigenvalue
Definition
Dimer.h:38
eonc::Dimer::getEigenvector
AtomMatrix getEigenvector()
Definition
Dimer.cpp:148
eonc::Dimer::calcRotationalForceReturnCurvature
double calcRotationalForceReturnCurvature(AtomMatrix &rotationalForce)
Compute rotational force and return curvature along the dimer.
Definition
Dimer.cpp:150
eonc::Dimer::rotate
void rotate(double rotationAngle)
Rotate the dimer by the given angle (radians).
Definition
Dimer.cpp:259
eonc::Dimer::compute
void compute(std::shared_ptr< Matter > matter, AtomMatrix initialDirection)
Definition
Dimer.cpp:43
eonc::Dimer::log
eonc::log::FileScoped log
Definition
Dimer.h:33
eonc::Dimer::determineRotationalPlane
void determineRotationalPlane(const AtomMatrix &rotationalForce, AtomMatrix &rotationalForceOld, const AtomMatrix &rotationalPlaneOld, double &lengthRotationalForceOld)
Determine rotational plane via conjugate gradient.
Definition
Dimer.cpp:232
eonc::LowestEigenmode::params
const Parameters & params
Definition
LowestEigenmode.h:28
eonc::LowestEigenmode::pot
std::shared_ptr< Potential > pot
Definition
LowestEigenmode.h:27
eonc::LowestEigenmode::LowestEigenmode
LowestEigenmode(std::shared_ptr< Potential > potPassed, const Parameters ¶meters)
Definition
LowestEigenmode.h:42
eonc::Parameters
Definition
Parameters.h:28
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:19
eonc::log::FileScoped
RAII helper for file-based logging in a class.
Definition
EonLogger.h:208
include
eon
Dimer.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf