Avogadro::Core::BasisSet#
-
class BasisSet#
BasisSet contains basis set data.
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.
- Author
Marcus D. Hanwell
Subclassed by GaussianSet, SlaterSet
Public Types
Public Functions
-
BasisSet() = default#
Constructor.
-
virtual ~BasisSet() = default#
Destructor.
-
inline virtual void setElectronCount(unsigned int n, ElectronType type = Paired)#
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).
-
inline 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.
-
inline void setName(const std::string &name)#
Set the name of the basis set.
-
inline std::string name() const#
Get the name of the basis set.
-
inline void setTheoryName(const std::string &name)#
Set the name of the basis set.
-
inline std::string theoryName() const#
Get the name of the basis set.
-
virtual unsigned int molecularOrbitalCount(ElectronType type = Paired) const = 0#
- Returns:
The number of molecular orbitals in the BasisSet.
-
inline unsigned int homo(ElectronType type = Paired) const#
- Returns:
The molecular orbital number corresponding to the HOMO orbital.
-
inline unsigned int lumo(ElectronType type = Paired) const#
- Returns:
The molecular orbital number corresponding to the LUMO orbital.
-
virtual bool isValid() = 0#
- Returns:
True of the basis set is valid, false otherwise. Default is true, if false then the basis set is likely unusable.
-
inline std::vector<std::string> symmetryLabels(ElectronType type = Paired) const#
- Returns:
the orbital symmetry labels (if they exist) for the MOs
-
inline void setSymmetryLabels(const std::vector<std::string> &labels, ElectronType type = Paired)#
Set the orbital symmetry labels (a1, t2g, etc.) for the molecular orbitals
-
inline void setMolecularOrbitalEnergy(const std::vector<double> &energies, ElectronType type = Paired)#
Set the molecular orbital energies, expected in Hartrees.
- Parameters:
energies – The vector containing energies for the MOs of type
type – The type of the electrons being set.
-
inline void setMolecularOrbitalOccupancy(const std::vector<unsigned char> &occ, ElectronType type = Paired)#
Set the molecular orbital occupancies.
- Parameters:
occ – The occupancies for the MOs of type.
type – The type of the electrons being set.
-
inline std::vector<double> &moEnergy(ElectronType type = Paired)#
-
inline std::vector<double> moEnergy(ElectronType type = Paired) const#
-
inline std::vector<unsigned char> &moOccupancy(ElectronType type = Paired)#
-
inline std::vector<unsigned char> moOccupancy(ElectronType type = Paired) const#
Protected Attributes
-
std::array<unsigned int, 2> m_electrons = {}#
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.
-
Molecule *m_molecule = nullptr#
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.
-
std::string m_name#
The name of the basis set, this is usually a string identifier referencing a standard basis set when only one is used.
-
std::string m_theoryName#
The name of the theory used for the calculation.
-
std::vector<std::string> m_symmetryLabels[2]#
The orbital symmetry labels (if they exist) for the MOs
-
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.