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
CISMatrixAOFockBuilderFactory.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_CISAOFOCKBUILDERFACTORY_H
9 #define SPARROW_CISAOFOCKBUILDERFACTORY_H
10 
11 #include "CISMatrixAOFockBuilder.h"
12 namespace Scine {
13 namespace Sparrow {
14 
15 template<Utils::Reference restrictedness>
17  public:
18  static std::shared_ptr<CISMatrixAOFockBuilderBase<restrictedness>>
19  createAOFockBuilder(const Utils::SpinTransition spinBlock, CISData cisData, const ExcitedStatesParam& excitedStatesParam) {
20  switch (spinBlock) {
21  case Utils::SpinTransition::Singlet:
22  return std::make_shared<CISMatrixAOFockBuilder<restrictedness, Utils::SpinTransition::Singlet>>(
23  std::move(cisData), excitedStatesParam);
24  case Utils::SpinTransition::Triplet:
25  return std::make_shared<CISMatrixAOFockBuilder<restrictedness, Utils::SpinTransition::Triplet>>(
26  std::move(cisData), excitedStatesParam);
27  default:
28  throw std::runtime_error("Invalid spin-block argument in CISMatrixAOFockBuilderFactory.");
29  }
30  }
31 };
32 } // namespace Sparrow
33 } // namespace Scine
34 
35 #endif // SPARROW_CISAOFOCKBUILDERFACTORY_H
Definition: TimeDependentUtils.h:22
Definition: CISMatrixAOFockBuilderFactory.h:16
This class contains the infos needed to perform a CIS calculation. This way excited states properties...
Definition: CISData.h:24