eOn 3.2.0
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
XtsciOptimizer.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
14
#include "
eon/Optimizer.h
"
15
#include "
eon/XtsciEindir.h
"
16
17
struct
xts_solver_t;
18
19
namespace
eonc
{
20
23
class
XtsciOptimizer
final :
public
Optimizer
{
24
public
:
25
XtsciOptimizer
(std::shared_ptr<ObjectiveFunction> a_objf,
26
const
Parameters
&a_params)
27
:
Optimizer
(a_objf,
OptType
::
XTSCI
,
28
OptimizerConfig
::fromParams(a_params)) {}
29
~XtsciOptimizer
()
override
;
30
31
XtsciOptimizer
(
const
XtsciOptimizer
&) =
delete
;
32
XtsciOptimizer
&
operator=
(
const
XtsciOptimizer
&) =
delete
;
33
34
int
step
(
double
a_maxMove)
override
;
35
int
run
(
size_t
a_maxIterations,
double
a_maxMove)
override
;
36
37
private
:
38
// Opaque xtsci session. L-BFGS pairs / NLCG directions live here.
39
xts_solver_t *
m_solver
{
nullptr
};
40
// Borrowed eindir objective. Null unless eindir-core is linked.
41
xtsci_eindir::State *
m_eindir
{
nullptr
};
42
// Last x passed to setPositions. Persists across step() so eval
43
// at the accepted point does not dirty Matter.
44
Eigen::VectorXd
m_cached_x
;
45
// Solver state. write_report updates this in place. Do not refresh
46
// from Matter::getPositions: PBC wrap would break last-x reuse.
47
Eigen::VectorXd
m_x
;
48
49
void
ensureSolver
(
double
a_maxMove);
50
};
51
52
}
// namespace eonc
53
54
using
eonc::XtsciOptimizer
;
Optimizer.h
The optimizer class is used to serve as an abstract class for all optimizers, as well as to call an o...
XtsciEindir.h
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::XtsciOptimizer
xtsci-optimize backend.
Definition
XtsciOptimizer.h:23
eonc::XtsciOptimizer::run
int run(size_t a_maxIterations, double a_maxMove) override
Definition
XtsciOptimizer.cpp:420
eonc::XtsciOptimizer::ensureSolver
void ensureSolver(double a_maxMove)
Definition
XtsciOptimizer.cpp:258
eonc::XtsciOptimizer::~XtsciOptimizer
~XtsciOptimizer() override
Definition
XtsciOptimizer.cpp:252
eonc::XtsciOptimizer::m_cached_x
Eigen::VectorXd m_cached_x
Definition
XtsciOptimizer.h:44
eonc::XtsciOptimizer::XtsciOptimizer
XtsciOptimizer(std::shared_ptr< ObjectiveFunction > a_objf, const Parameters &a_params)
Definition
XtsciOptimizer.h:25
eonc::XtsciOptimizer::operator=
XtsciOptimizer & operator=(const XtsciOptimizer &)=delete
eonc::XtsciOptimizer::m_solver
xts_solver_t * m_solver
Definition
XtsciOptimizer.h:39
eonc::XtsciOptimizer::m_x
Eigen::VectorXd m_x
Definition
XtsciOptimizer.h:47
eonc::XtsciOptimizer::step
int step(double a_maxMove) override
Definition
XtsciOptimizer.cpp:369
eonc::XtsciOptimizer::XtsciOptimizer
XtsciOptimizer(const XtsciOptimizer &)=delete
eonc::XtsciOptimizer::m_eindir
xtsci_eindir::State * m_eindir
Definition
XtsciOptimizer.h:41
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:23
eonc::OptType
OptType
Definition
BaseStructures.h:103
eonc::OptType::XTSCI
@ XTSCI
Definition
BaseStructures.h:112
eonc::OptimizerConfig
Declaration of the optimizer class.
Definition
Optimizer.h:51
include
eon
XtsciOptimizer.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf