File RandomOrbitalMixer.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 
MultipleScfSolutions¶ - 
class 
RandomOrbitalMixer - #include <RandomOrbitalMixer.h>
Class to randomly mix randomly chosen molecular orbitals. In the restricted case, the alphaHomo_ and betaHomo_ are both holding the value for restrictedHomo_.
Public Functions
- 
RandomOrbitalMixer(MolecularOrbitals &orbitals, int nRestrictedElectrons) Constructor for the restricted case.
- 
RandomOrbitalMixer(MolecularOrbitals &orbitals, int nAlphaElectrons, int nBetaElectrons) Constructor for the unrestricted case.
- 
void 
mix()¶ 
- 
void 
setNumberMixes(int numberMixes)¶ 
- 
void 
setMaximalMixAngle(double maxAngle)¶ 
- 
void 
setMinimalMixAngle(double minAngle)¶ 
- 
void 
considerOnlyOrbitalsCloseToFrontierOrbitals(int numberToConsider) - numberToConsider Will be the same both for occupied and virtual orbitals.
 
- 
void 
considerAllOrbitals()¶ 
Public Static Functions
- 
static std::mt19937 &
getRandomNumberGenerator()¶ 
Private Functions
- 
void 
checkValidNumberOfMixes()¶ 
- 
std::vector<LcaoUtil::MolecularOrbitalsManipulation::Mix> 
calculateMixes(int homoIndex) const¶ 
- 
std::vector<int> 
getRandomOccupiedOrbitals(int homoIndex) const¶ 
- 
std::vector<int> 
getRandomVirtualOrbitals(int homoIndex) const¶ 
- 
std::vector<int> 
selectUniqueRandomNumbers(int min, int max) const¶ 
- 
std::vector<LcaoUtil::MolecularOrbitalsManipulation::Mix> 
createMixes(const std::vector<int> &occ, const std::vector<int> &virt) const¶ 
- 
int 
calculateMaximalVirtualIndex(int homoIndex) const¶ 
- 
int 
calculateMinimalOccupiedIndex(int homoIndex) const¶ 
- 
bool 
invalidMolecularOrbitals(const MolecularOrbitals &mo) const¶ 
 - 
 
- 
class 
 
- 
namespace 
 
- 
namespace