4 #ifndef CPPQEDCORE_STRUCTURE_FREE_H_INCLUDED
5 #define CPPQEDCORE_STRUCTURE_FREE_H_INCLUDED
9 #include "DensityOperatorFwd.h"
10 #include "StateVectorFwd.h"
13 #include "../quantumoperator/TridiagonalFwd.h"
15 #include "TridiagonalFwd.h"
23 #include <boost/shared_ptr.hpp>
30 namespace freesystem {
49 typedef boost::shared_ptr<const Free> Ptr;
56 Free(
size_t dim, ComplexFreqsInitializer cf) :
Free(dim,RealFreqsInitializer(),cf) {}
59 Free(
size_t dim, RealFreqsInitializer rf,
CF cf) :
Free(dim,rf,{cf}) {}
60 Free(
size_t dim,
RF rf, ComplexFreqsInitializer cf) :
Free(dim,{rf},cf) {}
84 #endif // CPPQEDCORE_STRUCTURE_FREE_H_INCLUDED
QuantumSystem(const Dimensions &dimensions)
Construction from a set of Dimensions.
Defines class of the same name.
Defines class of the same name.
Basically only a metafunction defining types for higher-level constructs of arity RANK ...
quantumdata::LazyDensityOperator< 1 > LazyDensityOperator
unary LazyDensityOperator
std::tuple< std::string, dcomp,double > CF
same for complex
Density operator of arbitrary arity.
quantumdata::Types< 1 >::StateVectorLow StateVectorLow
unary StateVectorLow
quantumdata::StateVector< 1 > StateVector
unary StateVector
State vector of arbitrary arity.
In the language of the framework, a free system is a unary system (arity 1, RANK=1) ...
std::ostream & displayParameters(std::ostream &os) const
”
quantumoperator::Tridiagonal< 1 > Tridiagonal
unary Tridiagonal
quantumdata::Types< 1 >::DensityOperatorLow DensityOperatorLow
unary DensityOperatorFwd
std::list< CF > ComplexFreqs
same for complex
std::ostream & displayParameters(std::ostream &) const
Displays the content of the stored ostringstream followed by a call to displayMoreParameters.
Comprises modules for describing quantum systems.
size_t getDimension(mpl::int_< RANK >=mpl::int_< 1 >()) const
Get the (single) dimension for a unary system.
Provides services for dealing with frequency-like parameters, both real and complex, for all elements, frees and interactions alike, which are hence all derived from this class.
Defines class of the same name.
std::ostream & displayParameters(std::ostream &os) const
Communicating system parameters towards the user.
std::list< RF > RealFreqs
list of real frequency-like parameters
Common interface for calculating quantum averages.
double highestFrequency() const
Calculates the fastest timescale of the system from the frequencies stored in the lists...
The abstract interface every system has to present towards the quantum trajectory drivers quantumtraj...
quantumdata::DensityOperator< 1 > DensityOperator
unary DensityOperator
double highestFrequency() const
Simply connects the pure virtual QuantumSystem::highestFrequency to the implementation DynamicsBase::...
Free(size_t dim, const RealFreqs &realFreqs=emptyRF, const ComplexFreqs &complexFreqs=emptyCF)
A single dimension to initialise QuantumSystem<1> and the lists of real and complex name-frequency-mu...
DynamicsBase(const RealFreqs &=emptyRF, const ComplexFreqs &=emptyCF)
Straightforward constructor.
std::tuple< std::string, double, double > RF
name-value-multiplier tuple for a real frequency-like parameter
Class representing a (unary) tridiagonal matrix or direct product of such matrices.
virtual std::ostream & displayMoreParameters(std::ostream &) const
In its default implementation, displayes the frequency-like parameters of the system in a nice format...
double highestFrequency() const
The fastest timescale of the system for ODE stepping.