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
oneCenterIntegralContainer.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_ONECENTERINTEGRALCONTAINER_H
9 #define SPARROW_ONECENTERINTEGRALCONTAINER_H
10 
12 #include <memory>
13 #include <vector>
14 
15 namespace Scine {
16 
17 namespace Utils {
18 enum class ElementType : unsigned;
19 }
20 
21 namespace Sparrow {
22 
23 namespace nddo {
24 class OneCenterTwoElectronIntegrals;
25 
33  public:
34  using integralMatrix_t = std::unique_ptr<OneCenterTwoElectronIntegrals>;
35  using Container = std::vector<integralMatrix_t>;
36 
39 
41  void clear();
42 
43  void set(Utils::ElementType e, integralMatrix_t mat);
44  const OneCenterTwoElectronIntegrals& get(Utils::ElementType e) const;
45 
46  private:
47  Container matrices_;
48 };
49 
50 inline const OneCenterTwoElectronIntegrals& OneCenterIntegralContainer::get(Utils::ElementType e) const {
51  return *matrices_[Utils::ElementInfo::Z(e)];
52 }
53 
54 } // namespace nddo
55 
56 } // namespace Sparrow
57 } // namespace Scine
58 #endif // SPARROW_ONECENTERINTEGRALCONTAINER_H
Definition: oneCenterTwoElectronIntegrals.h:32
static constexpr unsigned Z(const ElementType e) noexcept
Definition: oneCenterIntegralContainer.h:32