Self-consistent field solver routines. More...
#include <scf.h>
Public Member Functions | |
SCF (const BasisSet &basis, const Settings &set, Checkpoint &chkpt) | |
Constructor. | |
void | RHF (rscf_t &sol, const std::vector< double > &occs, const convergence_t conv) |
Calculate restricted Hartree-Fock solution. | |
void | ROHF (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb, const convergence_t conv) |
Calculate restricted open-shell Hartree-Fock solution. | |
void | UHF (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb, const convergence_t conv) |
Calculate unrestricted Hartree-Fock solution. | |
void | RDFT (rscf_t &sol, const std::vector< double > &occs, const convergence_t conv, const dft_t dft) |
Calculate restricted density-functional theory solution. | |
void | UDFT (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb, const convergence_t conv, const dft_t dft) |
Calculate unrestricted density-functional theory solution. | |
void | Fock_RHF (rscf_t &sol, const std::vector< double > &occs) const |
Calculate restricted Hartree-Fock operator. | |
void | Fock_ROHF (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb) const |
Calculate restricted open-shell Hartree-Fock operator. | |
void | Fock_UHF (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb) const |
Calculate unrestricted Hartree-Fock operator. | |
void | Fock_RDFT (rscf_t &sol, const std::vector< double > &occs, const dft_t dft, DFTGrid &grid, DFTGrid &nlgrid) const |
Calculate restricted density-functional theory KS-Fock operator. | |
void | Fock_UDFT (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb, const dft_t dft, DFTGrid &grid, DFTGrid &nlgrid) const |
Calculate unrestricted density-functional theory KS-Fock operator. | |
void | PZSIC_Fock (std::vector< arma::cx_mat > &Forb, arma::vec &Eorb, const arma::cx_mat &C, dft_t dft, DFTGrid &grid, DFTGrid &nlgrid, bool fock) |
Helper for PZ-SIC: compute orbital-dependent Fock matrices. | |
arma::vec | force_RHF (rscf_t &sol, const std::vector< double > &occs, double tol) |
Calculate force in restricted Hartree-Fock. | |
arma::vec | force_ROHF (uscf_t &sol, int Nel_alpha, int Nel_beta, double tol) |
Calculate force in restricted open-shell Hartree-Fock. | |
arma::vec | force_UHF (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb, double tol) |
Calculate force in unrestricted Hartree-Fock. | |
arma::vec | force_RDFT (rscf_t &sol, const std::vector< double > &occs, const dft_t dft, DFTGrid &grid, DFTGrid &nlgrid, double tol) |
Calculate force in restricted density-functional theory. | |
arma::vec | force_UDFT (uscf_t &sol, const std::vector< double > &occa, const std::vector< double > &occb, const dft_t dft, DFTGrid &grid, DFTGrid &nlgrid, double tol) |
Calculate force in unrestricted density-functional theory. | |
void | set_frozen (const arma::mat &C, size_t ind) |
Set frozen orbitals in ind:th symmetry group. ind+1 is the resulting symmetry group, group 0 contains all non-frozen orbitals. | |
void | set_fitting (const BasisSet &fitbas) |
Set the density-fitting basis set. | |
void | set_verbose (bool verb) |
Set verbose setting. | |
bool | get_verbose () const |
Set verbose setting. | |
void | do_force (bool val) |
Toggle calculation of forces. | |
size_t | get_maxiter () const |
Get maximum iterations. | |
void | set_maxiter (size_t maxiter) |
Set maximum iterations. | |
arma::mat | get_S () const |
Get overlap matrix. | |
arma::mat | get_Sinvh () const |
Get half-inverse overlap matrix. | |
arma::mat | get_Hcore () const |
Get core Hamiltonian matrix. | |
Checkpoint * | get_checkpoint () const |
Get checkpoint file. | |
bool | get_strictint () const |
Using strict integrals? | |
void | fill_rs (double omega) |
Fill range-separated integrals. | |
void | core_guess (rscf_t &sol) const |
Do core guess. | |
void | core_guess (uscf_t &sol) const |
Do core guess. | |
void | gwh_guess (rscf_t &sol) const |
Do GWH guess. | |
void | gwh_guess (uscf_t &sol) const |
Do GWH guess. | |
arma::mat | exchange_localization (const arma::mat &Co, const arma::mat &Cv) const |
Exchange localization. | |
Protected Attributes | |
arma::mat | S |
Overlap matrix. | |
arma::mat | T |
Kinetic energy matrix. | |
arma::mat | Vnuc |
Nuclear attraction matrix. | |
arma::mat | Hcore |
Core Hamiltonian. | |
const BasisSet * | basisp |
Basis set to use (needed for DFT grid operation) | |
BasisSet | dfitbas |
Density fitting basis. | |
Checkpoint * | chkptp |
Checkpoint file. | |
arma::mat | Sinvh |
Basis orthogonalizing matrix. | |
size_t | Nbf |
Amount of basis functions. | |
int | Nel |
Total number of electrons. | |
int | mult |
Multiplicity. | |
enum guess_t | guess |
Which guess to use. | |
bool | usediis |
Use DIIS? | |
bool | diis_c1 |
Use C1-DIIS instead of C2-DIIS? | |
int | diisorder |
Number of DIIS matrices to use. | |
double | diiseps |
Threshold of enabling use of DIIS. | |
double | diisthr |
Threshold of enabling full use of DIIS. | |
bool | useadiis |
Use ADIIS? | |
bool | usebroyden |
Use Broyden accelerator? | |
bool | usetrrh |
Use Trust-Region Roothaan-Hall? | |
int | maxiter |
Maximum number of iterations. | |
double | shift |
Level shift. | |
bool | verbose |
Verbose calculation? | |
bool | direct |
Direct calculation? | |
bool | decfock |
Use decontracted basis to construct Fock matrix? (Direct formation) | |
bool | strictint |
Strict integrals? | |
double | intthr |
Integral screening threshold. | |
bool | densityfit |
Density fitting calculation? | |
size_t | fitmem |
Memory allocation for density fitting. | |
double | fitthr |
Threshold for density fitting. | |
bool | cholesky |
Cholesky calculation? | |
double | cholthr |
Cholesky threshold. | |
double | cholshthr |
Cholesky shell threshold (for caching) | |
int | cholmode |
Cholesky mode. | |
bool | doforce |
Calculate forces? | |
double | Enuc |
Nuclear repulsion energy. | |
ERItable | tab |
Electron repulsion table. | |
ERItable | tab_rs |
Electron repulsion table, range separation. | |
ERIscreen | scr |
Electron repulsion screening table (for direct calculations) | |
ERIscreen | scr_rs |
Electron repulsion screening table, range separation. | |
ERIchol | chol |
Cholesky integrals. | |
ERIchol | chol_rs |
Cholesky integrals, range separation. | |
DensityFit | dfit |
Density fitting table. | |
BasisSet | decbas |
Decontracted basis set. | |
arma::mat | decconv |
Conversion matrix. | |
std::vector< arma::mat > | freeze |
List of frozen orbitals by symmetry group. index+1 is symmetry group, group 0 contains all non-frozen orbitals. | |
Self-consistent field solver routines.
This class contains the driver routines for performing restricted and unrestricted Hartree-Fock and density-functional theory calculations.