sc_SCF3
The scf class is the base for all classes that use a self-consistent field procedure to solve an effective one body problem.
Usage
Inherits sc::OneBodyWavefunction.
Inherited by
sc::CLSCF,
sc::HSOSSCF,
sc::OSSSCF,
sc::TCSCF,
and
sc::UnrestrictedSCF.
Public Member Functions
SCF (StateIn
&)
SCF (const
Ref<
KeyVal
>
&)
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
()
Protected Types
enum Access
Read,
Write,
Accum
Protected Member Functions
virtual void
init_threads
()
virtual void
done_threads
()
virtual void
compute
()
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)
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_
int always_use_guess_wfn_
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_
int local_
std::string previous_savestate_file_
RefSCMatrix oso_scf_vector_
RefSCMatrix oso_scf_vector_beta_
RefSymmSCMatrix hcore_
Detailed Description
The SCF class is the base for all classes that use a self-consistent field procedure to solve an effective one body problem.
Constructor & Destructor Documentation
sc::SCF::SCF (const Ref< KeyVal > &)
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, $ reset to $D$. 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 $C_1$ 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 $G$ 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
OneBodyWavefunctionobject or the name of file that contains the saved state of aOneBodyWavefunctionobject. 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.
Member Function Documentation
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.
virtual RefSymmSCMatrix sc::SCF::effective_fock () [pure virtual]
Implemented in sc::CLSCF, sc::HSOSSCF, and sc::UnrestrictedSCF.
RefDiagSCMatrix sc::SCF::eigenvalues () [virtual]
Returns the MO basis eigenvalues.
Implements sc::OneBodyWavefunction.
Reimplemented in sc::UnrestrictedSCF.
virtual RefSymmSCMatrix sc::SCF::fock (int) [pure virtual]
Implemented in sc::CLSCF, sc::HSOSSCF, and 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::Compute.
RefSCMatrix sc::SCF::oso_eigenvectors () [virtual]
Returns the orthogonal MO (columns) to orthogonal-SO (rows) transformation matrix.
Implements sc::OneBodyWavefunction.
void sc::SCF::print (std::ostream & = ExEnv::out0()) const [virtual]
Print information about the object.
Reimplemented from sc::MolecularEnergy.
Reimplemented in sc::TCHF, sc::TCSCF, sc::UHF, and sc::UnrestrictedSCF.
void sc::SCF::save_data_state (StateOut &) [virtual]
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. This must be implemented by the derived class if the class has data.
Reimplemented from sc::MolecularEnergy.
Reimplemented in sc::TCHF, sc::TCSCF, sc::UHF, and sc::UnrestrictedSCF.
int sc::SCF::spin_unrestricted () [virtual]
Return 1 if the alpha orbitals are not equal to the beta orbitals.
Implements sc::OneBodyWavefunction.
Reimplemented in sc::UnrestrictedSCF.
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::MolecularEnergy.
Reimplemented in sc::TCSCF, and sc::UnrestrictedSCF.
History
- Debian 12 (Bookworm): the text shown here
- Debian 11 (Bullseye)
- Debian 6.0 (Squeeze)
- Debian 5.0 (Lenny)
- Debian 4.0 (Etch)
- Debian 3.1 (Sarge)