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
23namespace eonc {
24
25// dimer method to find the lowest curvature mode
27
28public:
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, AtomMatrix initialDirection);
38 double getEigenvalue();
40
41private:
42 std::shared_ptr<Matter> matterCenter; // initial center of the dimer
43 AtomMatrix direction; // direction along the dimer
44 AtomMatrix rotationalPlane; // direction normal to the plane of dimer rotation
45
46 gpr::InputParameters p;
47 atmd::AtomicDimer atomic_dimer;
48 aux::ProblemSetUp problem_setup;
49 gpr::AtomsConfiguration atoms_config;
51 gpr::Coord orient_init, R_init;
52};
53
54} // namespace eonc
55
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
AtomicGPDimer(std::shared_ptr< Matter > matter, const Parameters &params, std::shared_ptr< Potential > pot)
gpr::AtomsConfiguration atoms_config
AtomMatrix rotationalPlane
gpr::Observation init_observations
static const char OPT_LBFGS[]
std::shared_ptr< Matter > matterCenter
gpr::InputParameters p
~AtomicGPDimer()=default
AtomMatrix getEigenvector()
static const char OPT_SCG[]
gpr::Observation init_middle_point
void compute(std::shared_ptr< Matter > matter, AtomMatrix initialDirection)
atmd::AtomicDimer atomic_dimer
AtomicGPDimer(std::shared_ptr< Matter > matter, const Parameters &params, std::shared_ptr< Potential > pot)
aux::ProblemSetUp problem_setup
const Parameters & params
std::shared_ptr< Potential > pot
LowestEigenmode(std::shared_ptr< Potential > potPassed, const Parameters &parameters)
RAII resource manager for the ARTn C library with global synchronization.