Scine::Sparrow  5.1.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
LinearResponseSettings.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_LINEARRESPONSESETTINGS_H
9 #define SPARROW_LINEARRESPONSESETTINGS_H
10 
11 #include <Utils/Settings.h>
14 
15 namespace {
16 static constexpr const char* convergence = "convergence";
17 }
18 
19 namespace Scine {
20 namespace Sparrow {
26  public:
27  LinearResponseSettings() : Settings("LinearResponseSettings") {
28  Utils::UniversalSettings::IntDescriptor numberOfEigenstates("Sets the number of desired Eigenstates.");
29  numberOfEigenstates.setMinimum(0);
30  numberOfEigenstates.setDefaultValue(1);
31 
32  Utils::UniversalSettings::IntDescriptor initialSubspaceDimension(
33  "Sets the initial space dimension to use in the Davidson diagonalizer.");
34  initialSubspaceDimension.setMinimum(1);
35  initialSubspaceDimension.setDefaultValue(1);
36 
37  Utils::UniversalSettings::IntDescriptor maxDavidsonIterations(
38  "Sets the maximal iteration number for the iterative diagonalizer.");
39  initialSubspaceDimension.setMinimum(0);
40  initialSubspaceDimension.setDefaultValue(0);
41 
43  "Determines the spin block to calculate in the TD-DFTB Configuration State Functions implementation.");
44  spinBlock.addOption(Utils::SettingsNames::SpinBlocks::singlet);
45  spinBlock.addOption(Utils::SettingsNames::SpinBlocks::triplet);
46  spinBlock.addOption(Utils::SettingsNames::SpinBlocks::singletAndTriplet);
47  spinBlock.setDefaultOption(Utils::SettingsNames::SpinBlocks::singlet);
48 
50  "Sets maximum amount of memory that is allowed for the calculation.");
51  maxMemory.setDefaultValue(4.0);
52 
53  Utils::UniversalSettings::DoubleDescriptor convergenceCriterionDavidson(
54  "The convergence threshold for the Davidson solver.");
55  convergenceCriterionDavidson.setDefaultValue(1.0e-5);
56  convergenceCriterionDavidson.setMinimum(std::numeric_limits<double>::min());
57 
58  Utils::UniversalSettings::OptionListDescriptor gepAlgorithm("Algorithm to compute the stable Generalize"
59  "Eigenvalue Problem Ax=lBx when B is almost singular.");
60  gepAlgorithm.addOption("standard");
61  gepAlgorithm.addOption("cholesky");
62  gepAlgorithm.addOption("simultaneous_diag");
63  gepAlgorithm.setDefaultOption("standard");
64 
65  _fields.push_back(Utils::SettingsNames::numberOfEigenstates, std::move(numberOfEigenstates));
66  _fields.push_back(Utils::SettingsNames::initialSubspaceDimension, std::move(initialSubspaceDimension));
67  _fields.push_back(Utils::SettingsNames::spinBlock, std::move(spinBlock));
68  _fields.push_back(Utils::SettingsNames::maxMemory, std::move(maxMemory));
69  _fields.push_back(Utils::SettingsNames::maxDavidsonIterations, std::move(maxDavidsonIterations));
70  _fields.push_back(convergence, std::move(convergenceCriterionDavidson));
71  _fields.push_back("gep_algo", std::move(gepAlgorithm));
72 
73  resetToDefaults();
74  }
75 };
76 } // namespace Sparrow
77 } // namespace Scine
78 
79 #endif // SPARROW_LINEARRESPONSESETTINGS_H
Generic settings for linear response methods, i.e. CIS and TD-DFTB.
Definition: LinearResponseSettings.h:25