Namespace Scine::Utils::LcaoUtilΒΆ
-
namespace
LcaoUtil
Functions
-
void
getNumberUnrestrictedElectrons
(int &nAlpha, int &nBeta, int nElectrons, int spinMultiplicity) Calculate the numbers of alpha and beta electrons from the total number of electrons and the spin multiplicity.
-
void
solveRestrictedEigenvalueProblem
(const SpinAdaptedMatrix &fockMatrix, MolecularOrbitals &coefficientMatrix, SingleParticleEnergies &singleParticleEnergies)
-
void
solveRestrictedGeneralizedEigenvalueProblem
(const SpinAdaptedMatrix &fockMatrix, const Eigen::MatrixXd &overlapMatrix, MolecularOrbitals &coefficientMatrix, SingleParticleEnergies &singleParticleEnergies)
-
void
solveUnrestrictedEigenvalueProblem
(const SpinAdaptedMatrix &fockMatrix, MolecularOrbitals &coefficientMatrix, SingleParticleEnergies &singleParticleEnergies)
-
void
solveUnrestrictedGeneralizedEigenvalueProblem
(const SpinAdaptedMatrix &fockMatrix, const Eigen::MatrixXd &overlapMatrix, MolecularOrbitals &coefficientMatrix, SingleParticleEnergies &singleParticleEnergies)
-
void
calculateRestrictedDensityMatrix
(DensityMatrix &densityMatrix, const MolecularOrbitals &coefficientMatrix, int nElectrons)
-
void
calculateUnrestrictedDensityMatrices
(DensityMatrix &densityMatrix, const MolecularOrbitals &coefficientMatrix, int nElectrons, int spinMultiplicity)
-
void
calculateRestrictedEnergyWeightedDensityMatrix
(Eigen::MatrixXd &energyWeightedDensityMatrix, const MolecularOrbitals &coefficientMatrix, const SingleParticleEnergies &singleParticleEnergies, int nElectrons)
-
void
calculateUnrestrictedEnergyWeightedDensityMatrix
(Eigen::MatrixXd &energyWeightedDensityMatrix, const MolecularOrbitals &coefficientMatrix, const SingleParticleEnergies &singleParticleEnergies, int nElectrons, int spinMultiplicity)
-
void
calculateBondOrderMatrix
(Utils::BondOrderCollection &bondOrderMatrix, const DensityMatrix &densityMatrix, const Eigen::MatrixXd &overlapMatrix, const AtomsOrbitalsIndexes &aoIndexes) Computes the lower-triangular bond-order matrix for an non-orthogonal basis.
-
void
calculateOrthonormalBondOrderMatrix
(Utils::BondOrderCollection &bondOrderMatrix, const DensityMatrix &densityMatrix, const AtomsOrbitalsIndexes &aoIndexes) Computes the lower-triangular bond-order matrix for an orthogonal basis.
-
void
calculateOrthonormalAtomicCharges
(std::vector<double> &mullikenCharges, const std::vector<double> &coreCharges, const DensityMatrix &densityMatrix, const AtomsOrbitalsIndexes &aoIndexes)
-
void
calculateMullikenAtomicCharges
(std::vector<double> &mullikenCharges, const std::vector<double> &coreCharges, const DensityMatrix &densityMatrix, const Eigen::MatrixXd &overlapMatrix, const AtomsOrbitalsIndexes &aoIndexes)
-
class
DensityMatrixBuilder
- #include <DensityMatrixBuilder.h>
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
-
class
DensityMatrixGenerator
- #include <DensityMatrixGenerator.h>
Class to convert an electronic occupation and the corresponding molecular orbitals to a density matrix.
-
class
ElectronicOccupation
- #include <ElectronicOccupation.h>
Class to hold information about which molecular orbitals are occupied. TODO: Implement fractional occupation ?
-
class
ElectronicOccupationGenerator
- #include <ElectronicOccupationGenerator.h>
This interface generates an ElectronicOccupation instance, from which the density matrix can be generated (in combination with the molecular orbitals).
Subclassed by Scine::Utils::LcaoUtil::AufbauPrincipleOccupationGenerator
-
class
EnergyWeightedDensityMatrixBuilder
- #include <EnergyWeightedDensityMatrixBuilder.h>
Class to generate energy-weighted density matrices for given occupations
-
class
HFWaveFunctionOverlap
- #include <HFWaveFunctionOverlap.h>
Class to calculate the overlap between two HartreeFock-like wave functions.
-
class
HomoLumoGapCalculator
- #include <HomoLumoGapCalculator.h>
This class calculates a Homo-Lumo gap, given the single-particle energies and the electronic occupation. In the unrestricted case, puts returns energy difference between the orbitals irrespectively of whether they are alpha- or beta-polarized.
-
class
MolecularOrbitalsManipulation
- #include <MolecularOrbitalsManipulation.h>
Class for transformations on molecular orbitals.
-
void