eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
OHTSTJob.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 "
eon/Eigen.h
"
14
#include "
eon/Job.h
"
15
#include "
eon/Matter.h
"
16
#include "
eon/Parameters.h
"
17
18
namespace
eonc
{
19
40
class
OHTSTJob
:
public
Job
{
41
42
public
:
43
OHTSTJob
(std::unique_ptr<Parameters> parameters)
44
:
Job
(std::move(parameters)) {}
45
~OHTSTJob
(
void
) =
default
;
46
std::vector<std::string>
run
(
void
);
47
48
private
:
51
struct
PlaneAverages
{
52
double
fn
{0.0};
53
VectorXd
rotNorm
;
54
VectorXd
rotRaw
;
55
VectorXd
pos
;
56
};
57
58
PlaneAverages
samplePlane
(
Matter
&matter,
const
VectorXd &gamma,
59
const
VectorXd &normal);
60
63
double
reactantQRatio
(
Matter
&matter,
const
VectorXd &gammaR,
64
const
VectorXd &normal);
65
68
void
drawThermalVelocities
(VectorXd &vel,
const
VectorXd *normal);
69
75
bool
symmetryReflect
(
const
VectorXd &xR, VectorXd &x, VectorXd &v,
76
const
VectorXd &xOld,
const
VectorXd *normal);
77
78
std::vector<VectorXd>
m_symDirs
;
79
VectorXd
m_symXR
;
80
81
VectorXd
m_masses3N
;
82
double
m_dt
{0.0};
83
double
m_kbt
{0.0};
84
double
m_andersenProb
{0.0};
85
long
m_seedState
{12345};
86
double
uniformDraw
();
87
double
gaussDraw
();
88
bool
m_gaussHave
{
false
};
89
double
m_gaussSpare
{0.0};
90
};
91
92
}
// namespace eonc
93
94
using
eonc::OHTSTJob
;
Eigen.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
Parameters.h
eonc::Job::Job
Job(std::unique_ptr< Parameters > parameters)
Definition
Job.h:58
eonc::Matter
Definition
Matter.h:92
eonc::OHTSTJob
Definition
OHTSTJob.h:40
eonc::OHTSTJob::reactantQRatio
double reactantQRatio(Matter &matter, const VectorXd &gammaR, const VectorXd &normal)
Definition
OHTSTJob.cpp:221
eonc::OHTSTJob::m_andersenProb
double m_andersenProb
per-step Andersen collision probability
Definition
OHTSTJob.h:84
eonc::OHTSTJob::drawThermalVelocities
void drawThermalVelocities(VectorXd &vel, const VectorXd *normal)
Definition
OHTSTJob.cpp:71
eonc::OHTSTJob::samplePlane
PlaneAverages samplePlane(Matter &matter, const VectorXd &gamma, const VectorXd &normal)
Definition
OHTSTJob.cpp:125
eonc::OHTSTJob::m_masses3N
VectorXd m_masses3N
per-DOF masses of the free atoms (amu)
Definition
OHTSTJob.h:81
eonc::OHTSTJob::~OHTSTJob
~OHTSTJob(void)=default
eonc::OHTSTJob::OHTSTJob
OHTSTJob(std::unique_ptr< Parameters > parameters)
Definition
OHTSTJob.h:43
eonc::OHTSTJob::m_seedState
long m_seedState
LCG state for the thermostat draws.
Definition
OHTSTJob.h:85
eonc::OHTSTJob::uniformDraw
double uniformDraw()
uniform (0,1)
Definition
OHTSTJob.cpp:51
eonc::OHTSTJob::m_gaussSpare
double m_gaussSpare
Definition
OHTSTJob.h:89
eonc::OHTSTJob::gaussDraw
double gaussDraw()
standard normal (Box-Muller)
Definition
OHTSTJob.cpp:58
eonc::OHTSTJob::m_kbt
double m_kbt
k_B T (eV)
Definition
OHTSTJob.h:83
eonc::OHTSTJob::run
std::vector< std::string > run(void)
Virtual run; used solely for dynamic dispatch.
Definition
OHTSTJob.cpp:281
eonc::OHTSTJob::m_gaussHave
bool m_gaussHave
Definition
OHTSTJob.h:88
eonc::OHTSTJob::m_symDirs
std::vector< VectorXd > m_symDirs
p-hat_i, index 0 = primary
Definition
OHTSTJob.h:78
eonc::OHTSTJob::m_dt
double m_dt
integration step, internal units
Definition
OHTSTJob.h:82
eonc::OHTSTJob::m_symXR
VectorXd m_symXR
reactant anchor R of the half-lines
Definition
OHTSTJob.h:79
eonc::OHTSTJob::symmetryReflect
bool symmetryReflect(const VectorXd &xR, VectorXd &x, VectorXd &v, const VectorXd &xOld, const VectorXd *normal)
Definition
OHTSTJob.cpp:80
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:19
eonc::OHTSTJob::PlaneAverages
Definition
OHTSTJob.h:51
eonc::OHTSTJob::PlaneAverages::fn
double fn
<F.n>
Definition
OHTSTJob.h:52
eonc::OHTSTJob::PlaneAverages::pos
VectorXd pos
<r>, anchors Eq 18 and the Eq 12 restart
Definition
OHTSTJob.h:55
eonc::OHTSTJob::PlaneAverages::rotNorm
VectorXd rotNorm
<(n.F) R / (alpha |R|^2)>, drives rotation
Definition
OHTSTJob.h:53
eonc::OHTSTJob::PlaneAverages::rotRaw
VectorXd rotRaw
<(n.F) R>, integrand of Eq 19
Definition
OHTSTJob.h:54
include
eon
OHTSTJob.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf