Loading...
Searching...
No Matches
BasisSet Class Referenceabstract

BasisSet contains basis set data. More...

`#include <avogadro/core/basisset.h>`

Inheritance diagram for BasisSet:

## Public Types

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

| BasisSet ()=default
virtual | ~BasisSet ()=default
virtual BasisSet * | clone () const =0
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
virtual unsigned int | molecularOrbitalCount (ElectronType type=Paired) const =0
unsigned int | homo (ElectronType type=Paired) const
unsigned int | lumo (ElectronType type=Paired) const
virtual bool | isValid ()=0
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

## Protected Attributes

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

This is the base class for basis sets, and has two derived classes - GaussianSet and SlaterSet. It must be populated with data, with other classes capable of performing calculations on the data or writing it out.

## Constructor & Destructor Documentation

## BasisSet()

BasisSet | ( |  | ) |

default

Constructor.

## ~BasisSet()

virtual ~BasisSet | ( |  | ) |

virtual default

Destructor.

## Member Function Documentation

## clone()

virtual BasisSet * clone | ( |  | ) | const

pure virtual

Clone.

Implemented in GaussianSet, and SlaterSet.

## setElectronCount()

void setElectronCount | ( | unsigned int | n,
|  | ElectronType | type = Paired )

virtual

Set the number of electrons in the BasisSet.

Parameters

  n | The number of electrons in the BasisSet.
  type | The type of the electrons (Alpha, Beta, or Paired).

## electronCount()

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

Parameters

  type | The type of the electrons (Alpha, Beta, or Paired).

Returns
  The number of electrons in the molecule.

## setMolecule()

void setMolecule | ( | Molecule * | molecule_ | ) |

Set the molecule for the basis set.

## molecule()

Molecule * molecule | ( |  | ) |

Get the molecule this basis set belongs to.

## setName()

void setName | ( | const std::string & | name | ) |

Set the name of the basis set.

## name()

std::string name | ( |  | ) | const

Get the name of the basis set.

## setTheoryName()

void setTheoryName | ( | const std::string & | name | ) |

Set the name of the basis set.

## theoryName()

std::string theoryName | ( |  | ) | const

Get the name of the basis set.

## molecularOrbitalCount()

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

pure virtual

Returns
  The number of molecular orbitals in the BasisSet.

Implemented in GaussianSet, and SlaterSet.

## homo()

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

Returns
  The molecular orbital number corresponding to the HOMO orbital.

## lumo()

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

Returns
  The molecular orbital number corresponding to the LUMO orbital.

## isValid()

virtual bool isValid | ( |  | ) |

pure virtual

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

Implemented in GaussianSet, and SlaterSet.

## symmetryLabels()

std::vector< std::string > symmetryLabels | ( | ElectronType | type = Paired | ) | const

Returns
  the orbital symmetry labels (if they exist) for the MOs

## setSymmetryLabels()

void setSymmetryLabels | ( | const std::vector< std::string > & | labels,
|  | ElectronType | type = Paired )

Set the orbital symmetry labels (a1, t2g, etc.) for the molecular orbitals

## setMolecularOrbitalEnergy()

void setMolecularOrbitalEnergy | ( | const std::vector< double > & | energies,
|  | ElectronType | type = Paired )

Parameters

  energies | The vector containing energies for the MOs of type
  type | The type of the electrons being set.

## setMolecularOrbitalOccupancy()

void setMolecularOrbitalOccupancy | ( | const std::vector< unsigned char > & | occ,
|  | ElectronType | type = Paired )

Parameters

  occ | The occupancies for the MOs of type.
  type | The type of the electrons being set.

## Member Data Documentation

## m_electrons

std::array<unsigned int, 2> m_electrons = {}

protected

Total number of electrons, 0 is alpha electrons and 1 is beta electrons. For closed shell calculations alpha is doubly occupied and there are no beta electrons.

## m_molecule

Molecule* m_molecule = nullptr

protected

The Molecule holds the atoms (and possibly bonds) read in from the output file. Most basis sets have orbitals around these atoms, but this is not necessarily the case.

## m_name

std::string m_name

protected

The name of the basis set, this is usually a string identifier referencing a standard basis set when only one is used.

## m_theoryName

std::string m_theoryName

protected

The name of the theory used for the calculation.

## m_symmetryLabels

std::vector<std::string> m_symmetryLabels[2]

protected

The orbital symmetry labels (if they exist) for the MOs

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

- basisset.h