eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
FIRE.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 "
Optimizer.h
"
15
#include "
Parameters.h
"
16
17
namespace
eonc
{
18
19
class
FIRE
:
public
Optimizer
{
20
21
public
:
22
FIRE
(std::shared_ptr<ObjectiveFunction> a_objf,
const
Parameters
&a_params)
23
:
Optimizer
(a_objf,
OptType
::
FIRE
,
OptimizerConfig
::fromParams(a_params)),
24
m_dt
{a_params.optimizer_options.time_step},
25
m_dt_max
{a_params.optimizer_options.max_time_step},
26
m_max_move
{a_params.optimizer_options.max_move},
27
m_N_min
{5},
28
m_N
{0},
29
m_vel
{Eigen::VectorXd::Zero(a_objf->degreesOfFreedom())},
30
m_alpha_start
{0.1},
31
m_alpha
{
m_alpha_start
},
32
m_f_inc
{1.1},
33
m_f_dec
{0.5},
34
m_f_a
{0.99},
35
m_iteration
{0} {}
36
virtual
~FIRE
() =
default
;
37
38
int
step
(
double
a_maxMove)
override
;
39
int
run
(
size_t
a_maxIterations,
double
a_maxMove)
override
;
40
41
private
:
42
double
m_dt
,
m_dt_max
,
m_max_move
;
43
size_t
m_N_min
,
m_N
;
44
Eigen::VectorXd
m_vel
;
45
double
m_alpha_start
;
46
double
m_alpha
;
47
double
m_f_inc
;
48
double
m_f_dec
;
49
double
m_f_a
;
50
size_t
m_iteration
;
51
eonc::log::FileScoped
m_log
{
"fire"
,
"_fire.log"
};
52
};
53
54
}
// namespace eonc
55
56
using
eonc::FIRE
;
EonLogger.h
Optimizer.h
The optimizer class is used to serve as an abstract class for all optimizers, as well as to call an o...
Parameters.h
eonc::FIRE
Definition
FIRE.h:19
eonc::FIRE::step
int step(double a_maxMove) override
Definition
FIRE.cpp:19
eonc::FIRE::m_vel
Eigen::VectorXd m_vel
Definition
FIRE.h:44
eonc::FIRE::m_dt_max
double m_dt_max
Definition
FIRE.h:42
eonc::FIRE::m_f_inc
double m_f_inc
Definition
FIRE.h:47
eonc::FIRE::m_N_min
size_t m_N_min
Definition
FIRE.h:43
eonc::FIRE::m_alpha_start
double m_alpha_start
Definition
FIRE.h:45
eonc::FIRE::m_f_a
double m_f_a
Definition
FIRE.h:49
eonc::FIRE::run
int run(size_t a_maxIterations, double a_maxMove) override
Definition
FIRE.cpp:70
eonc::FIRE::m_max_move
double m_max_move
Definition
FIRE.h:42
eonc::FIRE::m_log
eonc::log::FileScoped m_log
Definition
FIRE.h:51
eonc::FIRE::m_iteration
size_t m_iteration
Definition
FIRE.h:50
eonc::FIRE::FIRE
FIRE(std::shared_ptr< ObjectiveFunction > a_objf, const Parameters &a_params)
Definition
FIRE.h:22
eonc::FIRE::m_N
size_t m_N
Definition
FIRE.h:43
eonc::FIRE::m_alpha
double m_alpha
Definition
FIRE.h:46
eonc::FIRE::m_f_dec
double m_f_dec
Definition
FIRE.h:48
eonc::FIRE::m_dt
double m_dt
Definition
FIRE.h:42
eonc::FIRE::~FIRE
virtual ~FIRE()=default
eonc::Optimizer::Optimizer
Optimizer(std::shared_ptr< ObjectiveFunction > a_objf, const OptimizerConfig &a_config)
Definition
Optimizer.h:71
eonc::Parameters
Definition
Parameters.h:28
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:19
eonc::OptType
OptType
Definition
BaseStructures.h:98
eonc::OptimizerConfig
Declaration of the optimizer class.
Definition
Optimizer.h:51
eonc::log::FileScoped
RAII helper for file-based logging in a class.
Definition
EonLogger.h:208
include
eon
FIRE.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf