MPQC  3.0.0-alpha
Public Member Functions | Protected Member Functions | Protected Attributes
sc::UnrestrictedSCF Class Reference

A base class for unrestricted self-consistent-field methods. More...

#include <chemistry/qc/scf/uscf.h>

Inheritance diagram for sc::UnrestrictedSCF:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 UnrestrictedSCF (StateIn &)
 The KeyVal constructor.
 UnrestrictedSCF (const Ref< KeyVal > &)
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 eigenvectors ()
 Deprecated.
RefDiagSCMatrix eigenvalues ()
 Returns the MO basis eigenvalues.
RefSCMatrix oso_alpha_eigenvectors ()
RefSCMatrix alpha_eigenvectors ()
RefDiagSCMatrix alpha_eigenvalues ()
RefSCMatrix oso_beta_eigenvectors ()
RefSCMatrix beta_eigenvectors ()
RefDiagSCMatrix beta_eigenvalues ()
RefSymmSCMatrix alpha_density ()
 Return alpha electron densities in the SO basis.
RefSymmSCMatrix beta_density ()
 Return beta electron densities in the SO basis.
RefSymmSCMatrix density ()
 Returns the SO density.
void symmetry_changed ()
 Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy.
double occupation (int, int)
 Returns the occupation.
double alpha_occupation (int, int)
 Returns the alpha occupation.
double beta_occupation (int, int)
 Returns the beta occupation.
int spin_polarized ()
 Return 1 if the alpha density is not equal to the beta density.
int spin_unrestricted ()
 Return 1 if the alpha orbitals are not equal to the beta orbitals.
void print (std::ostream &o=ExEnv::out0()) const
 Print information about the object.
int n_fock_matrices () const
RefSymmSCMatrix fock (int i)
 Returns alpha (i==0) or beta (i==1) Fock matrix in AO basis (including XC contribution in KS DFT -- compare this to CLSCF and HSOSSCF!).
RefSymmSCMatrix effective_fock ()
 Spin-unrestricted SCF methods do not define effective Fock matrix, thus this function should never be called.
void set_desired_value_accuracy (double eps)
 Overload of Function::set_desired_value_accuracy().

Protected Member Functions

Ref< SCExtrapErrorextrap_error ()
double compute_vector (double &, double enuclear)
void initial_vector ()
void set_occupations (const RefDiagSCMatrix &)
void set_occupations (const RefDiagSCMatrix &, const RefDiagSCMatrix &, bool can_change_multiplicity)
void init_vector ()
void done_vector ()
double new_density ()
void reset_density ()
double scf_energy ()
Ref< SCExtrapDataextrap_data ()
void init_gradient ()
void done_gradient ()
RefSymmSCMatrix lagrangian ()
RefSymmSCMatrix gradient_density ()
void init_hessian ()
void done_hessian ()
void two_body_deriv_hf (double *grad, double exchange_fraction)

Protected Attributes

Ref< PointGroupmost_recent_pg_
int user_occupations_
int tnalpha_
int tnbeta_
int nirrep_
int * nalpha_
int * nbeta_
int * initial_nalpha_
int * initial_nbeta_
AccResultRefSCMatrix oso_eigenvectors_beta_
AccResultRefDiagSCMatrix eigenvalues_beta_
ResultRefSymmSCMatrix focka_
ResultRefSymmSCMatrix fockb_
Ref< TwoBodyInttbi_
RefSymmSCMatrix densa_
RefSymmSCMatrix densb_
RefSymmSCMatrix gmata_
RefSymmSCMatrix gmatb_
RefSymmSCMatrix diff_densa_
RefSymmSCMatrix diff_densb_

Detailed Description

A base class for unrestricted self-consistent-field methods.


Constructor & Destructor Documentation

The KeyVal constructor.

   <dl>

   <dt><tt>total_charge</tt><dd> This floating point number
   gives the total charge,

$c$, of the molecule. The default is 0.

   <dt><tt>multiplicity</tt><dd> This integer gives the multiplicity,

$m$, of the molecule. The number of alpha-spin orbitals minus the number of beta-spin orbitals is then $m - 1$. If multiplicity is not specified, then the maximum value of multiplicity will be sought that minimizes the total sum of orbital energies from guess_wavefunction (multiplicity = 1 will be considered in the search).

See also:
HundsFEMOSeeker

alpha This vector of integers gives the total number of occupied alpha spinorbitals of each irreducible representation. By default, the orbital occupations will be guessed from orbital eigenvalues. If alpha is given, then beta must be given and they override multiplicity and total_charge.

beta This vector of integers gives the total number of occupied beta spinorbitals of each irreducible representation. By default, the orbital occupations will be guessed from orbital eigenvalues. If beta is given, then alpha must be given and they override multiplicity and total_charge.

maxiter This has the same meaning as in the parent class, SCF; however, the default value is 100.

level_shift This has the same meaning as in the parent class, SCF; however, the default value is 0.25.


Member Function Documentation

double sc::UnrestrictedSCF::alpha_occupation ( int  irrep,
int  vectornum 
) [virtual]

Returns the alpha occupation.

The irreducible representation and the vector number within that representation are given as arguments.

Reimplemented from sc::OneBodyWavefunction.

double sc::UnrestrictedSCF::beta_occupation ( int  irrep,
int  vectornum 
) [virtual]

Returns the beta occupation.

The irreducible representation and the vector number within that representation are given as arguments.

Reimplemented from sc::OneBodyWavefunction.

Spin-unrestricted SCF methods do not define effective Fock matrix, thus this function should never be called.

Implements sc::SCF.

Returns the MO basis eigenvalues.

Reimplemented from sc::SCF.

Deprecated.

Use so_to_mo().t() instead.

Reimplemented from sc::OneBodyWavefunction.

Returns alpha (i==0) or beta (i==1) Fock matrix in AO basis (including XC contribution in KS DFT -- compare this to CLSCF and HSOSSCF!).

Argument i must be 0.

Implements sc::SCF.

double sc::UnrestrictedSCF::occupation ( int  irrep,
int  vectornum 
) [virtual]

Returns the occupation.

The irreducible representation and the vector number within that representation are given as arguments.

Implements sc::OneBodyWavefunction.

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

Reimplemented in sc::UKS, and sc::UHF.

void sc::UnrestrictedSCF::set_desired_value_accuracy ( double  eps) [virtual]

Overload of Function::set_desired_value_accuracy().

Must update accuracy of the eigenvalues and eigenvectors.

Reimplemented from sc::OneBodyWavefunction.

Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy.

Reimplemented from sc::SCF.


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

Generated at Sat Jul 7 2012 11:52:57 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.0.