## SYNOPSIS

#include <obwfn.h>

Inherits **sc::Wavefunction**.

Inherited by **sc::ExtendedHuckelWfn**, **sc::HCoreWfn**, and **sc::SCF**.

## Public Member Functions

**OneBodyWavefunction** (**StateIn** &)

**OneBodyWavefunction** (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.

int **nelectron** ()

*Returns the number of electrons. *

void **set_desired_value_accuracy** (double eps)

*Overload of ***Function::set_desired_value_accuracy()**.

**RefSCMatrix** **so_to_mo** ()

*These members give metrics and basis transformations using the covariant/contravariant tensor notation. *

**RefSCMatrix** **orthog_so_to_mo** ()

*Returns the orthogonal-SO to MO transformation matrix. *

**RefSCMatrix** **mo_to_so** ()

*Returns the MO to ***SO** transformation matrix.

**RefSCMatrix** **mo_to_orthog_so** ()

*Returns the MO to orthogonal-SO transformation matrix. *

**RefSCMatrix** **eigenvectors** ()

*Deprecated. *

virtual **RefSCMatrix** **oso_eigenvectors** ()=0

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

virtual **RefDiagSCMatrix** **eigenvalues** ()=0

*Returns the MO basis eigenvalues. *

virtual double **occupation** (int irrep, int vectornum)=0

*Returns the occupation. *

double **occupation** (int vectornum)

*Returns the occupation. *

virtual int **spin_unrestricted** ()=0

*Return 1 if the alpha orbitals are not equal to the beta orbitals. *

virtual double **alpha_occupation** (int irrep, int vectornum)

*Returns the alpha occupation. *

virtual double **beta_occupation** (int irrep, int vectornum)

*Returns the beta occupation. *

double **alpha_occupation** (int vectornum)

*Returns the alpha occupation. *

double **beta_occupation** (int vectornum)

*Returns the beta occupation. *

virtual **RefSCMatrix** **oso_alpha_eigenvectors** ()

virtual **RefSCMatrix** **oso_beta_eigenvectors** ()

virtual **RefSCMatrix** **alpha_eigenvectors** ()

virtual **RefSCMatrix** **beta_eigenvectors** ()

virtual **RefDiagSCMatrix** **alpha_eigenvalues** ()

virtual **RefDiagSCMatrix** **beta_eigenvalues** ()

virtual **RefDiagSCMatrix** **projected_eigenvalues** (const **Ref**< **OneBodyWavefunction** > &, int alp=1)

virtual **RefSCMatrix** **projected_eigenvectors** (const **Ref**< **OneBodyWavefunction** > &, int alp=1)

*Projects the density into the current basis set. *

virtual **RefSCMatrix** **hcore_guess** ()

*Return a guess vector. *

virtual **RefSCMatrix** **hcore_guess** (**RefDiagSCMatrix** &val)

*Return a guess vector and the eigenvalues. *

void **symmetry_changed** ()

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

double **orbital** (const **SCVector3** &r, int iorb)

double **orbital_density** (const **SCVector3** &r, int iorb, double *orbval=0)

void **print** (std::ostream &o=ExEnv::out0()) const

*Print information about the object. *

## Protected Member Functions

void **init_sym_info** ()

int **form_occupations** (int *&newocc, const int *oldocc)

## Protected Attributes

**ResultRefSymmSCMatrix** **density_**

**AccResultRefSCMatrix** **oso_eigenvectors_**

**AccResultRefDiagSCMatrix** **eigenvalues_**

int **nirrep_**

int * **nvecperirrep_**

double * **occupations_**

double * **alpha_occupations_**

double * **beta_occupations_**

## Detailed Description

A **OneBodyWavefunction** is a **MolecularEnergy** that solves an effective one-body problem.

## Constructor & Destructor Documentation

## sc::OneBodyWavefunction::OneBodyWavefunction (const **Ref**< **KeyVal** > &)

The **KeyVal** constructor. .IP "eigenvector_accuracy" 1c
Gives the accuracy to which eigenvectors are initially computed. The default 1.0e-7. Accuracies are usually adjusted as needed anyway, so it should not be necessary to change this.

## Member Function Documentation

## double sc::OneBodyWavefunction::alpha_occupation (int vectornum)

Returns the alpha occupation. The vector number in the MO basis is given as an argument.

## virtual double sc::OneBodyWavefunction::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 in **sc::HSOSSCF**, **sc::OSSSCF**, **sc::TCSCF**, and **sc::UnrestrictedSCF**.

## double sc::OneBodyWavefunction::beta_occupation (int vectornum)

Returns the beta occupation. The vector number in the MO basis is given as an argument.

## virtual double sc::OneBodyWavefunction::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 in **sc::HSOSSCF**, **sc::OSSSCF**, **sc::TCSCF**, and **sc::UnrestrictedSCF**.

## virtual **RefDiagSCMatrix** sc::OneBodyWavefunction::eigenvalues () [pure virtual]

Returns the MO basis eigenvalues.

Implemented in **sc::SCF**, **sc::UnrestrictedSCF**, **sc::ExtendedHuckelWfn**, and **sc::HCoreWfn**.

**RefSCMatrix** sc::OneBodyWavefunction::eigenvectors ()

Deprecated. Use **so_to_mo()**.t() instead.

Reimplemented in **sc::UnrestrictedSCF**.

## virtual **RefSCMatrix** sc::OneBodyWavefunction::hcore_guess (**RefDiagSCMatrix** & val) [virtual]

Return a guess vector and the eigenvalues. The guess ransforms the orthogonal **SO** basis to the MO basis. Storage for the eigenvalues will be allocated.

## virtual **RefSCMatrix** sc::OneBodyWavefunction::hcore_guess () [virtual]

Return a guess vector. The guess transforms the orthogonal **SO** basis to the MO basis.

**RefSCMatrix** sc::OneBodyWavefunction::mo_to_orthog_so ()

Returns the MO to orthogonal-SO transformation matrix. This returns the same matrix as **oso_eigenvectors()**.

## double sc::OneBodyWavefunction::occupation (int vectornum)

Returns the occupation. The vector number in the MO basis is given as an argument.

## virtual double sc::OneBodyWavefunction::occupation (int irrep, int vectornum) [pure virtual]

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

Implemented in **sc::CLSCF**, **sc::HSOSSCF**, **sc::OSSSCF**, **sc::TCSCF**, **sc::UnrestrictedSCF**, **sc::ExtendedHuckelWfn**, and **sc::HCoreWfn**.

## virtual **RefSCMatrix** sc::OneBodyWavefunction::oso_eigenvectors () [pure virtual]

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

Implemented in **sc::SCF**, **sc::ExtendedHuckelWfn**, and **sc::HCoreWfn**.

## virtual **RefSCMatrix** sc::OneBodyWavefunction::projected_eigenvectors (const **Ref**< **OneBodyWavefunction** > &, int alp = 1) [virtual]

Projects the density into the current basis set. Returns an orthogonalized **SO** to MO transformation with the orbitals.

## void sc::OneBodyWavefunction::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::Wavefunction**.

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

## void sc::OneBodyWavefunction::set_desired_value_accuracy (double eps) [virtual]

Overload of **Function::set_desired_value_accuracy()**. Must update accuracy of the eigenvectors and the eigenvalues

Reimplemented from **sc::Function**.

Reimplemented in **sc::UnrestrictedSCF**.

**RefSCMatrix** sc::OneBodyWavefunction::so_to_mo ()

These members give metrics and basis transformations using the covariant/contravariant tensor notation. Returns the transformation matrix that converts a contravariant **SO** tensor index to a contravariant MO tensor index. Returns the transformation matrix that converts a covariant **SO** tensor index to a covariant MO tensor index. Returns the transformation matrix that converts a contravariant MO tensor index to a contravariant **SO** tensor index. Returns the transformation matrix that converts a covariant MO tensor index to a covariant **SO** tensor index. Returns the metric for converting a covariant **SO** index into a contravariant one. Returns the metric for converting a contravariant **SO** index into a covariant one. Returns the **SO** to MO transformation matrix.

## void sc::OneBodyWavefunction::symmetry_changed () [virtual]

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

Reimplemented from **sc::Wavefunction**.

Reimplemented in **sc::CLSCF**, **sc::HSOSSCF**, **sc::OSSSCF**, **sc::SCF**, **sc::TCSCF**, and **sc::UnrestrictedSCF**.

## Author

Generated automatically by Doxygen for MPQC from the source code.