AvogadroLibs 1.97.0
|
#include <slaterset.h>
Public Types | |
enum | slater { S , PX , PY , PZ , X2 , XZ , Z2 , YZ , XY , UU } |
![]() | |
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 () |
![]() | |
BasisSet () | |
virtual | ~BasisSet () |
virtual BasisSet * | clone () const =0 |
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 |
virtual unsigned int | molecularOrbitalCount (ElectronType type=Paired)=0 |
bool | homo (unsigned int n) |
unsigned int | homo () const |
bool | lumo (unsigned int n) |
unsigned int | lumo () const |
virtual bool | isValid ()=0 |
Additional Inherited Members | |
![]() | |
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.