Loading...
Searching...
No Matches
Job.cpp
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#include "eon/Job.h"
13#include "eon/BasinHoppingJob.h"
14#include "eon/DynamicsJob.h"
17#include "eon/HessianJob.h"
18#include "eon/InstantonJob.h"
19#include "eon/JobRegistry.h"
20#include "eon/MinimizationJob.h"
21#include "eon/MonteCarloJob.h"
23#include "eon/OHTSTJob.h"
25#include "eon/Parameters.h"
26#include "eon/PointJob.h"
27#include "eon/PrefactorJob.h"
30#include "eon/SaddleSearchJob.h"
31#include "eon/SafeHyperJob.h"
33#include "eon/TADJob.h"
34#include "eon/TestJob.h"
35
36#include <memory>
37
38namespace eonc {
39// Referenced from makeJob so MSVC does not drop this TU from a static
40// eonclib (anonymous-namespace registrars would never run).
42} // namespace eonc
43
44#ifdef WITH_GP_SURROGATE
45#include "eon/GPSurrogateJob.h"
46#endif
47
48namespace {
49
50#define EON_REG_JOB(TYPE, CLS) \
51 const bool eon_reg_##CLS = [] { \
52 eonc::registerJob( \
53 eonc::JobType::TYPE, \
54 [](std::unique_ptr<eonc::Parameters> p, eonc::Runtime &rt) { \
55 return std::make_unique<eonc::CLS>(std::move(p), rt); \
56 }); \
57 return true; \
58 }()
59
60EON_REG_JOB(Process_Search, ProcessSearchJob);
61EON_REG_JOB(Saddle_Search, SaddleSearchJob);
62EON_REG_JOB(Minimization, MinimizationJob);
63EON_REG_JOB(Point, PointJob);
64EON_REG_JOB(Parallel_Replica, ParallelReplicaJob);
65EON_REG_JOB(Safe_Hyperdynamics, SafeHyperJob);
66EON_REG_JOB(TAD, TADJob);
67EON_REG_JOB(Replica_Exchange, ReplicaExchangeJob);
68EON_REG_JOB(Basin_Hopping, BasinHoppingJob);
69EON_REG_JOB(Hessian, HessianJob);
70EON_REG_JOB(Finite_Difference, FiniteDifferenceJob);
71EON_REG_JOB(Nudged_Elastic_Band, NudgedElasticBandJob);
72EON_REG_JOB(Dynamics, DynamicsJob);
73EON_REG_JOB(Prefactor, PrefactorJob);
74EON_REG_JOB(Global_Optimization, GlobalOptimizationJob);
75EON_REG_JOB(Structure_Comparison, StructureComparisonJob);
76EON_REG_JOB(Monte_Carlo, MonteCarloJob);
77#ifdef WITH_GP_SURROGATE
78EON_REG_JOB(GP_Surrogate, GPSurrogateJob);
79#endif
80EON_REG_JOB(OH_TST, OHTSTJob);
81EON_REG_JOB(Instanton, InstantonJob);
82EON_REG_JOB(Test, TestJob);
83
84#undef EON_REG_JOB
85
86} // namespace
#define EON_REG_JOB(TYPE, CLS)
Definition Job.cpp:50
The job class is used to serve as an abstract class for all jobs, as well as to call a job at runtime...
Optimized hyperplanar transition state theory (OH-TST).
Finds possible escape mecahnisms from a state.
Finds transition states by finding saddle points on the potential energy surface.
RAII resource manager for the ARTn C library with global synchronization.
void forceJobRegistration()
Definition Job.cpp:41