24 #include "../Atomicrex.h" 25 #include "Minimizer.h" 52 std::vector<double>&& x0,
53 const std::function<
double(
const std::vector<double>&)>& func,
54 const std::function<
double(
const std::vector<double>&, std::vector<double>&)>& gradient = std::function<
double(
const std::vector<double>&, std::vector<double>&)>())
override;
59 std::vector<BoundConstraints>&& constraintTypes,
60 std::vector<double>&& lowerBounds,
61 std::vector<double>&& upperBounds)
override;
64 virtual MinimizerResult
iterate()
override;
82 std::vector<BoundConstraints> _constraintTypes;
83 std::vector<double> _lowerBounds;
84 std::vector<double> _upperBounds;
86 std::vector<double> x;
87 std::vector<double> g;
90 std::vector<double> _bestParameters;
96 std::unique_ptr<nlopt::opt> opt;
100 std::shared_ptr<NloptMinimizer> _submin;
108 int nlopt_maxeval = -1;
109 double nlopt_stopval = -1;
110 double nlopt_maxtime = -1;
111 double nlopt_ftol_rel = -1;
112 double nlopt_ftol_abs = -1;
113 double nlopt_xtol_rel = -1;
114 unsigned long seed = 0;
virtual void setConstraints(std::vector< BoundConstraints > &&constraintTypes, std::vector< double > &&lowerBounds, std::vector< double > &&upperBounds) override
Definition: NloptMinimizer.cpp:84
FitJob * job() const
Returns the job to which this object belongs.
Definition: Minimizer.h:68
NloptMinimizer(FitJob *job)
Constructor.
Definition: NloptMinimizer.h:36
virtual MinimizerResult iterate() override
Performs one minimization iteration.
Definition: NloptMinimizer.cpp:214
virtual void prepare(std::vector< double > &&x0, const std::function< double(const std::vector< double > &)> &func, const std::function< double(const std::vector< double > &, std::vector< double > &)> &gradient=std::function< double(const std::vector< double > &, std::vector< double > &)>()) override
Definition: NloptMinimizer.cpp:42
const nlopt::opt * get_optimizer()
Returns the optimizer object.
Definition: NloptMinimizer.h:76
This file collects the definition of classes that define various simple crystal structures.
Definition: Atomicrex.h:67
std::string FPString
The default string type used throughout the code:
Definition: Atomicrex.h:70
Definition: XMLUtilities.h:69
double objective_function(const std::vector< double > &, std::vector< double > &)
The Objective function that gets passed to Nlopt.
Definition: NloptMinimizer.cpp:176
Abstract base class for minimization algorithms.
Definition: Minimizer.h:34
Definition: NloptMinimizer.h:31
nlopt::algorithm get_algorithm(FPString)
Get the Nlopt algorithm from a string.
Definition: NloptMinimizer.cpp:143
virtual void parse(XML::Element minimizerElement) override
Parses the minimizer's parameters from the XML file.
Definition: NloptMinimizer.cpp:104