# sc_HSOSSCF man page

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

## Synopsis

`#include <hsosscf.h>`

Inherits **sc::SCF**.

Inherited by **sc::HSOSHF**, and **sc::HSOSKS**.

### Public Member Functions

HSOSSCF(StateIn&)HSOSSCF(constRef<KeyVal> &)TheKeyValconstructor.

voidsave_data_state(StateOut&)Save the base classes (with save_data_state) and the members in the same order that theStateInCTOR initializes them.

voidExEnv::out0()) constPrint information about the object.

doubleoccupation(int irrep, int vectornum)Returns the occupation.

doublealpha_occupation(int irrep, int vectornum)Returns the alpha occupation.

doublebeta_occupation(int irrep, int vectornum)Returns the beta occupation.

intn_fock_matrices() constRefSymmSCMatrix 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).

voidsymmetry_changed()Call this if you have changed the molecular symmetry of the molecule contained by thisMolecularEnergy.

intspin_polarized()Return 1 if the alpha density is not equal to the beta density.RefSymmSCMatrix density()Returns theSOdensity.RefSymmSCMatrix alpha_density()Return alpha electron densities in theSObasis.RefSymmSCMatrix beta_density()Return beta electron densities in theSObasis.

### Protected Member Functions

voidset_occupations(constRefDiagSCMatrix&evals)

voidinit_vector()

voiddone_vector()

voidreset_density()

doublenew_density()

doublescf_energy()Ref<SCExtrapData>extrap_data()

voidinit_gradient()

voiddone_gradient()RefSymmSCMatrix lagrangian()RefSymmSCMatrix gradient_density()

voidinit_hessian()

voiddone_hessian()

voidtwo_body_deriv_hf(double *grad, double exchange_fraction)

### Protected Attributes

Ref<PointGroup>most_recent_pg_

intuser_occupations_

inttndocc_

inttnsocc_

intnirrep_

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_

### Additional Inherited Members

## 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, $c$, of the molecule. The default is 0.

`nsocc`

- This integer gives the total number of singly occupied orbitals, $n_mathrm{socc}$. If this is not given, then multiplicity will be read.

`multiplicity`

- This integer gives the multiplicity, $m$, of the molecule. The number of singly occupied orbitals is then $n_mathrm{socc} = m - 1$. If neither nsocc nor multiplicity is given, then if, in consideration of total_charge, the number of electrons is even, the default $n_mathrm{socc}$ is 2. Otherwise, it is 1.

`ndocc`

- This integer gives the total number of doubly occupied orbitals $n_mathrm{docc}$. The default $n_mathrm{docc} = (c - n_mathrm{socc})/2$.

`socc`

- This vector of integers gives the total number of singly occupied orbitals of each irreducible representation. By default, the $n_mathrm{socc}$ 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 $n_mathrm{docc}$ 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**.

### 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::MolecularEnergy**.

### 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::MolecularEnergy**.

## Author

Generated automatically by Doxygen for MPQC from the source code.