19 #ifndef ERKALE_LOCALIZATION
20 #define ERKALE_LOCALIZATION
25 #include "hirshfeld.h"
26 #include "badergrid.h"
105 enum locmet parse_locmet(
const std::string & met);
145 Boys(
const BasisSet & basis,
const arma::mat & C,
int n,
bool verbose=
true,
bool delocalize=
false);
157 arma::cx_mat
cost_der(
const arma::cx_mat &
W);
159 void cost_func_der(
const arma::cx_mat &
W,
double &
f, arma::cx_mat & der);
172 std::vector< std::vector<arma::mat> >
rr;
180 FMLoc(
const BasisSet & basis,
const arma::mat & C,
int n,
bool verbose=
true,
bool delocalize=
false);
192 arma::cx_mat
cost_der(
const arma::cx_mat &
W);
194 void cost_func_der(
const arma::cx_mat &
W,
double &
f, arma::cx_mat & der);
200 #define PIPEK_FILEMODE arma::arma_binary
224 std::vector< std::vector<GaussianShell> >
shells;
236 Pipek(
enum chgmet
chg,
const BasisSet & basis,
const arma::mat &
C,
const arma::mat & P,
double p=2.0,
bool verbose=
true,
bool delocalize=
false);
248 arma::cx_mat
cost_der(
const arma::cx_mat &
W);
250 void cost_func_der(
const arma::cx_mat &
W,
double &
f, arma::cx_mat & der);
272 Edmiston(
const BasisSet & basis,
const arma::mat &
C,
bool delocalize=
false,
double thr=1e-5);
278 void setW(
const arma::cx_mat &
W);
283 arma::cx_mat
cost_der(
const arma::cx_mat &
W);
285 void cost_func_der(
const arma::cx_mat &
W,
double &
f, arma::cx_mat & der);
289 void analyze_orbitals(
const BasisSet & basis,
const arma::cx_mat & C);
292 double analyze_orbital(
const arma::mat & S,
const arma::cx_vec & C);
295 void orbital_localization(
enum locmet method,
const BasisSet & basis,
const arma::mat & C,
const arma::mat & P,
double & measure, arma::cx_mat & U,
bool verbose=
true,
bool real=
true,
int maxiter=50000,
double Gthr=1e-6,
double Fthr=1e-7,
enum unitmethod met=POLY_DF,
enum unitacc acc=CGPR,
bool delocalize=
false, std::string logfile=
"",
bool debug=
false);
arma::mat ry
r_y matrix
Definition: localization.h:139
int n
Penalty.
Definition: localization.h:132
bool use_chol
Use Cholesky?
Definition: localization.h:261
Boys * copy() const
Copy.
Definition: localization.cpp:464
double p
Penalty exponent, p=2 for conventional Pipek-Mezey.
Definition: localization.h:215
FMLoc(const BasisSet &basis, const arma::mat &C, int n, bool verbose=true, bool delocalize=false)
Constructor. n gives the penalty power to use.
Definition: localization.cpp:576
arma::cx_mat cost_der(const arma::cx_mat &W)
Evaluate derivative of cost function.
Definition: localization.cpp:739
Density fitting routines.
Definition: density_fitting.h:56
arma::cx_mat cost_der(const arma::cx_mat &W)
Evaluate derivative of cost function.
Definition: localization.cpp:1136
Edmiston * copy() const
Copy.
Definition: localization.cpp:1276
Cholesky decomposition of ERIs.
Definition: erichol.h:26
arma::cx_mat cost_der(const arma::cx_mat &W)
Evaluate derivative of cost function.
Definition: localization.cpp:522
DensityFit dfit
Density fitting object.
Definition: localization.h:256
Unitary function optimizer, used to hold values during the optimization.
Definition: unitary.h:62
void cost_func_der(const arma::cx_mat &W, double &f, arma::cx_mat &der)
Evaluate cost function and its derivative.
Definition: localization.cpp:570
std::vector< std::vector< size_t > > idx_iao
Indices of centers for IAO localization.
Definition: localization.h:229
Pipek * copy() const
Copy.
Definition: localization.cpp:1031
std::vector< arma::mat > Jorb
Orbital Coulomb matrices.
Definition: localization.h:266
Boys(const BasisSet &basis, const arma::mat &C, int n, bool verbose=true, bool delocalize=false)
Constructor. n gives the penalty power to use.
Definition: localization.cpp:432
arma::mat S
Overlap matrix for Mulliken.
Definition: localization.h:220
void set_n(int n)
Reset penalty.
Definition: localization.cpp:468
~Pipek()
Destructor.
Definition: localization.cpp:1028
arma::mat rsq
and the r^2 matrix
Definition: localization.h:174
std::vector< arma::mat > rrsq
rr^2 matrices
Definition: localization.h:170
Boys localization.
Definition: localization.h:130
enum chgmet chg
Method.
Definition: localization.h:210
~Edmiston()
Destructor.
Definition: localization.cpp:1273
std::vector< std::vector< GaussianShell > > shells
Shell list for Löwdin and Mulliken.
Definition: localization.h:224
arma::mat rx
r_x matrix
Definition: localization.h:137
void set_n(int n)
Reset penalty.
Definition: localization.cpp:656
Edmiston(const BasisSet &basis, const BasisSet &fitbas, const arma::mat &C, bool delocalize=false)
Constructor: density fitting.
Definition: localization.cpp:1250
Fourth moment localization.
Definition: localization.h:163
ERIchol chol
ERI Cholesky.
Definition: localization.h:258
Edmiston-Ruedenberg localization.
Definition: localization.h:254
double cost_func(const arma::cx_mat &W)
Evaluate cost function.
Definition: localization.cpp:476
void cost_func_der(const arma::cx_mat &W, double &f, arma::cx_mat &der)
Evaluate cost function and its derivative.
Definition: localization.cpp:1192
Basis set.
Definition: basis.h:187
arma::mat rz
r_z matrix
Definition: localization.h:141
arma::mat Sh
Half-overlap matrix for Löwdin.
Definition: localization.h:222
arma::mat get_charge(size_t i)
Get the charge matrix for the i:th region.
Definition: localization.cpp:1043
void cleanup_disk()
Clean up files on disk.
Definition: localization.cpp:1035
~FMLoc()
Destructor.
Definition: localization.cpp:649
Pipek-Mezey localization.
Definition: localization.h:203
std::vector< arma::mat > rmat
r matrices
Definition: localization.h:176
void cost_func_der(const arma::cx_mat &W, double &f, arma::cx_mat &der)
Evaluate cost function and its derivative.
Definition: localization.cpp:845
Pipek(enum chgmet chg, const BasisSet &basis, const arma::mat &C, const arma::mat &P, double p=2.0, bool verbose=true, bool delocalize=false)
Constructor.
Definition: localization.cpp:856
size_t N
Amount of charges.
Definition: localization.h:212
std::vector< std::vector< arma::mat > > rr
rr matrices
Definition: localization.h:172
arma::mat C_iao
Free-atom AOs for IAO localization.
Definition: localization.h:227
FMLoc * copy() const
Copy.
Definition: localization.cpp:652
arma::mat C
Orbitals.
Definition: localization.h:218
arma::mat rfour
r^4 contributions
Definition: localization.h:168
int n
Penalty.
Definition: localization.h:165
double cost_func(const arma::cx_mat &W)
Evaluate cost function.
Definition: localization.cpp:663
~Boys()
Destructor.
Definition: localization.cpp:461
double cost_func(const arma::cx_mat &W)
Evaluate cost function.
Definition: localization.cpp:1286
arma::cx_mat W
Present matrix.
Definition: unitary.h:65
arma::mat rsq
R^2 matrix.
Definition: localization.h:135
arma::cx_mat cost_der(const arma::cx_mat &W)
Evaluate derivative of cost function.
Definition: localization.cpp:1292
double f
Present value.
Definition: unitary.h:67
void setW(const arma::cx_mat &W)
Set transformation matrix.
Definition: localization.cpp:1280
void cost_func_der(const arma::cx_mat &W, double &f, arma::cx_mat &der)
Evaluate cost function and its derivative.
Definition: localization.cpp:1298
arma::mat C
Orbitals.
Definition: localization.h:264
double cost_func(const arma::cx_mat &W)
Evaluate cost function.
Definition: localization.cpp:1102