eOn client
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
Quickmin.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
15
#include "
Matter.h
"
16
#include "
Optimizer.h
"
17
#include "
Parameters.h
"
18
19
namespace
eonc
{
20
21
// when changing away from final, remember to mark the destructor as virtual
22
class
Quickmin
final :
public
Optimizer
{
23
24
public
:
25
Quickmin
(std::shared_ptr<ObjectiveFunction> a_objf,
26
const
Parameters
&a_params)
27
:
Optimizer
(a_objf,
OptType
::
QM
, a_params),
28
m_dt
{a_params.optimizer_options.time_step},
29
m_dt_max
{a_params.optimizer_options.max_time_step},
30
m_max_move
{a_params.optimizer_options.max_move},
31
m_vel
{Eigen::VectorXd::Zero(a_objf->degreesOfFreedom())},
32
m_iteration
{0},
33
m_max_iter
{a_params.optimizer_options.max_iterations} {}
34
~Quickmin
() =
default
;
35
36
int
step
(
double
a_maxMove)
override
;
37
int
run
(
size_t
a_maxIterations,
double
a_maxMove)
override
;
38
39
private
:
40
double
m_dt
,
m_dt_max
,
m_max_move
;
41
Eigen::VectorXd
m_vel
;
42
size_t
m_iteration
,
m_max_iter
;
43
eonc::log::FileScoped
m_log
{
"quickmin"
,
"_quickmin.log"
};
44
};
45
46
}
// namespace eonc
47
48
using
eonc::Quickmin
;
EonLogger.h
Matter.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::Optimizer::Optimizer
Optimizer(std::shared_ptr< ObjectiveFunction > a_objf, const OptimizerConfig &a_config)
Definition
Optimizer.h:71
eonc::Parameters
Definition
Parameters.h:28
eonc::Quickmin
Definition
Quickmin.h:22
eonc::Quickmin::Quickmin
Quickmin(std::shared_ptr< ObjectiveFunction > a_objf, const Parameters &a_params)
Definition
Quickmin.h:25
eonc::Quickmin::m_dt
double m_dt
Definition
Quickmin.h:40
eonc::Quickmin::m_vel
Eigen::VectorXd m_vel
Definition
Quickmin.h:41
eonc::Quickmin::m_log
eonc::log::FileScoped m_log
Definition
Quickmin.h:43
eonc::Quickmin::m_max_iter
size_t m_max_iter
Definition
Quickmin.h:42
eonc::Quickmin::step
int step(double a_maxMove) override
Definition
Quickmin.cpp:15
eonc::Quickmin::m_iteration
size_t m_iteration
Definition
Quickmin.h:42
eonc::Quickmin::~Quickmin
~Quickmin()=default
eonc::Quickmin::run
int run(size_t a_maxIterations, double a_maxMove) override
Definition
Quickmin.cpp:38
eonc::Quickmin::m_dt_max
double m_dt_max
Definition
Quickmin.h:40
eonc::Quickmin::m_max_move
double m_max_move
Definition
Quickmin.h:40
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:19
eonc::OptType
OptType
Definition
BaseStructures.h:98
eonc::OptType::QM
@ QM
Definition
BaseStructures.h:102
eonc::log::FileScoped
RAII helper for file-based logging in a class.
Definition
EonLogger.h:208
include
eon
Quickmin.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf