|
AvogadroLibs 1.101.0
|
#include <slaterset.h>
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. | |
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.
| enum slater |
Enumeration of the Slater orbital types.
|
default |
Constructor.
|
overridedefault |
Destructor.
| bool addSlaterIndices | ( | const std::vector< int > & | i | ) |
Add a basis to the basis set.
| i | Index of the atom to add the Basis too. |
| bool addSlaterTypes | ( | const std::vector< int > & | t | ) |
Add the symmetry types for the orbitals.
| t | Vector containing the types of symmetry using the slater enum. |
| bool addZetas | ( | const std::vector< double > & | zetas | ) |
Add a STO to the supplied basis.
| zetas | The exponents of the STOs |
| bool addPQNs | ( | const std::vector< int > & | pqns | ) |
The PQNs for the orbitals.
| bool addOverlapMatrix | ( | const Eigen::MatrixXd & | m | ) |
The overlap matrix.
| m | Matrix containing the overlap matrix for the basis. |
| bool addEigenVectors | ( | const Eigen::MatrixXd & | e | ) |
| bool addDensityMatrix | ( | const Eigen::MatrixXd & | d | ) |
|
overridevirtual |
|
overridevirtual |
Implements BasisSet.
| void initCalculation | ( | ) |
Initialize the calculation, this must normally be done before anything.
| std::vector< int > & slaterIndices | ( | ) |
Accessors for the various properties of the GaussianSet.