7 #ifndef SPARROW_ORBITALSTEERINGSETTINGS_H
8 #define SPARROW_ORBITALSTEERINGSETTINGS_H
16 static constexpr
const char* numberOrbitalsToMixKey =
"number_orbitals_to_mix";
17 static constexpr
const char* mixingFrequencyKey =
"mixing_frequency";
18 static constexpr
const char* minimalAngleKey =
"minimal_mixing_angle";
19 static constexpr
const char* maximalAngleKey =
"maximal_mixing_angle";
20 static constexpr
const char* numberOrbitalsToConsiderKey =
"number_orbitals_to_consider";
24 static constexpr
const int SameNumberOfIterations = 0;
25 static constexpr
const int AllOrbitals = 0;
26 static constexpr
const char* SameMixer =
"same_mixer";
31 _fields.push_back(numberOrbitalsToMixKey, std::move(numberOrbitalsToMix));
34 "Sets after how many single point calculations a mixing occurs.");
37 _fields.push_back(mixingFrequencyKey, std::move(mixingFrequency));
43 _fields.push_back(minimalAngleKey, std::move(minimalAngle));
49 _fields.push_back(maximalAngleKey, std::move(maximalAngle));
52 "Sets the number of orbitals from which to sample the mixing pairs.");
54 numberOrbitalsToConsider.
setMinimum(AllOrbitals);
55 _fields.push_back(numberOrbitalsToConsiderKey, std::move(numberOrbitalsToConsider));
58 maxScfIterations.
setMinimum(SameNumberOfIterations);
61 _fields.push_back(Utils::SettingsNames::maxScfIterations, std::move(maxScfIterations));
65 mixer.
addOption(Utils::SettingsNames::ScfMixers::noMixer);
66 mixer.
addOption(Utils::SettingsNames::ScfMixers::diis);
67 mixer.
addOption(Utils::SettingsNames::ScfMixers::ediis);
68 mixer.
addOption(Utils::SettingsNames::ScfMixers::ediisDiis);
71 _fields.push_back(Utils::SettingsNames::mixer, mixer);
79 #endif // SPARROW_ORBITALSTEERINGSETTINGS_H
void setDefaultValue(double def)
void setMinimum(double min)
void setDefaultOption(const std::string &def)
Definition: OrbitalSteeringSettings.h:22
void addOption(std::string option)
void setMaximum(double max)
void setDefaultValue(int def)