File ElectronicOccupationGenerator.h

Copyright

This code is licensed under the 3-clause BSD license.

Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.

See LICENSE.txt for details.

namespace Scine

This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.

This header contains alias definitions defining which classes to use for the different degrees of derivatives.

namespace Utils
namespace LcaoUtils
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::LcaoUtils::AufbauPrincipleOccupationGenerator

Public Functions

virtual ~ElectronicOccupationGenerator()
void setMethod(LcaoMethod *method)
ElectronicOccupation generateOccupation()
void newScfCycleStarted()

Notify that a new SCF cycle has started, allows to reinitialize some members if necessary.

Protected Attributes

LcaoMethod *method_ = nullptr

Private Functions

virtual ElectronicOccupation generateOccupationImpl() = 0
virtual void newScfCycleStartedImpl()
bool occupationFulfillsRequirements(const ElectronicOccupation &occupation)