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

Describes interaction of Free elements. More...

#include <Interaction.h>

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

Classes

class  FreesProxy
 Shared-pointerizes the elements passed as Frees. More...
 

Public Types

typedef boost::shared_ptr< const InteractionPtr
 
typedef blitz::TinyVector< Free::Ptr, RANK > Frees
 A tiny vector of shared pointers to the Free objects between which the interaction is defined. More...
 
template<typename F >
using FreesTemplate = blitz::TinyVector< F, RANK >
 F must be convertible to Free::Ptr by cpputils::sharedPointerize
 
typedef DimensionsBookkeeper< RANK >::Dimensions Dimensions
 
- Public Types inherited from structure::DynamicsBase
typedef boost::shared_ptr< const DynamicsBasePtr
 
typedef std::tuple< std::string, double, double > RF
 name-value-multiplier tuple for a real frequency-like parameter
 
typedef std::tuple< std::string, dcomp,double > CF
 same for complex
 
typedef std::list< RFRealFreqs
 list of real frequency-like parameters
 
typedef std::list< CFComplexFreqs
 same for complex
 
typedef std::initializer_list< RFRealFreqsInitializer
 
typedef std::initializer_list< CFComplexFreqsInitializer
 
- Public Types inherited from DimensionsBookkeeper< RANK >
typedef ExtTiny< RANK > Dimensions
 The dimensions as a static vector of size N_RANK.
 

Public Member Functions

 Interaction (const Frees &frees, const RealFreqs &realFreqs=emptyRF, const ComplexFreqs &complexFreqs=emptyCF)
 
 Interaction (const Frees &frees, const ComplexFreqs &complexFreqs)
 
 Interaction (const Frees &frees, RealFreqsInitializer rf, ComplexFreqsInitializer cf={})
 
 Interaction (const Frees &frees, ComplexFreqsInitializer cf)
 
 Interaction (const Frees &frees, RF rf, CF cf=CF())
 
 Interaction (const Frees &frees, CF cf)
 
 Interaction (const Frees &frees, RealFreqsInitializer rf, CF cf)
 
 Interaction (const Frees &frees, RF rf, ComplexFreqsInitializer cf)
 
template<typename F0 , typename F1 , typename... RCF_type>
 Interaction (const F0 &f0, const F1 &f1, const RCF_type &...realAndComplexFreqs)
 
const FreesgetFrees () const
 
- Public Member Functions inherited from structure::DynamicsBase
 DynamicsBase (const RealFreqs &=emptyRF, const ComplexFreqs &=emptyCF)
 Straightforward constructor.
 
 DynamicsBase (const ComplexFreqs &complexFreqs)
 
 DynamicsBase (RealFreqsInitializer rf, ComplexFreqsInitializer cf={})
 Constructor with initializer lists.
 
 DynamicsBase (ComplexFreqsInitializer cf)
 
 DynamicsBase (RF rf, CF cf=CF())
 
 DynamicsBase (CF cf)
 
 DynamicsBase (RealFreqsInitializer rf, CF cf)
 
 DynamicsBase (RF rf, ComplexFreqsInitializer cf)
 
double highestFrequency () const
 Calculates the fastest timescale of the system from the frequencies stored in the lists.
 
std::ostream & displayParameters (std::ostream &) const
 Displays the content of the stored ostringstream followed by a call to displayMoreParameters.
 
- 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.
 

Additional Inherited Members

- Static Public Attributes inherited from structure::DynamicsBase
static const RealFreqs emptyRF
 
static const ComplexFreqs emptyCF
 
- 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).
 
- Protected Member Functions inherited from structure::DynamicsBase
std::ostringstream & getParsStream ()
 The stored std::ostringstream object, for constructors of clients to write parameters on.
 
virtual std::ostream & displayMoreParameters (std::ostream &) const
 In its default implementation, displayes the frequency-like parameters of the system in a nice format together with their names.
 
RealFreqsgetRealFreqs ()
 
ComplexFreqsgetComplexFreqs ()
 

Detailed Description

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

Describes interaction of Free elements.

Template Parameters
RANKArity of the interaction. (Not greater than the arity of the full system Hilbert space.)
Note
This is the simplest possible implementation allowing for interaction between frees only. If we are to achieve recursiveness, i.e. the possibility of nesting composite systems into even more composite ones, we have to allow interaction between composites as well. That is, between QuantumSystems in general. For this, Interaction should be even more templated taking compile-time vectors. These specify between which quantum numbers of the subsystems the interaction acts. As many compile-time vectors are needed as the number of subsystems.

No inheritance from QuantumSystem because it does not make sense to simulate such an element as describes an interaction alone. However, an interaction can have frequency-like parameters, hence the inheritance from DynamicsBase.

Definition at line 38 of file Interaction.h.

Member Typedef Documentation

template<int RANK>
typedef blitz::TinyVector<Free::Ptr,RANK> structure::Interaction< RANK >::Frees

A tiny vector of shared pointers to the Free objects between which the interaction is defined.

Note
The order of the Free objects is essential! (Cf. BinarySystem, Composite)

Definition at line 45 of file Interaction.h.


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