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