C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
structure::QuantumSystem< RANK > Class Template Referenceabstract

The abstract interface every system has to present towards the quantum trajectory drivers quantumtrajectory::MCWF_Trajectory, quantumtrajectory::EnsembleMCWF, and quantumtrajectory::Master. More...

#include <QuantumSystem.h>

+ Inheritance diagram for structure::QuantumSystem< RANK >:
+ Collaboration diagram for structure::QuantumSystem< RANK >:

Public Types

typedef boost::shared_ptr< const QuantumSystemPtr
 Many of the basic template classes in the framework act as template metafunctions returning a shared pointer to their own type. More...
 
typedef Base::Dimensions Dimensions
 
- Public Types inherited from DimensionsBookkeeper< RANK >
typedef ExtTiny< RANK > Dimensions
 The dimensions as a static vector of size N_RANK.
 

Public Member Functions

 QuantumSystem (const Dimensions &dimensions)
 Construction from a set of Dimensions.
 
double highestFrequency () const
 The fastest timescale of the system for ODE stepping.
 
std::ostream & displayParameters (std::ostream &os) const
 Communicating system parameters towards the user.
 
- Public Member Functions inherited from DimensionsBookkeeper< RANK >
 DimensionsBookkeeper (mpl::bool_< IS_CONST >=mpl::false_())
 Constructor usable only in the IS_CONST=false case. More...
 
 DimensionsBookkeeper (const Dimensions &dimensions)
 Standard constructor usable also in the IS_CONST=true case.
 
const DimensionsgetDimensions () const
 Get the Dimensions vector.
 
size_t getTotalDimension () const
 Get the total dimension of a system of arbitrary arity.
 
size_t getDimension (mpl::int_< RANK >=mpl::int_< 1 >()) const
 Get the (single) dimension for a unary system.
 
size_t getDimension (size_t i) const
 
void setDimensions (const Dimensions &dimensions)
 This will work only in the non-const case.
 

Related Functions

(Note that these are not member functions.)

template<int RANK>
const Exact< RANK >::Ptr qse (boost::shared_ptr< const QuantumSystem< RANK > > quantumSystem)
 Dynamic cast to a shared pointer to Exact More...
 
template<int RANK>
const Hamiltonian< RANK >::Ptr qsh (boost::shared_ptr< const QuantumSystem< RANK > > quantumSystem)
 Dynamic cast to a shared pointer to Hamiltonian More...
 
template<int RANK>
const Liouvillean< RANK >::Ptr qsl (boost::shared_ptr< const QuantumSystem< RANK > > quantumSystem)
 Dynamic cast to a shared pointer to Liouvillean More...
 
template<int RANK>
const Averaged< RANK >::Ptr qsa (boost::shared_ptr< const QuantumSystem< RANK > > quantumSystem)
 Dynamic cast to a shared pointer to Averaged More...
 

Additional Inherited Members

- Static Public Attributes inherited from DimensionsBookkeeper< RANK >
static const int N_RANK
 Arity of the Hilbert space.
 
static const int DIMESIONS_BOOKKEEPER_RANK
 Ditto (to break ambiguity if a class is derived from another base featuring N_RANK).
 

Detailed Description

template<int RANK>
class structure::QuantumSystem< RANK >

The abstract interface every system has to present towards the quantum trajectory drivers quantumtrajectory::MCWF_Trajectory, quantumtrajectory::EnsembleMCWF, and quantumtrajectory::Master.

Describes an entity that has dimensions in a Hilbert space of arity RANK, it may have some frequencies, and some parameters to communicate towards the user.

Template Parameters
RANKarity of the Hilbert space
Note
The class features the non-virtual interface idiom, which is ubiquitous in the framework.

Definition at line 25 of file QuantumSystem.h.

Member Typedef Documentation

template<int RANK>
typedef boost::shared_ptr<const QuantumSystem> structure::QuantumSystem< RANK >::Ptr

Many of the basic template classes in the framework act as template metafunctions returning a shared pointer to their own type.

Todo:
define Ptr types outside classes as template aliases eg QuantumSystem::Ptr => QuantumSystemPtr

Definition at line 30 of file QuantumSystem.h.

Friends And Related Function Documentation

template<int RANK>
const Averaged< RANK >::Ptr qsa ( boost::shared_ptr< const QuantumSystem< RANK > >  quantumSystem)
related

Dynamic cast to a shared pointer to Averaged

Definition at line 74 of file Structure.h.

template<int RANK>
const Exact< RANK >::Ptr qse ( boost::shared_ptr< const QuantumSystem< RANK > >  quantumSystem)
related

Dynamic cast to a shared pointer to Exact

Definition at line 53 of file Structure.h.

template<int RANK>
const Hamiltonian< RANK >::Ptr qsh ( boost::shared_ptr< const QuantumSystem< RANK > >  quantumSystem)
related

Dynamic cast to a shared pointer to Hamiltonian

Definition at line 60 of file Structure.h.

template<int RANK>
const Liouvillean< RANK >::Ptr qsl ( boost::shared_ptr< const QuantumSystem< RANK > >  quantumSystem)
related

Dynamic cast to a shared pointer to Liouvillean

Definition at line 67 of file Structure.h.


The documentation for this class was generated from the following files: