C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
BinarySystem< IS_EX, IS_HA, IS_LI > Class Template Reference

Implements the simplest composite system: a binary where a single binary::Interaction couples two free systems. More...

#include <BinarySystem.h>

+ Inheritance diagram for BinarySystem< IS_EX, IS_HA, IS_LI >:
+ Collaboration diagram for BinarySystem< IS_EX, IS_HA, IS_LI >:

Public Types

typedef mpl::if_c< IS_EX,binary::Exact,binary::EmptyBase< binary::Exact > >::type ExactBase
 
typedef mpl::if_c< IS_HA,binary::Hamiltonian,binary::EmptyBase< binary::Hamiltonian > >::type HamiltonianBase
 
typedef mpl::if_c< IS_LI,binary::Liouvillean,binary::EmptyBase< binary::Liouvillean > >::type LiouvilleanBase
 
typedef structure::Interaction< 2 > Interaction
 
- Public Types inherited from structure::QuantumSystem< 2 >
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

 BinarySystem (Interaction::Ptr)
 
- Public Member Functions inherited from structure::QuantumSystem< 2 >
 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.
 

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).
 
- Protected Types inherited from binary::Base
typedef structure::Averaged< 1 > Av1
 
typedef structure::Averaged< 2 > Av2
 
- Protected Member Functions inherited from binary::Base
 Base (Interaction::Ptr)
 Constructor from an Interaction instant.
 
const SSFgetFree0 () const
 
const SSFgetFree1 () const
 
const SSIgetIA () const
 

Detailed Description

template<bool IS_EX, bool IS_HA, bool IS_LI>
class BinarySystem< IS_EX, IS_HA, IS_LI >

Implements the simplest composite system: a binary where a single binary::Interaction couples two free systems.

The class is meant as a substitute for the full Composite in this simplest case, for saving compile-time (and, maybe, also runtime) resources.

It inherits unconditionally from binary::Base, so that it has the structure::QuantumSystem interface necessary to be evolved by quantum trajectories. All other interfaces are added conditionally:

Template Parameters
IS_EXgoverns whether the class should inherit from binary::Exact
IS_HAgoverns whether the class should inherit from binary::Hamiltonian
IS_LIgoverns whether the class should inherit from binary::Liouvillean

If IS_EX is true, the class inherits from binary::Exact, otherwise from binary::EmptyBase, and so on.

Definition at line 187 of file BinarySystem.h.


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