eOn 3.2.0
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
final :
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},
m_N_min
{5},
m_N
{0},
27
m_vel
{Eigen::VectorXd::Zero(a_objf->degreesOfFreedom())},
28
m_alpha_start
{0.1},
m_alpha
{
m_alpha_start
},
m_f_inc
{1.1},
m_f_dec
{0.5},
29
m_f_a
{0.99},
m_iteration
{0} {}
30
~FIRE
() =
default
;
31
32
int
step
(
double
a_maxMove)
override
;
33
int
run
(
size_t
a_maxIterations,
double
a_maxMove)
override
;
34
35
private
:
36
double
m_dt
,
m_dt_max
,
m_max_move
;
37
size_t
m_N_min
,
m_N
;
38
Eigen::VectorXd
m_vel
;
39
double
m_alpha_start
;
40
double
m_alpha
;
41
double
m_f_inc
;
42
double
m_f_dec
;
43
double
m_f_a
;
44
size_t
m_iteration
;
45
eonc::log::FileScoped
m_log
{
"fire"
,
"_fire.log"
};
46
};
47
48
}
// namespace eonc
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::m_vel
Eigen::VectorXd m_vel
Definition
FIRE.h:38
eonc::FIRE::m_dt_max
double m_dt_max
Definition
FIRE.h:36
eonc::FIRE::m_f_inc
double m_f_inc
Definition
FIRE.h:41
eonc::FIRE::m_N_min
size_t m_N_min
Definition
FIRE.h:37
eonc::FIRE::m_alpha_start
double m_alpha_start
Definition
FIRE.h:39
eonc::FIRE::step
int step(double a_maxMove) override
Definition
FIRE.cpp:21
eonc::FIRE::m_f_a
double m_f_a
Definition
FIRE.h:43
eonc::FIRE::~FIRE
~FIRE()=default
eonc::FIRE::m_max_move
double m_max_move
Definition
FIRE.h:36
eonc::FIRE::m_log
eonc::log::FileScoped m_log
Definition
FIRE.h:45
eonc::FIRE::m_iteration
size_t m_iteration
Definition
FIRE.h:44
eonc::FIRE::run
int run(size_t a_maxIterations, double a_maxMove) override
Definition
FIRE.cpp:76
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:37
eonc::FIRE::m_alpha
double m_alpha
Definition
FIRE.h:40
eonc::FIRE::m_f_dec
double m_f_dec
Definition
FIRE.h:42
eonc::FIRE::m_dt
double m_dt
Definition
FIRE.h:36
eonc::Optimizer::Optimizer
Optimizer(std::shared_ptr< ObjectiveFunction > a_objf, const OptimizerConfig &a_config)
Definition
Optimizer.h:73
eonc::Parameters
Definition
Parameters.h:35
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:23
eonc::OptType
OptType
Definition
BaseStructures.h:103
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:207
include
eon
FIRE.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf