Class Scine::Utils::LcaoMethod

class LcaoMethod : public Scine::Utils::SinglePointMethod

Base class describing a method based on a LCAO ansatz.

Subclassed by Scine::Utils::ScfMethod

Public Functions

virtual void initialize()

Initialize the method after the parameters have been set or loaded.

void calculate(Utils::derivativeType d)

Performs one single-point calculation of the energy.

Parameters
  • derivativesOrder: which derivative to calculate up to, if possible.

bool basisSetIsOrthogonal() const

Return

true if the basis set is orthogonal and the electronic structure is optimized in a normal eigenvalue problem, false if it is a generalized eigenvalue problem.

bool solvesOnlyOccupiedManifold() const

True if only the eigenpairs corresponding to the occupied MOs need to be calculated.

Subspace calculation is then performed with the Davidson-Liu Algorithm.

double getHomoLumoGap() const

Get the HOMO-LUMO gap (Unit: Hartree).

const AtomsOrbitalsIndexes &getAtomsOrbitalsIndexesHolder() const

Returns a const reference to the object containing information about which atoms have how many orbitals and what their indexes are.

const SingleParticleEnergies &getSingleParticleEnergies() const

Returns a const reference to the object containing information about single-particle energies.

const LcaoUtils::ElectronicOccupation &getElectronicOccupation() const

Returns a const reference to the object containing information about the electronic occupation.

void setElectronicOccupationGenerator(std::unique_ptr<LcaoUtils::ElectronicOccupationGenerator> &&electronicOccupationSetter)

Set how the electronic occupation is to be set. By default, the Aufbau principle is used.

void addElectronicContribution(std::shared_ptr<AdditiveElectronicContribution> contribution)

Adds an electronic contribution to the Fock matrix.

Protected Functions

void resizeLcaoMethodMatrices()

Resets the size of the different matrices. To be called during initialization of the specific method.