The SCF class is the base for all classes that use a self-consistent field procedure to solve an effective one body problem. More...
#include <scf.h>
Public Member Functions | |
SCF (StateIn &) | |
SCF (const Ref< KeyVal > &) | |
The KeyVal constructor. | |
void | save_data_state (StateOut &) |
RefSCMatrix | oso_eigenvectors () |
Returns the orthogonal MO (columns) to orthogonal-SO (rows) transformation matrix. | |
RefDiagSCMatrix | eigenvalues () |
Returns the MO basis eigenvalues. | |
int | spin_unrestricted () |
Return 1 if the alpha orbitals are not equal to the beta orbitals. | |
virtual int | n_fock_matrices () const =0 |
virtual RefSymmSCMatrix | fock (int)=0 |
virtual RefSymmSCMatrix | effective_fock ()=0 |
virtual double | one_body_energy () |
virtual void | two_body_energy (double &ec, double &ex) |
void | symmetry_changed () |
Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy. | |
void | obsolete () |
Marks all results as being out of date. | |
void | print (std::ostream &o=ExEnv::out0()) const |
Print information about the object. | |
Protected Types | |
enum | Access { Read, Write, Accum } |
Protected Member Functions | |
virtual void | init_threads () |
virtual void | done_threads () |
virtual void | compute () |
Recompute at least the results that have compute true and are not already computed. | |
virtual double | compute_vector (double &, double enuclear) |
virtual Ref< SCExtrapError > | extrap_error () |
virtual void | compute_gradient (const RefSCVector &) |
virtual void | compute_hessian (const RefSymmSCMatrix &) |
virtual void | savestate_iter (int) |
virtual void | savestate_to_file (const std::string &filename) |
signed char * | init_pmax (double *) |
RefSymmSCMatrix | get_local_data (const RefSymmSCMatrix &, double *&, Access) |
virtual void | initial_vector (int needv=1) |
void | init_mem (int) |
void | so_density (const RefSymmSCMatrix &d, double occ, int alp=1) |
int * | read_occ (const Ref< KeyVal > &, const char *name, int nirrep) |
virtual void | set_occupations (const RefDiagSCMatrix &)=0 |
virtual void | init_vector ()=0 |
virtual void | done_vector ()=0 |
virtual double | new_density ()=0 |
virtual void | reset_density ()=0 |
virtual double | scf_energy ()=0 |
virtual Ref< SCExtrapData > | extrap_data ()=0 |
virtual void | ao_fock (double accuracy)=0 |
virtual void | init_gradient ()=0 |
virtual void | done_gradient ()=0 |
virtual RefSymmSCMatrix | lagrangian ()=0 |
virtual RefSymmSCMatrix | gradient_density ()=0 |
virtual void | two_body_deriv (double *)=0 |
virtual void | init_hessian ()=0 |
virtual void | done_hessian ()=0 |
Protected Attributes | |
int | need_vec_ |
int | compute_guess_ |
int | keep_guess_wfn_ |
Ref< OneBodyWavefunction > | guess_wfn_ |
int | always_use_guess_wfn_ |
Ref< SelfConsistentExtrapolation > | extrap_ |
Ref< AccumH > | accumdih_ |
Ref< AccumH > | accumddh_ |
int | maxiter_ |
int | dens_reset_freq_ |
int | reset_occ_ |
int | local_dens_ |
size_t | storage_ |
int | print_all_evals_ |
int | print_occ_evals_ |
double | level_shift_ |
Ref< MessageGrp > | scf_grp_ |
Ref< ThreadGrp > | threadgrp_ |
int | local_ |
Ref< TwoBodyInt > * | tbis_ |
std::string | previous_savestate_file_ |
RefSCMatrix | oso_scf_vector_ |
RefSCMatrix | oso_scf_vector_beta_ |
RefSymmSCMatrix | hcore_ |
The SCF class is the base for all classes that use a self-consistent field procedure to solve an effective one body problem.
The KeyVal constructor.
maxiter
This integer specifies the maximum number of SCF iterations. The default is 40.
density_reset_frequency
This integer specifies how often, in term of SCF iterations, will be reset to
. The default is 10.
reset_occuptions
Reassign the occupations after each iteration based on the eigenvalues. This only has an effect for molecules with higher than symmetry. The default is false.
level_shift
The default is 0.
extrap
This specifies an object of type SelfConsistentExtrapolation. The default is a DIIS object.
memory
The amount of memory that each processor may use. The default is 0 (minimal memory use).
local_density
If this is true, a local copy of the density and matrix will be made on all nodes, even if a distributed matrix specialization is used. The default is true.
guess_wavefunction
This specifies the initial guess for the solution to the SCF equations. This can be either a OneBodyWavefunction object or the name of file that contains the saved state of a OneBodyWavefunction object. By default the one-electron hamiltonian will be diagonalized to obtain the initial guess.
keep_guess_wavefunction
The guess wavefunction is normally discarded after it is projected. Setting this boolean variable to true will cause the guess to be kept. This is useful when doing frequencies of symmetric molecules by finite displacements, because the wavefunction is lost whenever the molecule is displaced into lower symmetry.
always_use_guess_wavefunction
If the orbitals must be recomputed after they have already been computed once, then the old orbitals are used as the initial guess by default. However, if this option is true, then the guess wavefunction will be used, if available. If a guess wavefunction is not available, then a core Hamiltonian guess will be used. If this option is set to true, then keep_guess_wavefunction should also be set to true.
print_evals
Takes a boolean value. If true, print all eigenvalues after the SCF procedure converges. Takes a boolean value. The default is false.
print_occ_evals
Takes a boolean value. If true, print the occupied eigenvalues after the SCF procedure converges. The default is false.
virtual void sc::SCF::compute | ( | ) | [protected, virtual] |
Recompute at least the results that have compute true and are not already computed.
This should only be called by Result's members.
Implements sc::Compute.
RefDiagSCMatrix sc::SCF::eigenvalues | ( | ) | [virtual] |
Returns the MO basis eigenvalues.
Implements sc::OneBodyWavefunction.
Reimplemented in sc::UnrestrictedSCF.
void sc::SCF::obsolete | ( | ) | [virtual] |
Marks all results as being out of date.
Any subsequent access to results will cause Compute::compute() to be called.
Reimplemented from sc::Wavefunction.
RefSCMatrix sc::SCF::oso_eigenvectors | ( | ) | [virtual] |
Returns the orthogonal MO (columns) to orthogonal-SO (rows) transformation matrix.
Implements sc::OneBodyWavefunction.
void sc::SCF::symmetry_changed | ( | ) | [virtual] |
Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy.
Reimplemented from sc::OneBodyWavefunction.
Reimplemented in sc::CLSCF, sc::HSOSSCF, sc::OSSSCF, sc::TCSCF, and sc::UnrestrictedSCF.