# sc::HSOSSCF Class Reference

The HSOSSCF class is a base for classes implementing a self-consistent procedure for high-spin open-shell molecules. More...

`#include <hsosscf.h>`

Inheritance diagram for sc::HSOSSCF:

List of all members.

## Public Member Functions

| HSOSSCF (StateIn &)
| HSOSSCF (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.
void | print (std::ostream &o=ExEnv::out0()) const
| Print information about the object.
double | occupation (int irrep, int vectornum)
| Returns the occupation.
double | alpha_occupation (int irrep, int vectornum)
| Returns the alpha occupation.
double | beta_occupation (int irrep, int vectornum)
| Returns the beta occupation.
int | n_fock_matrices () const
RefSymmSCMatrix | fock (int i)
| Returns closed-shell (i==0) or open-shell (i==1) Fock matrix in AO basis (excluding XC contribution in KS DFT).
RefSymmSCMatrix | effective_fock ()
| Returns effective Fock matrix in MO basis (including XC contribution for KS DFT).
void | symmetry_changed ()
| Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy.
int | spin_polarized ()
| Return 1 if the alpha density is not equal to the beta density.
RefSymmSCMatrix | density ()
| Returns the SO density.
RefSymmSCMatrix | alpha_density ()
| Return alpha electron densities in the SO basis.
RefSymmSCMatrix | beta_density ()
| Return beta electron densities in the SO basis.

## Protected Member Functions

void | set_occupations (const RefDiagSCMatrix &evals)
void | init_vector ()
void | done_vector ()
void | reset_density ()
double | new_density ()
double | scf_energy ()
Ref< SCExtrapData > | extrap_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< PointGroup > | most_recent_pg_
int | user_occupations_
int | tndocc_
int | tnsocc_
int | nirrep_
int * | initial_ndocc_
int * | initial_nsocc_
int * | ndocc_
int * | nsocc_
ResultRefSymmSCMatrix | cl_fock_
ResultRefSymmSCMatrix | op_fock_
RefSymmSCMatrix | cl_dens_
RefSymmSCMatrix | cl_dens_diff_
RefSymmSCMatrix | cl_gmat_
RefSymmSCMatrix | op_dens_
RefSymmSCMatrix | op_dens_diff_
RefSymmSCMatrix | op_gmat_
RefSymmSCMatrix | cl_hcore_

## Detailed Description

The HSOSSCF class is a base for classes implementing a self-consistent procedure for high-spin open-shell molecules.

## Constructor & Destructor Documentation

sc::HSOSSCF::HSOSSCF | ( | const Ref< KeyVal > & |  | ) |

The KeyVal constructor.

`total_charge`
  This floating point number gives the total charge, , of the molecule. The default is 0.

`nsocc`
  This integer gives the total number of singly occupied orbitals, . If this is not given, then multiplicity will be read.

`multiplicity`
  This integer gives the multiplicity, , of the molecule. The number of singly occupied orbitals is then . If neither nsocc nor multiplicity is given, then if, in consideration of total_charge, the number of electrons is even, the default is 2. Otherwise, it is 1.

`ndocc`
  This integer gives the total number of doubly occupied orbitals . The default .

`socc`
  This vector of integers gives the total number of singly occupied orbitals of each irreducible representation. By default, the singly occupied orbitals will be distributed according to orbital eigenvalues. If socc is given, then docc must be given and they override nsocc, multiplicity, ndocc, and total_charge.

`docc`
  This vector of integers gives the total number of doubly occupied orbitals of each irreducible representation. By default, the singly occupied orbitals will be distributed according to orbital eigenvalues. If docc is given, then socc must be given and they override nsocc, multiplicity, ndocc, 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 1.0.

## Member Function Documentation

double sc::HSOSSCF::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::HSOSSCF::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.

RefSymmSCMatrix sc::HSOSSCF::effective_fock | ( |  | ) | `[virtual]`

Returns effective Fock matrix in MO basis (including XC contribution for KS DFT).

Implements sc::SCF.

Reimplemented in sc::HSOSKS.

RefSymmSCMatrix sc::HSOSSCF::fock | ( | int | i | ) | `[virtual]`

Returns closed-shell (i==0) or open-shell (i==1) Fock matrix in AO basis (excluding XC contribution in KS DFT).

Use effective_fock() if you want the full KS Fock matrix.

Implements sc::SCF.

double sc::HSOSSCF::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.

void sc::HSOSSCF::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::SCF.

Reimplemented in sc::HSOSKS, and sc::HSOSHF.

void sc::HSOSSCF::symmetry_changed | ( |  | ) | `[virtual]`

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:

- hsosscf.h