Class Scine::Utils::SCFMethod

class SCFMethod : public Scine::Utils::LCAOMethod

Base class for self-consistent-field methods.

Public Functions

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.

void addModifier(std::shared_ptr<SCFModifier> modifier, int priority = 5)

Adds a modifier to the SCF method. First checks whether the SCFModifier already exists. Will call the functions setMethod(…) and initialize of modifier.

Parameters
  • priority: Number from 0 (early) to 10 (late) to set when the modifier will be called compared to other ones.

void removeModifier(const std::shared_ptr<SCFModifier> &modifier)

Removes the SCF modifier.

void convergedCalculation(Utils::derivativeType d = Utils::derivativeType::first)

Performs a converged calculation of the energy (NB: will stop after max number of cycles).

int getNumberIterations() const

Returns the number of iterations that were performed for the energy calculation.

void setConvergenceCriteria(double c)

Set the convergence threshold for a SCF calculation (RMSD of density matrix)

double getConvergenceThreshold() const

Get the currently applied threshold for SCF calculation.

void resetConvergenceCheck()

Reset the convergence check; is useful if the starting density matrix in the SCF cycle is not the last one of the previous cycle.

void reinitializeDensityMatrixGuess()

Reset the density matrix.

DensityMatrix getDensityMatrixGuess() const

Returns the density matrix guess for the vurrent system

void evaluateDensity(Utils::derivativeType derivativeOrder)

Perform a calculation for the current density matrix without optimizing it.