C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
QuantumSystem.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)
2 // -*- C++ -*-
4 #ifndef CPPQEDCORE_STRUCTURE_QUANTUMSYSTEM_H_INCLUDED
5 #define CPPQEDCORE_STRUCTURE_QUANTUMSYSTEM_H_INCLUDED
6 
7 #include "QuantumSystemFwd.h"
8 
9 #include "DimensionsBookkeeper.h"
10 
11 #include <boost/shared_ptr.hpp>
12 
13 
14 namespace structure {
15 
17 
24 template<int RANK>
25 class QuantumSystem : public DimensionsBookkeeper<RANK>
26 {
27 public:
29 
30  typedef boost::shared_ptr<const QuantumSystem> Ptr;
31 
32 private:
34 
35 public:
36  typedef typename Base::Dimensions Dimensions;
37 
38  explicit QuantumSystem(const Dimensions& dimensions) : Base(dimensions) {}
39 
40  virtual ~QuantumSystem() {}
41 
42  double highestFrequency ( ) const {return highestFrequency_v( );}
43  std::ostream& displayParameters(std::ostream& os) const {return displayParameters_v(os);}
44 
45 private:
46  virtual double highestFrequency_v( ) const = 0;
47  virtual std::ostream& displayParameters_v(std::ostream&) const = 0;
48 
49 };
50 
51 
52 } // structure
53 
54 #endif // CPPQEDCORE_STRUCTURE_QUANTUMSYSTEM_H_INCLUDED
QuantumSystem(const Dimensions &dimensions)
Construction from a set of Dimensions.
Definition: QuantumSystem.h:38
boost::shared_ptr< const QuantumSystem > Ptr
Many of the basic template classes in the framework act as template metafunctions returning a shared ...
Definition: QuantumSystem.h:30
Defines class of the same name.
Comprises modules for describing quantum systems.
Definition: Averaged.h:17
Stores and manipulates dimensions of constructs over composite Hilbert spaces of arbitrary arity...
std::ostream & displayParameters(std::ostream &os) const
Communicating system parameters towards the user.
Definition: QuantumSystem.h:43
The abstract interface every system has to present towards the quantum trajectory drivers quantumtraj...
Definition: QuantumSystem.h:25
ExtTiny< RANK > Dimensions
The dimensions as a static vector of size N_RANK.
double highestFrequency() const
The fastest timescale of the system for ODE stepping.
Definition: QuantumSystem.h:42