eOn 3.2.0
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
AtomicGPDimer.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 "
Eigen.h
"
14
#include "
LowestEigenmode.h
"
15
#include "
Matter.h
"
16
#include "
Parameters.h
"
17
#include <vector>
18
19
// Defined in the gpr_optim target
20
#include "subprojects/gpr_optim/gpr/AtomicDimer.h"
21
#include "subprojects/gpr_optim/gpr/auxiliary/ProblemSetUp.h"
22
23
namespace
eonc
{
24
25
// dimer method to find the lowest curvature mode
26
class
AtomicGPDimer
:
public
LowestEigenmode
{
27
28
public
:
29
// Optimization for the dimer
30
static
const
char
OPT_SCG
[];
31
static
const
char
OPT_LBFGS
[];
32
33
AtomicGPDimer
(std::shared_ptr<Matter> matter,
const
Parameters
&
params
,
34
std::shared_ptr<Potential>
pot
);
35
~AtomicGPDimer
() =
default
;
36
37
void
compute
(std::shared_ptr<Matter> matter,
38
AtomMatrix
initialDirection)
override
;
39
double
getEigenvalue
()
override
;
40
AtomMatrix
getEigenvector
()
override
;
41
42
// Cell forwarded to potential force calls. Zero unless Matter is periodic.
43
[[nodiscard]]
Matrix3d
forceBox
()
const
;
44
45
private
:
46
std::shared_ptr<Matter>
matterCenter
;
// initial center of the dimer
47
AtomMatrix
direction
;
// direction along the dimer
48
AtomMatrix
rotationalPlane
;
// direction normal to the plane of dimer rotation
49
50
gpr::InputParameters
p
;
51
atmd::AtomicDimer
atomic_dimer
;
52
aux::ProblemSetUp
problem_setup
;
53
gpr::AtomsConfiguration
atoms_config
;
54
gpr::Observation
init_observations
,
init_middle_point
;
55
gpr::Coord
orient_init
,
R_init
;
56
};
57
58
}
// namespace eonc
Eigen.h
Matrix3d
Eigen::Matrix< double, 3, 3, eOnStorageOrder > Matrix3d
Definition
Eigen.h:35
AtomMatrix
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition
Eigen.h:37
LowestEigenmode.h
Matter.h
Parameters.h
eonc::AtomicGPDimer::atoms_config
gpr::AtomsConfiguration atoms_config
Definition
AtomicGPDimer.h:53
eonc::AtomicGPDimer::rotationalPlane
AtomMatrix rotationalPlane
Definition
AtomicGPDimer.h:48
eonc::AtomicGPDimer::getEigenvalue
double getEigenvalue() override
Definition
AtomicGPDimer.cpp:119
eonc::AtomicGPDimer::init_observations
gpr::Observation init_observations
Definition
AtomicGPDimer.h:54
eonc::AtomicGPDimer::getEigenvector
AtomMatrix getEigenvector() override
Definition
AtomicGPDimer.cpp:123
eonc::AtomicGPDimer::orient_init
gpr::Coord orient_init
Definition
AtomicGPDimer.h:55
eonc::AtomicGPDimer::matterCenter
std::shared_ptr< Matter > matterCenter
Definition
AtomicGPDimer.h:46
eonc::AtomicGPDimer::OPT_SCG
static const char OPT_SCG[]
Definition
AtomicGPDimer.h:30
eonc::AtomicGPDimer::forceBox
Matrix3d forceBox() const
Definition
AtomicGPDimer.cpp:65
eonc::AtomicGPDimer::p
gpr::InputParameters p
Definition
AtomicGPDimer.h:50
eonc::AtomicGPDimer::~AtomicGPDimer
~AtomicGPDimer()=default
eonc::AtomicGPDimer::init_middle_point
gpr::Observation init_middle_point
Definition
AtomicGPDimer.h:54
eonc::AtomicGPDimer::R_init
gpr::Coord R_init
Definition
AtomicGPDimer.h:55
eonc::AtomicGPDimer::compute
void compute(std::shared_ptr< Matter > matter, AtomMatrix initialDirection) override
Definition
AtomicGPDimer.cpp:73
eonc::AtomicGPDimer::AtomicGPDimer
AtomicGPDimer(std::shared_ptr< Matter > matter, const Parameters ¶ms, std::shared_ptr< Potential > pot)
Definition
AtomicGPDimer.cpp:46
eonc::AtomicGPDimer::atomic_dimer
atmd::AtomicDimer atomic_dimer
Definition
AtomicGPDimer.h:51
eonc::AtomicGPDimer::OPT_LBFGS
static const char OPT_LBFGS[]
Definition
AtomicGPDimer.h:31
eonc::AtomicGPDimer::direction
AtomMatrix direction
Definition
AtomicGPDimer.h:47
eonc::AtomicGPDimer::problem_setup
aux::ProblemSetUp problem_setup
Definition
AtomicGPDimer.h:52
eonc::LowestEigenmode::params
const Parameters & params
Definition
LowestEigenmode.h:26
eonc::LowestEigenmode::pot
std::shared_ptr< Potential > pot
Definition
LowestEigenmode.h:25
eonc::LowestEigenmode::LowestEigenmode
LowestEigenmode(std::shared_ptr< Potential > potPassed, const Parameters ¶meters)
Definition
LowestEigenmode.h:40
eonc::Parameters
Definition
Parameters.h:35
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:23
include
eon
AtomicGPDimer.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf