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