# sc::OneBodyWavefunction Class Reference

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

`#include <obwfn.h>`

Inheritance diagram for sc::OneBodyWavefunction:

List of all members.

## 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 ()
| Returns the SO to MO transformation matrix.
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.

`eigenvector_accuracy`
  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

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::SCF, sc::UHF, and sc::UnrestrictedSCF.

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::mo_to_orthog_so | ( |  | ) |

Returns the MO to orthogonal-SO transformation matrix.

This returns the same matrix as oso_eigenvectors().

RefSCMatrix sc::OneBodyWavefunction::eigenvectors | ( |  | ) |

Deprecated.

Use so_to_mo().t() instead.

Reimplemented in sc::UnrestrictedSCF.

virtual RefSCMatrix sc::OneBodyWavefunction::oso_eigenvectors | ( |  | ) | `[pure virtual]`

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

Implemented in sc::SCF.

virtual RefDiagSCMatrix sc::OneBodyWavefunction::eigenvalues | ( |  | ) | `[pure virtual]`

Returns the MO basis eigenvalues.

Implemented in sc::SCF, and sc::UnrestrictedSCF.

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, and sc::UnrestrictedSCF.

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::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, and sc::UnrestrictedSCF.

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, and sc::UnrestrictedSCF.

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

Returns the alpha occupation.

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

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

Returns the beta occupation.

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

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.

virtual RefSCMatrix sc::OneBodyWavefunction::hcore_guess | ( |  | ) | `[virtual]`

Return a guess vector.

The guess transforms the orthogonal SO basis to the MO basis.

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.

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::SCF, and sc::UnrestrictedSCF.

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

- obwfn.h