Scine::Sparrow  5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
UvVisCalculator.h
Go to the documentation of this file.
1 
7 #ifndef SPARROW_UVVISCALCULATOR_H
8 #define SPARROW_UVVISCALCULATOR_H
9 
11 #include <Utils/Typenames.h>
12 #include <fstream>
13 #include <memory>
14 
15 namespace Scine {
16 namespace Core {
17 class CalculatorWithReference;
18 class State;
19 } // namespace Core
20 namespace Utils {
21 class Settings;
22 class Results;
23 } // namespace Utils
24 namespace Sparrow {
25 namespace RealTimeSpectroscopy {
26 
27 class Spectrum;
28 class GuessPropagator;
29 
31  public:
33  explicit UvVisCalculator(std::shared_ptr<Utils::Settings> settings);
34  ~UvVisCalculator();
35 
36  void initialize(const Utils::ElementTypeCollection& elements);
37  void modifyPositions(const Utils::PositionCollection& positions);
44  void updateState(std::shared_ptr<Core::State> state);
45  Utils::Settings& settings();
46  const Utils::Settings& settings() const;
47 
48  private:
49  void createReferenceCalculator();
50  void createExcitedStatesCalculator();
51  std::shared_ptr<LinearResponseCalculator> calculator_;
52  std::unique_ptr<GuessPropagator> guessPropagator_;
53  std::unique_ptr<std::ofstream> sizeOutput_;
54  std::shared_ptr<LinearResponseCalculator::GuessSpecifier> lastExcitedStates_;
55  std::shared_ptr<Utils::Settings> settings_;
56 };
57 
58 } // namespace RealTimeSpectroscopy
59 } // namespace Sparrow
60 } // namespace Scine
61 
62 #endif // SPARROW_UVVISCALCULATOR_H
Spectrum calculate(const Utils::PositionCollection &positions)
Calculates an UV/VIS spectrum from a set of positions. Care must be taken in calling code that the da...
Definition: UvVisCalculator.cpp:110