File EnergyWeightedDensityMatrixBuilder.h

Copyright

This code is licensed under the 3-clause BSD license.

Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.

See LICENSE.txt for details.

namespace Scine

This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.

This header contains alias definitions defining which classes to use for the different degrees of derivatives.

namespace Utils
namespace LcaoUtil
class EnergyWeightedDensityMatrixBuilder
#include <EnergyWeightedDensityMatrixBuilder.h>

Class to generate energy-weighted density matrices for given occupations

Public Functions

EnergyWeightedDensityMatrixBuilder(const MolecularOrbitals &coefficientMatrix, const SingleParticleEnergies &orbitalEnergies)
Eigen::MatrixXd generateRestrictedForNumberElectrons(int nElectrons) const

Generates a restricted energy-weighted density matrix for the given number of electrons.

Eigen::MatrixXd generateUnrestrictedForNumberElectronsAndMultiplicity(int nElectrons, int spinMultiplicity) const

Generates an unrestricted energy-weighted density matrix for the given number of electrons and corresponding spin multiplicity.

Eigen::MatrixXd generateUnrestrictedForNumberAlphaAndBetaElectrons(int nAlpha, int nBeta) const

Generates an unrestricted energy-weighted density matrix for the given number of alpha and beta electrons.

Eigen::MatrixXd generateRestrictedForSpecifiedOrbitals(const std::vector<int> &doublyOccupiedOrbitals) const

Generates a restricted energy-weighted density matrix from specified molecular orbitals (eigenvectors), which will be doubly filled.

Eigen::MatrixXd generateUnrestrictedForSpecifiedOrbitals(const std::vector<int> &alphaOrbitals, const std::vector<int> &betaOrbitals) const

Generates an unrestricted energy-weighted density matrix from specified molecular orbitals (eigenvectors).

Private Functions

Eigen::MatrixXd calculateSingleOrbitalEWDensity(const Eigen::VectorXd &eigenvector, double orbitalEnergy) const

Private Members

const MolecularOrbitals &coefficientMatrix_
const SingleParticleEnergies &orbitalEnergies_