29 #include "../global.h"
30 #include "../basislibrary.h"
55 arma::vec
calcG(
const arma::vec & x,
bool check=
true);
57 arma::vec
calcG(
const arma::vec & x, arma::sword am,
bool check=
true);
59 arma::mat
calcH(
const arma::vec & x,
bool check=
true);
61 arma::mat
calcH(
const arma::vec & x, arma::sword am,
bool check=
true);
63 arma::vec
pad_vec(
const arma::vec & sd)
const;
65 arma::vec
pad_vec(
const arma::vec & sd, arma::sword am)
const;
82 void set_params(
const arma::ivec & am,
const arma::uvec &
nf,
const arma::uvec &
npar,
const arma::uvec &
optsh);
84 std::string
get_el()
const;
89 std::vector<arma::vec>
get_exps(
const arma::vec & x)
const;
95 virtual std::vector<double>
calcE(
const std::vector<BasisSetLibrary> & baslib)=0;
100 double optimize(arma::vec & x,
size_t maxiter,
double nrthr,
double gthr);
104 double optimize_full(arma::vec & x,
size_t maxiter,
double nrthr,
double gthr);
107 double scan(arma::vec & x,
double xmin,
double xmax,
double dx);
110 arma::uvec
sh_vec()
const;
114 arma::uvec
idx_vec(arma::sword am)
const;
116 void print_info(
const arma::vec & x,
const std::string & msg)
const;
virtual ~EnergyOptimizer()
Destructor.
Definition: energy-opt.cpp:41
Definition: energy-opt.h:36
bool init
Initialization mode? (Sloppier convergence)
Definition: energy-opt.h:73
arma::uvec nf
Amount of functions on the shells.
Definition: energy-opt.h:41
size_t ntr
Amount of consecutive trials.
Definition: energy-opt.h:52
std::vector< arma::vec > get_exps(const arma::vec &x) const
Get exponents.
Definition: energy-opt.cpp:83
virtual BasisSetLibrary form_basis(const arma::vec &x) const
Generate basis set.
Definition: energy-opt.cpp:426
arma::uvec sh_vec() const
Get optimized shell index vector.
Definition: energy-opt.cpp:127
Basis set library class.
Definition: basislibrary.h:231
bool verbose
Verbose operation?
Definition: energy-opt.h:71
std::string get_el() const
Get element.
Definition: energy-opt.cpp:75
void set_params(const arma::ivec &am, const arma::uvec &nf, const arma::uvec &npar, const arma::uvec &optsh)
Set parameters.
Definition: energy-opt.cpp:44
EnergyOptimizer(const std::string &el, bool verbose=true)
Constructor.
Definition: energy-opt.cpp:28
std::string el
Element to optimize.
Definition: energy-opt.h:68
void print_info(const arma::vec &x, const std::string &msg) const
Print parameter info.
Definition: energy-opt.cpp:971
arma::uvec npar
Amount of parameters.
Definition: energy-opt.h:43
double ls_h
Step size in line search.
Definition: energy-opt.h:50
arma::vec calcG(const arma::vec &x, bool check=true)
Calculate gradient. Check enables sanity checks.
Definition: energy-opt.cpp:253
arma::uvec idx_vec() const
Get parameter index vector.
Definition: energy-opt.cpp:166
arma::vec pad_vec(const arma::vec &sd) const
Pad vector to fit into x.
Definition: energy-opt.cpp:200
arma::ivec sham
Shell angular momentum.
Definition: energy-opt.h:39
arma::mat calcH(const arma::vec &x, bool check=true)
Calculate Hessian.
Definition: energy-opt.cpp:292
void toggle_init(bool init)
Initialize?
Definition: energy-opt.cpp:79
arma::uvec optsh
Optimize shell?
Definition: energy-opt.h:45
double optimize_full(arma::vec &x, size_t maxiter, double nrthr, double gthr)
Definition: energy-opt.cpp:701
virtual std::vector< double > calcE(const std::vector< BasisSetLibrary > &baslib)=0
Calculate energy for basis set.
double optimize(arma::vec &x, size_t maxiter, double nrthr, double gthr)
Definition: energy-opt.cpp:448
double scan(arma::vec &x, double xmin, double xmax, double dx)
Look for optimal polarization exponent.
Definition: energy-opt.cpp:921
double fd_h
Step size in finite difference gradient.
Definition: energy-opt.h:48