Loading...
Searching...
No Matches
SlaterSet Class Reference

SlaterSet Class. More...

`#include <slaterset.h>`

Inheritance diagram for SlaterSet:

## Public Types

enum | slater { S , PX , PY , PZ , X2 , XZ , Z2 , YZ , XY , UU }
Public Types inherited from BasisSet
enum | ElectronType { Paired , Alpha , Beta }
| The ElectronType enum describes the type of electrons being set or retrieved. If Paired, then Alpha and Beta cannot be set, if Alpha or Beta then both must be set.

## Public Member Functions

| SlaterSet ()=default
| ~SlaterSet () override=default
SlaterSet * | clone () const override
bool | addSlaterIndices (const std::vector< int > &i)
bool | addSlaterTypes (const std::vector< int > &t)
bool | addZetas (const std::vector< double > &zetas)
bool | addPQNs (const std::vector< int > &pqns)
bool | addOverlapMatrix (const Eigen::MatrixXd &m)
bool | addEigenVectors (const Eigen::MatrixXd &e)
bool | addDensityMatrix (const Eigen::MatrixXd &d)
unsigned int | molecularOrbitalCount (ElectronType type=Paired) const override
bool | isValid () override
void | initCalculation ()
std::vector< int > & | slaterIndices ()
std::vector< int > & | slaterTypes ()
std::vector< double > & | zetas ()
std::vector< double > & | factors ()
std::vector< int > & | PQNs ()
MatrixX & | normalizedMatrix ()
MatrixX & | densityMatrix ()
void | outputAll ()
Public Member Functions inherited from BasisSet
| BasisSet ()=default
virtual | ~BasisSet ()=default
virtual void | setElectronCount (unsigned int n, ElectronType type=Paired)
unsigned int | electronCount (ElectronType type=Paired) const
void | setMolecule (Molecule *molecule_)
Molecule * | molecule ()
const Molecule * | molecule () const
void | setName (const std::string &name)
std::string | name () const
void | setTheoryName (const std::string &name)
std::string | theoryName () const
unsigned int | homo (ElectronType type=Paired) const
unsigned int | lumo (ElectronType type=Paired) const
std::vector< std::string > | symmetryLabels (ElectronType type=Paired) const
void | setSymmetryLabels (const std::vector< std::string > &labels, ElectronType type=Paired)
void | setMolecularOrbitalEnergy (const std::vector< double > &energies, ElectronType type=Paired)
| Set the molecular orbital energies, expected in Hartrees.
void | setMolecularOrbitalOccupancy (const std::vector< unsigned char > &occ, ElectronType type=Paired)
| Set the molecular orbital occupancies.
std::vector< double > & | moEnergy (ElectronType type=Paired)
std::vector< double > | moEnergy (ElectronType type=Paired) const
std::vector< unsigned char > & | moOccupancy (ElectronType type=Paired)
std::vector< unsigned char > | moOccupancy (ElectronType type=Paired) const

## Additional Inherited Members

Protected Attributes inherited from BasisSet
std::array< unsigned int, 2 > | m_electrons = {}
Molecule * | m_molecule = nullptr
std::string | m_name
std::string | m_theoryName
std::vector< std::string > | m_symmetryLabels [2]
std::vector< double > | m_moEnergy [2]
| This block stores energies for the molecular orbitals (same convention as the molecular orbital coefficients).
std::vector< unsigned char > | m_moOccupancy [2]
| The occupancy of the molecular orbitals.

## Detailed Description

Author
  Marcus D. Hanwell

The SlaterSet class has a transparent data structure for storing the basis sets output by many quantum mechanical codes. It has a certain hierarchy where shells are built up from n primitives, in this case Slater Type Orbitals (STOs). Each shell has a type (S, P, D, F, etc) and is composed of one or more STOs. Each STO has a contraction coefficient, c, and an exponent, a.

When calculating Molecular Orbitals (MOs) each orthogonal shell has an independent coefficient. That is the S type orbitals have one coefficient, the P type orbitals have three coefficients (Px, Py and Pz), the D type orbitals have five (or six if cartesian types) coefficients, and so on.

## Member Enumeration Documentation

## slater

enum slater

Enumeration of the Slater orbital types.

## Constructor & Destructor Documentation

## SlaterSet()

SlaterSet | ( |  | ) |

default

Constructor.

## ~SlaterSet()

~SlaterSet | ( |  | ) |

override default

Destructor.

## Member Function Documentation

## clone()

SlaterSet * clone | ( |  | ) | const

override virtual

Clone.

Implements BasisSet.

## addSlaterIndices()

bool addSlaterIndices | ( | const std::vector< int > & | i | ) |

Add a basis to the basis set.

Parameters

  i | Index of the atom to add the Basis too.

Returns
  The index of the added Basis.

## addSlaterTypes()

bool addSlaterTypes | ( | const std::vector< int > & | t | ) |

Add the symmetry types for the orbitals.

Parameters

  t | Vector containing the types of symmetry using the slater enum.

## addZetas()

bool addZetas | ( | const std::vector< double > & | zetas | ) |

Add a STO to the supplied basis.

Parameters

  zetas | The exponents of the STOs

Returns
  True if successful.

## addPQNs()

bool addPQNs | ( | const std::vector< int > & | pqns | ) |

The PQNs for the orbitals.

## addOverlapMatrix()

bool addOverlapMatrix | ( | const Eigen::MatrixXd & | m | ) |

The overlap matrix.

Parameters

  m | Matrix containing the overlap matrix for the basis.

## addEigenVectors()

bool addEigenVectors | ( | const Eigen::MatrixXd & | e | ) |

Add Eigen Vectors to the SlaterSet.

Parameters

  e | Matrix of the eigen vectors for the SlaterSet.

## addDensityMatrix()

bool addDensityMatrix | ( | const Eigen::MatrixXd & | d | ) |

Add the density matrix to the SlaterSet.

Parameters

  d | Density matrix for the SlaterSet.

## molecularOrbitalCount()

unsigned int molecularOrbitalCount | ( | ElectronType | type = Paired | ) | const

override virtual

Returns
  The number of molecular orbitals in the BasisSet.

Implements BasisSet.

## isValid()

bool isValid | ( |  | ) |

override virtual

Returns
  True of the basis set is valid, false otherwise. Default is true, if false then the basis set is likely unusable.

Implements BasisSet.

## initCalculation()

void initCalculation | ( |  | ) |

Initialize the calculation, this must normally be done before anything.

## slaterIndices()

std::vector< int > & slaterIndices | ( |  | ) |

Accessors for the various properties of the SlaterSet.

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

- slaterset.h