eOn 3.2.0
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
ReplicaDynamicsJob.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 "
EonLogger.h
"
14
#include "
Job.h
"
15
#include "
Matter.h
"
16
17
#include <memory>
18
#include <string>
19
#include <vector>
20
21
namespace
eonc
{
22
29
class
ReplicaDynamicsJob
:
public
Job
{
30
public
:
31
using
Job::Job
;
32
~ReplicaDynamicsJob
()
override
=
default
;
33
std::vector<std::string>
run
()
override
;
36
std::shared_ptr<Matter>
runFromMatter
(std::shared_ptr<Matter> initial);
37
38
protected
:
39
// -- Shared matter objects --
40
std::shared_ptr<Matter>
current
;
41
std::shared_ptr<Matter>
reactant
;
42
std::shared_ptr<Matter>
saddle
;
43
std::shared_ptr<Matter>
product
;
44
std::shared_ptr<Matter>
finalState
;
// state at transition detection
45
std::shared_ptr<Matter>
finalStateTmp
;
// candidate before confirmation
46
47
// -- Flags --
48
bool
metaStateFlag
{
false
};
49
bool
newStateFlag
{
false
};
50
51
// -- Force call counters --
52
size_t
minimizeFCalls
{0};
53
size_t
mdFCalls
{0};
54
size_t
dephaseFCalls
{0};
55
size_t
refineFCalls
{0};
56
57
// -- Dynamics state --
58
long
transitionStep
{0};
59
double
time
{0.0};
60
double
minCorrectedTime
{1.0e200};
61
double
transitionTime
{0.0};
62
63
std::vector<std::string>
returnFiles
;
64
eonc::log::Scoped
log
;
65
66
// -- Shared methods --
67
70
bool
checkState
(
Matter
*
current
,
Matter
*
reactant
);
71
74
long
refine
(
const
std::vector<std::shared_ptr<Matter>> &buff,
75
Matter
*
reactant
);
76
78
void
dephase
();
79
81
struct
PrdClock
{
82
long
state_check
{1};
83
long
record
{1};
84
long
buffer
{1};
85
};
86
PrdClock
prdClock
()
const
;
87
89
void
saveData
(
int
status);
90
91
// -- Template method hooks --
92
94
virtual
void
initExtra
() {}
95
97
virtual
int
dynamics
() = 0;
98
100
virtual
void
reportResults
() {}
101
};
102
103
}
// namespace eonc
EonLogger.h
Job.h
The job class is used to serve as an abstract class for all jobs, as well as to call a job at runtime...
Matter.h
eonc::Job::Job
Job(std::unique_ptr< Parameters > parameters, Runtime &rt)
Borrow: caller keeps Runtime alive (CLI stack / Python Session).
Definition
Job.h:76
eonc::Matter
Definition
Matter.h:90
eonc::ReplicaDynamicsJob
Base class for replica dynamics jobs (TAD, SafeHyper).
Definition
ReplicaDynamicsJob.h:29
eonc::ReplicaDynamicsJob::Job
Job(std::unique_ptr< Parameters > parameters, Runtime &rt)
Borrow: caller keeps Runtime alive (CLI stack / Python Session).
Definition
Job.h:76
eonc::ReplicaDynamicsJob::returnFiles
std::vector< std::string > returnFiles
Definition
ReplicaDynamicsJob.h:63
eonc::ReplicaDynamicsJob::minCorrectedTime
double minCorrectedTime
Definition
ReplicaDynamicsJob.h:60
eonc::ReplicaDynamicsJob::run
std::vector< std::string > run() override
Virtual run; used solely for dynamic dispatch.
Definition
ReplicaDynamicsJob.cpp:24
eonc::ReplicaDynamicsJob::refine
long refine(const std::vector< std::shared_ptr< Matter > > &buff, Matter *reactant)
Binary search for the transition frame in a snapshot buffer.
Definition
ReplicaDynamicsJob.cpp:99
eonc::ReplicaDynamicsJob::prdClock
PrdClock prdClock() const
Definition
ReplicaDynamicsJob.cpp:76
eonc::ReplicaDynamicsJob::saddle
std::shared_ptr< Matter > saddle
Definition
ReplicaDynamicsJob.h:42
eonc::ReplicaDynamicsJob::minimizeFCalls
size_t minimizeFCalls
Definition
ReplicaDynamicsJob.h:52
eonc::ReplicaDynamicsJob::mdFCalls
size_t mdFCalls
Definition
ReplicaDynamicsJob.h:53
eonc::ReplicaDynamicsJob::product
std::shared_ptr< Matter > product
Definition
ReplicaDynamicsJob.h:43
eonc::ReplicaDynamicsJob::~ReplicaDynamicsJob
~ReplicaDynamicsJob() override=default
eonc::ReplicaDynamicsJob::log
eonc::log::Scoped log
Definition
ReplicaDynamicsJob.h:64
eonc::ReplicaDynamicsJob::saveData
void saveData(int status)
Write results.dat and structure con files.
Definition
ReplicaDynamicsJob.cpp:202
eonc::ReplicaDynamicsJob::dynamics
virtual int dynamics()=0
The accelerated dynamics loop. Returns status (1 = transition, 0 = none).
eonc::ReplicaDynamicsJob::metaStateFlag
bool metaStateFlag
Definition
ReplicaDynamicsJob.h:48
eonc::ReplicaDynamicsJob::finalState
std::shared_ptr< Matter > finalState
Definition
ReplicaDynamicsJob.h:44
eonc::ReplicaDynamicsJob::initExtra
virtual void initExtra()
Create any extra matter objects needed by the subclass.
Definition
ReplicaDynamicsJob.h:94
eonc::ReplicaDynamicsJob::reportResults
virtual void reportResults()
Post-dynamics logging (override for job-specific messages).
Definition
ReplicaDynamicsJob.h:100
eonc::ReplicaDynamicsJob::newStateFlag
bool newStateFlag
Definition
ReplicaDynamicsJob.h:49
eonc::ReplicaDynamicsJob::transitionStep
long transitionStep
Definition
ReplicaDynamicsJob.h:58
eonc::ReplicaDynamicsJob::reactant
std::shared_ptr< Matter > reactant
Definition
ReplicaDynamicsJob.h:41
eonc::ReplicaDynamicsJob::checkState
bool checkState(Matter *current, Matter *reactant)
Minimize a copy of current and compare to reactant.
Definition
ReplicaDynamicsJob.cpp:69
eonc::ReplicaDynamicsJob::dephaseFCalls
size_t dephaseFCalls
Definition
ReplicaDynamicsJob.h:54
eonc::ReplicaDynamicsJob::runFromMatter
std::shared_ptr< Matter > runFromMatter(std::shared_ptr< Matter > initial)
Matter-first entry: seed geometry, skip con2matter load.
Definition
ReplicaDynamicsJob.cpp:37
eonc::ReplicaDynamicsJob::current
std::shared_ptr< Matter > current
Definition
ReplicaDynamicsJob.h:40
eonc::ReplicaDynamicsJob::dephase
void dephase()
Dephase the trajectory to ensure thermal independence.
Definition
ReplicaDynamicsJob.cpp:130
eonc::ReplicaDynamicsJob::transitionTime
double transitionTime
Definition
ReplicaDynamicsJob.h:61
eonc::ReplicaDynamicsJob::finalStateTmp
std::shared_ptr< Matter > finalStateTmp
Definition
ReplicaDynamicsJob.h:45
eonc::ReplicaDynamicsJob::time
double time
Definition
ReplicaDynamicsJob.h:59
eonc::ReplicaDynamicsJob::refineFCalls
size_t refineFCalls
Definition
ReplicaDynamicsJob.h:55
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:23
eonc::ReplicaDynamicsJob::PrdClock
Clamped PRD clock: state_check, record, and buffer length are all >= 1.
Definition
ReplicaDynamicsJob.h:81
eonc::ReplicaDynamicsJob::PrdClock::record
long record
Definition
ReplicaDynamicsJob.h:83
eonc::ReplicaDynamicsJob::PrdClock::state_check
long state_check
Definition
ReplicaDynamicsJob.h:82
eonc::ReplicaDynamicsJob::PrdClock::buffer
long buffer
Definition
ReplicaDynamicsJob.h:84
eonc::log::Scoped
RAII helper for class-scoped logging.
Definition
EonLogger.h:171
include
eon
ReplicaDynamicsJob.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf