|
AvogadroLibs
1.95.1
|
#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 () | |
| ~SlaterSet () override | |
| 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) 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 () | |
| virtual | ~BasisSet () |
| 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 |
| bool | homo (unsigned int n) |
| unsigned int | homo () const |
| bool | lumo (unsigned int n) |
| unsigned int | lumo () const |
Additional Inherited Members | |
Protected Attributes inherited from BasisSet | |
| unsigned int | m_electrons [2] |
| Molecule * | m_molecule |
| std::string | m_name |
| std::string | m_theoryName |
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.
| SlaterSet | ( | ) |
Constructor.
|
override |
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.
1.8.14