C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
SubSystem.h
Go to the documentation of this file.
1 // Copyright András Vukics 2006–2014. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.txt)
3 #ifndef CPPQEDCORE_COMPOSITES_SUBSYSTEM_H_INCLUDED
4 #define CPPQEDCORE_COMPOSITES_SUBSYSTEM_H_INCLUDED
5 
6 #include "SubSystemFwd.h"
7 
8 #include "Free.h"
9 #include "Interaction.h"
10 
11 #include "Structure.h"
12 
13 
14 namespace composite {
15 
16 
17 template<int RANK>
19 {
20 public:
21  typedef typename structure::Interaction<RANK>::Ptr InteractionPtr;
22 
23  explicit SubSystemsInteraction(InteractionPtr ia) : structure::QuantumSystemWrapper<RANK,false>(ia), ia_(ia) {}
24 
25  const InteractionPtr get() const {return ia_;}
26 
27 private:
28  InteractionPtr ia_;
29 
30 };
31 
32 
33 
35 {
36 public:
37  typedef structure::Free::Ptr FreePtr;
38 
39  explicit SubSystemFree(FreePtr free) : structure::QuantumSystemWrapper<1,false>(free,true), free_(free) {}
40 
41  SubSystemFree() : free_() {}
42 
43  const FreePtr get() const {return free_;}
44 
45 private:
46  FreePtr free_;
47 
48 };
49 
50 
51 } // composite
52 
53 
54 #endif // CPPQEDCORE_COMPOSITES_SUBSYSTEM_H_INCLUDED
Defines class of the same name.
A wrapper for Exact, Hamiltonian, Liouvillean, and Averaged.
Definition: Structure.h:134
Auxiliary tools to Composite.
Definition: Act.h:15
Defines structur::QuantumSystemWrapper.
Defines class of the same name.