Class Scine::Utils::LcaoUtil::DensityMatrixBuilder¶
-
class
DensityMatrixBuilder
¶ Class to generate density matrices from coefficient matrices. Different possibilities to do so:
Specify the number of electrons
Specify which orbitals to consider
Specify the number of electrons and some number of swaps TODO: Use the class MolecularOrbitalsManipulation instead of reimplementing the mixes and swaps
Public Types
-
using
PartlyOccupiedOrbital
= std::pair<int, double>¶ Alias for partly occupied orbital, given by orbital index and its occupation [0-1] (UHF) vs [0-2] (RHF).
Public Functions
-
DensityMatrix
generateRestrictedForNumberElectrons
(int nElectrons) const¶ Generates a restricted density matrix for the given number of electrons.
-
DensityMatrix
generateUnrestrictedForNumberElectronsAndMultiplicity
(int nElectrons, int spinMultiplicity) const¶ Generates an unrestricted density matrix for the given number of electrons and corresponding spin multiplicity.
-
DensityMatrix
generateUnrestrictedForNumberAlphaAndBetaElectrons
(int nAlpha, int nBeta) const¶ Generates an unrestricted density matrix for the given number of alpha and beta electrons.
-
DensityMatrix
generateRestrictedForSpecifiedOrbitals
(const std::vector<int> &doublyOccupiedOrbitals) const¶ Generates a restricted density matrix from specified molecular orbitals (eigenvectors), which will be doubly filled.
-
DensityMatrix
generateUnrestrictedForSpecifiedOrbitals
(const std::vector<int> &alphaOrbitals, const std::vector<int> &betaOrbitals) const¶ Generates an unrestricted density matrix from specified molecular orbitals (eigenvectors).
-
DensityMatrix
generateRestrictedWithSwaps
(const std::vector<MolecularOrbitalsManipulation::DeprecatedSwap> &swaps, int nElectrons) const¶ Generates a restricted density matrix with given Swaps.
- Pre
nElectrons is even.
-
DensityMatrix
generateUnrestrictedWithSwaps
(const std::vector<MolecularOrbitalsManipulation::DeprecatedSwap> &alphaSwaps, const std::vector<MolecularOrbitalsManipulation::DeprecatedSwap> &betaSwaps, int nAlpha, int nBeta) const¶ Generates an unrestricted density matrix with given Swaps.
-
DensityMatrix
generateRestrictedForSpecifiedPartlyOccupiedOrbitals
(const std::vector<PartlyOccupiedOrbital> &orbitals)¶ Generates a restricted density matrix from specified molecular orbitals (eigenvectors) and their occupation [0-2].
-
DensityMatrix
generateUnrestrictedForSpecifiedPartlyOccupiedOrbitals
(const std::vector<PartlyOccupiedOrbital> &alphaOrbitals, const std::vector<PartlyOccupiedOrbital> &betaOrbitals)¶ Generates an unrestricted density matrix from specified molecular orbitals (eigenvectors) and their occupation [0-1].
-
DensityMatrix
generateRestrictedWithMixing
(const std::vector<MolecularOrbitalsManipulation::DeprecatedMix> &mix, int nElectrons) const¶ Generates a restricted density matrix with given Mixing.
- Pre
nElectrons is even.
-
DensityMatrix
generateUnrestrictedWithMixing
(const std::vector<MolecularOrbitalsManipulation::DeprecatedMix> &alphaMix, const std::vector<MolecularOrbitalsManipulation::DeprecatedMix> &betaMix, int nAlpha, int nBeta) const¶ Generates an unrestricted density matrix with given Mixing.