Scine::Sparrow  5.1.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Scine::Sparrow::TransitionChargesCalculator Class Reference
Collaboration diagram for Scine::Sparrow::TransitionChargesCalculator:
Collaboration graph

Public Member Functions

 TransitionChargesCalculator (const Utils::MolecularOrbitals &molecularOrbitals, const Eigen::MatrixXd &overlapMatrix, const Utils::AtomsOrbitalsIndexes &aoIndex)
 
void fillOverlapProductMatrix ()
 Prepares the intermediate matrix S*c This function must be called if a restricted calculation was run and unrestricted quantities are needed. Or whenever the intermediate needs to be reupdated (changes in molecularOrbitals or overlap matrix).
 
std::vector< Eigen::MatrixXd > calculateMORestrictedAtomicChargeMatrices () const
 Calculates the nAtom matrices with element q^A_{ij} with i,j all the molecular orbitals. q^A_ij is the partitioned transition charge from orbital i to j on the atom A. More...
 
std::vector< Eigen::MatrixXd > calculateMOUnrestrictedAtomicChargeMatrices () const
 
template<Utils::Reference restrictedness>
Eigen::MatrixXd calculateAtomicTransitionChargeMatrices (const Utils::LcaoUtils::ElectronicOccupation &) const
 Calculates the nAtom matrices with element q^A_{ij} with i,j in the occ/vir block. q^A_ij is the partitioned transition charge from orbital i to j on the atom A. Assumes Aufbau construction. More...
 
Eigen::MatrixXd calculateRestrictedTransitionChargeMatrices (const Utils::LcaoUtils::ElectronicOccupation &occupation) const
 Calculates the nAtomicOrbitals matrices with element q^{ij} with i,j all the molecular orbitals. q^mu_ij is the partitioned transition charge from orbital i to j due to atomic orbital mu. More...
 
Eigen::MatrixXd calculateUnrestrictedTransitionChargeMatrices (const Utils::LcaoUtils::ElectronicOccupation &occupation) const
 Calculates the nAtomicOrbitals matrices with element q^{ij} with i,j all the molecular orbitals. q^mu_ij is the partitioned transition charge from orbital i to j due to atomic orbital mu. More...
 

Member Function Documentation

template<Utils::Reference restrictedness>
Eigen::MatrixXd Scine::Sparrow::TransitionChargesCalculator::calculateAtomicTransitionChargeMatrices ( const Utils::LcaoUtils::ElectronicOccupation ) const
inline

Calculates the nAtom matrices with element q^A_{ij} with i,j in the occ/vir block. q^A_ij is the partitioned transition charge from orbital i to j on the atom A. Assumes Aufbau construction.

Returns
A N_{transitions}xN_{Atoms} Eigen::Matrix containing the relative transition charge.
Template Parameters
restrictednessWhether restricted or unrestricted charges needed.

Implemented according to A. Dominguez, B. Aradi, T. Frauenheim, V. Lutsker, T.A. Niehaus, Extensions of the Time-Dependent Density Functional Based Tight-Binding Approach, 2013

q_{A}^ = 1/2 * (c_^ * c'_^{, T} + c'_^ * c_^{, T}) A: Atomic index. l: Orbital quantum number. q_{A}^: Transition charge matrix for spin projection . : all atomic orbital indices centered on the atom A. c_^: Matrix with the molecular orbital coefficients for atomic orbitals and spin projection . c' = c*S. S: overlap matrix.

std::vector< Eigen::MatrixXd > Scine::Sparrow::TransitionChargesCalculator::calculateMORestrictedAtomicChargeMatrices ( ) const

Calculates the nAtom matrices with element q^A_{ij} with i,j all the molecular orbitals. q^A_ij is the partitioned transition charge from orbital i to j on the atom A.

Returns
A std::vector of size N_{Atoms}, containing for each element an MOxMO matrix.
Eigen::MatrixXd Scine::Sparrow::TransitionChargesCalculator::calculateRestrictedTransitionChargeMatrices ( const Utils::LcaoUtils::ElectronicOccupation occupation) const

Calculates the nAtomicOrbitals matrices with element q^{ij} with i,j all the molecular orbitals. q^mu_ij is the partitioned transition charge from orbital i to j due to atomic orbital mu.

Returns
A N_{transitions}xN_{AOs} Eigen::Matrix containing the relative transition charge.
Eigen::MatrixXd Scine::Sparrow::TransitionChargesCalculator::calculateUnrestrictedTransitionChargeMatrices ( const Utils::LcaoUtils::ElectronicOccupation occupation) const

Calculates the nAtomicOrbitals matrices with element q^{ij} with i,j all the molecular orbitals. q^mu_ij is the partitioned transition charge from orbital i to j due to atomic orbital mu.

Implemented according to A. Dominguez, B. Aradi, T. Frauenheim, V. Lutsker, T.A. Niehaus, Extensions of the Time-Dependent Density Functional Based Tight-Binding Approach, 2013

q_{A,l}^ = 1/2 * (c_^ * c'_^{, T} + c'_^ * c_^{, T}) A: Atomic index. l: Orbital quantum number. q_{A,l}^: Transition charge matrix for spin projection . : all atomic orbital indices in the set {A,l}. c_^: Matrix with the molecular orbital coefficients for atomic orbitals and spin projection . c' = c*S. S: overlap matrix.

Returns
A ((nOcc x nVir)^ + (nOcc x nVir)^) x nShellsTotal dimensional matrix (shell size is 1 per s orbital, 3 per p orbital, 5 for d,...), which contain as columns the linearized transition matrices containing the q_{A,l}^ elements.

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