File ElectronicOccupation.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
LcaoUtil -
class
ElectronicOccupation - #include <ElectronicOccupation.h>
Class to hold information about which molecular orbitals are occupied. TODO: Implement fractional occupation ?
Public Functions
-
int
numberRestrictedElectrons() const¶
-
int
numberOccupiedRestrictedOrbitals() const¶
-
int
numberAlphaElectrons() const¶
-
int
numberBetaElectrons() const¶
-
bool
isFilledUpFromTheBottom() const Returns true if the electrons all occupy the lowest orbitals.
-
bool
hasUnpairedRHFElectron() const¶
-
bool
isRestricted() const¶
-
bool
isUnrestricted() const¶
-
void
makeUnrestricted() From a restricted occupation, transform to an unrestricted occupation.
-
ElectronicOccupation
toUnrestricted() const¶
-
const std::vector<int> &
getFilledRestrictedOrbitals() const¶
-
const std::vector<int> &
getFilledAlphaOrbitals() const¶
-
const std::vector<int> &
getFilledBetaOrbitals() const¶
-
void
fillLowestRestrictedOrbitalsWithElectrons(int nElectrons)¶
-
void
fillLowestUnrestrictedOrbitals(int nAlphaElectrons, int nBetaElectrons)¶
-
void
fillSpecifiedRestrictedOrbitals(std::vector<int> occupiedRestrictedOrbitals)¶
-
void
fillSpecifiedUnrestrictedOrbitals(std::vector<int> occupiedAlphaOrbitals, std::vector<int> occupiedBetaOrbitals)¶
Private Functions
-
void
reset()¶
-
void
checkWhetherFilledFromBottom() const¶
-
std::vector<int>
generateOccupiedArrayFromNumberOfOccupiedOrbitals(int nOrbitals) const¶
Private Members
-
bool
restricted_= false¶
-
int
nRestrictedElectrons_= 0¶
-
int
nAlphaElectrons_= 0¶
-
int
nBetaElectrons_= 0¶
-
bool
hasUnpairedElectron_= false¶
-
bool
specifiedWithNumberElectrons_= false¶
-
bool
specifiedWithOrbitals_= false¶
-
std::vector<int>
filledRestrictedOrbitals_¶
-
std::vector<int>
filledAlphaOrbitals_¶
-
std::vector<int>
filledBetaOrbitals_¶
-
int
-
class
-
namespace
-
namespace