eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
Optimizer.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/Optimizer.h
"
13
#include "
eon/BaseStructures.h
"
14
#include "
eon/ConjugateGradients.h
"
15
#include "
eon/FIRE.h
"
16
#include "
eon/LBFGS.h
"
17
#include "
eon/Quickmin.h
"
18
#include "
eon/SteepestDescent.h
"
19
20
namespace
eonc::helpers::create
{
21
std::unique_ptr<Optimizer>
mkOptim
(std::shared_ptr<ObjectiveFunction> a_objf,
22
OptType
a_otype,
23
const
Parameters
&a_params) {
24
switch
(a_otype) {
25
case
OptType::FIRE
: {
26
return
std::make_unique<FIRE>(a_objf, a_params);
27
}
28
case
OptType::QM
: {
29
return
std::make_unique<Quickmin>(a_objf, a_params);
30
}
31
case
OptType::CG
: {
32
return
std::make_unique<ConjugateGradients>(a_objf, a_params);
33
}
34
case
OptType::LBFGS
: {
35
return
std::make_unique<LBFGS>(a_objf, a_params);
36
}
37
case
OptType::SD
: {
38
return
std::make_unique<SteepestDescent>(a_objf, a_params);
39
}
40
case
OptType::None
: {
41
throw
std::runtime_error(
"[Optimizer] Cannot create None"
);
42
}
43
case
OptType::Unknown
: {
44
throw
std::runtime_error(
"[Optimizer] Cannot create Unknown"
);
45
}
46
default
: {
47
throw
std::runtime_error(
"Unsupported optimization type"
);
48
}
49
}
50
}
51
}
// namespace eonc::helpers::create
BaseStructures.h
ConjugateGradients.h
Direct optimization for energy minimization.
FIRE.h
LBFGS.h
Optimizer.h
The optimizer class is used to serve as an abstract class for all optimizers, as well as to call an o...
Quickmin.h
SteepestDescent.h
eonc::Parameters
Definition
Parameters.h:28
eonc::helpers::create
Definition
Optimizer.cpp:20
eonc::helpers::create::mkOptim
std::unique_ptr< Optimizer > mkOptim(std::shared_ptr< ObjectiveFunction > a_objf, OptType a_otype, const Parameters &a_params)
Definition
Optimizer.cpp:21
eonc::OptType
OptType
Definition
BaseStructures.h:98
eonc::OptType::LBFGS
@ LBFGS
Definition
BaseStructures.h:104
eonc::OptType::SD
@ SD
Definition
BaseStructures.h:106
eonc::OptType::CG
@ CG
Definition
BaseStructures.h:103
eonc::OptType::None
@ None
Definition
BaseStructures.h:101
eonc::OptType::Unknown
@ Unknown
Definition
BaseStructures.h:100
eonc::OptType::FIRE
@ FIRE
Definition
BaseStructures.h:105
eonc::OptType::QM
@ QM
Definition
BaseStructures.h:102
client
Optimizer.cpp
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf