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

SlaterSet Class. More...

#include <slaterset.h>

Inheritance diagram for SlaterSet:
BasisSet

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
 
SlaterSetclone () 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_)
 
Moleculemolecule ()
 
const Moleculemolecule () 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 = {}
 
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

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 ( )
overridedefault

Destructor.

Member Function Documentation

◆ clone()

SlaterSet * clone ( ) const
overridevirtual

Clone.

Implements BasisSet.

◆ addSlaterIndices()

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

Add a basis to the basis set.

Parameters
iIndex 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
tVector 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
zetasThe 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
mMatrix containing the overlap matrix for the basis.

◆ addEigenVectors()

bool addEigenVectors ( const Eigen::MatrixXd & e)

Add Eigen Vectors to the SlaterSet.

Parameters
eMatrix of the eigen vectors for the SlaterSet.

◆ addDensityMatrix()

bool addDensityMatrix ( const Eigen::MatrixXd & d)

Add the density matrix to the SlaterSet.

Parameters
dDensity matrix for the SlaterSet.

◆ molecularOrbitalCount()

unsigned int molecularOrbitalCount ( ElectronType type = Paired) const
overridevirtual
Returns
The number of molecular orbitals in the BasisSet.

Implements BasisSet.

◆ isValid()

bool isValid ( )
overridevirtual
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 GaussianSet.


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