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

BasisSet contains basis set data. More...

#include <avogadro/core/basisset.h>

Inheritance diagram for BasisSet:
GaussianSet SlaterSet

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 BasisSetclone () const =0
 
virtual void setElectronCount (unsigned int n, ElectronType type=Paired)
 
unsigned int electronCount (ElectronType type=Paired) const
 
void setMolecule (Molecule *molecule_)
 
Moleculemolecule ()
 
const Moleculemolecule () 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 = {}
 
Moleculem_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 ( )
virtualdefault

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
nThe number of electrons in the BasisSet.
typeThe type of the electrons (Alpha, Beta, or Paired).

◆ electronCount()

unsigned int electronCount ( ElectronType type = Paired) const
Parameters
typeThe 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
energiesThe vector containing energies for the MOs of type
typeThe type of the electrons being set.

◆ setMolecularOrbitalOccupancy()

void setMolecularOrbitalOccupancy ( const std::vector< unsigned char > & occ,
ElectronType type = Paired )
Parameters
occThe occupancies for the MOs of type.
typeThe 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: