Loading...
Searching...
No Matches
BondBoost.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 "Matter.h"
14#include "Parameters.h"
15
16#include <vector>
17
18#include "Eigen.h"
19#include "EonLogger.h"
20
21namespace eonc {
22
25class BondBoost {
26
27public:
32 BondBoost(Matter *matt, const Parameters &params);
34
35 void initialize();
38 void advance();
41 double boost();
43 [[nodiscard]] long scheduleStep() const { return nReg; }
44
45private:
46 long rmdSteps() const;
47 Matrix<double, Eigen::Dynamic, 1> Rmdsteps();
48 long BondSelect();
49 double Booststeps();
50 long nAtoms{0};
52 nullptr};
55 std::vector<long> BAList;
56 std::vector<long> RAList;
57 std::vector<long> TABAList;
58 std::vector<long> BBAList;
59 std::vector<double> Epsr_Q;
60 Matrix<double, Eigen::Dynamic, 1>
61 TABLList; // EquilibriumTaggedAtomInvolvedBondLengthList;
62 Matrix<double, Eigen::Dynamic, 1> EBBLList; // EquilibriumBoostBondLengthList
63 Matrix<double, Eigen::Dynamic, 1> CBBLList; // CurrentBoostBondLengthList
64 long nBAs{0};
65 long nRAs{0};
66 long nTABs{0};
67 long nReg{0};
68 long nBBs{0};
70};
71
73public:
74 // static const string NONE;
75 // static const string BOND_BOOST;
76 static const char NONE[];
77 static const char BOND_BOOST[];
78};
79
80} // namespace eonc
81
82using eonc::BondBoost;
BondBoost(Matter *matt, const Parameters &params)
Constructor to be used when a structure is minimized.
Definition BondBoost.cpp:25
Functionality relying on the conjugate gradients algorithm.
Definition BondBoost.h:25
const Parameters & parameters
Reference to a structure outside the scope of the class containing runtime parameters.
Definition BondBoost.h:53
long BondSelect()
Select bonds within cutoff distance for boosting.
Matter * matter
Pointer to atom object outside the scope of the class.
Definition BondBoost.h:51
long nAtoms
Number of free coordinates.
Definition BondBoost.h:50
BondBoost(Matter *matt, const Parameters &params)
Constructor to be used when a structure is minimized.
Definition BondBoost.cpp:25
Matrix< double, Eigen::Dynamic, 1 > EBBLList
Definition BondBoost.h:62
double Booststeps()
Compute bias potential and forces for bond-boost hyperdynamics.
double boost()
Evaluate the current bias potential and write bias forces.
long scheduleStep() const
Equilibration counter (starts at 1). Used to test the per-step schedule.
Definition BondBoost.h:43
void advance()
Advance the equilibration / boost schedule by one MD step.
Definition BondBoost.cpp:92
eonc::log::Scoped log
Definition BondBoost.h:69
Matrix< double, Eigen::Dynamic, 1 > Rmdsteps()
Measure all tagged-atom bond lengths for the equilibration phase.
std::vector< long > BBAList
Definition BondBoost.h:58
Matrix< double, Eigen::Dynamic, 1 > TABLList
Definition BondBoost.h:61
std::vector< double > Epsr_Q
Definition BondBoost.h:59
std::vector< long > TABAList
Definition BondBoost.h:57
long rmdSteps() const
Definition BondBoost.cpp:87
std::vector< long > BAList
Definition BondBoost.h:55
Matrix< double, Eigen::Dynamic, 1 > CBBLList
Definition BondBoost.h:63
~BondBoost()
Destructor.
std::vector< long > RAList
Definition BondBoost.h:56
static const char NONE[]
Definition BondBoost.h:76
static const char BOND_BOOST[]
Definition BondBoost.h:77
RAII resource manager for the ARTn C library with global synchronization.
RAII helper for class-scoped logging.
Definition EonLogger.h:171