MPQC  2.3.1
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
sc::SCF Class Reference

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>

Inheritance diagram for sc::SCF:
sc::OneBodyWavefunction sc::Wavefunction sc::MolecularEnergy sc::Function sc::SavableState sc::Compute sc::DescribedClass sc::RefCount sc::Identity sc::CLSCF sc::HSOSSCF sc::OSSSCF sc::TCSCF sc::UnrestrictedSCF sc::CLHF sc::CLKS sc::HSOSHF sc::HSOSKS sc::OSSHF sc::TCHF sc::UHF sc::UKS

List of all members.

Public Member Functions

 SCF (StateIn &)
 SCF (const Ref< KeyVal > &)
 The KeyVal constructor.
void save_data_state (StateOut &)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
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< SCExtrapErrorextrap_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< SCExtrapDataextrap_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< OneBodyWavefunctionguess_wfn_
int always_use_guess_wfn_
Ref< SelfConsistentExtrapolationextrap_
Ref< AccumHaccumdih_
Ref< AccumHaccumddh_
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< MessageGrpscf_grp_
Ref< ThreadGrpthreadgrp_
int local_
Ref< TwoBodyInt > * tbis_
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.

   <dl>

   <dt><tt>maxiter</tt><dd> This integer specifies the maximum number
   of SCF iterations.  The default is 40.

   <dt><tt>density_reset_frequency</tt><dd> This integer specifies how
   often, in term of SCF iterations, \form#59 will be reset to

$D$. The default is 10.

   <dt><tt>reset_occuptions</tt><dd> Reassign the occupations after
   each iteration based on the eigenvalues.  This only has an effect
   for molecules with higher than \form#10 symmetry.  The default is
   false.

   <dt><tt>level_shift</tt><dd> The default is 0.

   <dt><tt>extrap</tt><dd> This specifies an object of type
   SelfConsistentExtrapolation.  The default is a DIIS object.

   <dt><tt>memory</tt><dd> The amount of memory that each processor
   may use.  The default is 0 (minimal memory use).

   <dt><tt>local_density</tt><dd> If this is true, a local copy of the
   density and \form#61 matrix will be made on all nodes, even if a
   distributed matrix specialization is used.  The default is true.

   <dt><tt>guess_wavefunction</tt><dd> 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.

   <dt><tt>keep_guess_wavefunction</tt><dd> 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.

   <dt><tt>always_use_guess_wavefunction</tt><dd> 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.

   <dt><tt>print_evals</tt><dd>Takes a boolean value.  If true, print
   all eigenvalues after the SCF procedure converges.  Takes a boolean
   value.  The default is false.

   <dt><tt>print_occ_evals</tt><dd>Takes a boolean value.  If true,
   print the occupied eigenvalues after the SCF procedure converges.
   The default is false.

   </dl>  

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.

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.

Returns the orthogonal MO (columns) to orthogonal-SO (rows) transformation matrix.

Implements sc::OneBodyWavefunction.

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::OneBodyWavefunction.

Reimplemented in sc::HSOSSCF, sc::HSOSKS, sc::UKS, sc::CLSCF, sc::CLKS, sc::UnrestrictedSCF, sc::TCSCF, sc::OSSSCF, sc::UHF, sc::CLHF, sc::HSOSHF, sc::OSSHF, and sc::TCHF.

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::HSOSSCF, sc::CLSCF, sc::UnrestrictedSCF, sc::TCSCF, and sc::OSSSCF.


The documentation for this class was generated from the following file:

Generated at Wed Mar 28 2012 10:14:37 for MPQC 2.3.1 using the documentation package Doxygen 1.8.0.