4 #ifndef CPPQEDCORE_STRUCTURE_LIOUVILLEAN_H_INCLUDED
5 #define CPPQEDCORE_STRUCTURE_LIOUVILLEAN_H_INCLUDED
7 #include "LiouvilleanFwd.h"
40 static const int N_RANK=RANK;
42 typedef boost::shared_ptr<const Liouvillean> Ptr;
50 typedef typename Base:: StateVectorLow StateVectorLow;
51 typedef typename Base::DensityOperatorLow DensityOperatorLow;
55 typedef typename Base::DArray1D
Rates;
61 const Rates
rates(
double t,
const StateVector& psi)
const {
return Base::average(t,psi);}
67 )
const {
return actWithJ_v(t,psi,m);}
70 virtual void actWithJ_v(
double, StateVectorLow&,
size_t)
const = 0;
81 template<
int RANK,
bool IS_TIME_DEPENDENT>
85 typedef typename Liouvillean<RANK>::StateVectorLow StateVectorLow ;
86 typedef typename Liouvillean<RANK>::LazyDensityOperator LazyDensityOperator;
92 virtual void actWithJ_v(
double t, StateVectorLow& psi,
size_t lindbladNo)
const final {actWithJ_v(Time(t),psi,lindbladNo);}
93 virtual const Rates average_v(
double t,
const LazyDensityOperator& matrix)
const final {
return rates_v(Time(t),matrix);}
95 virtual void actWithJ_v(Time, StateVectorLow&,
size_t )
const = 0;
96 virtual const Rates rates_v(Time,
const LazyDensityOperator&)
const = 0;
120 #endif // CPPQEDCORE_STRUCTURE_LIOUVILLEAN_H_INCLUDED
Metafunction dispatching two OneTime & NoTime according to the template parameter IS_TIME_DEPENDENT ...
Basically only a metafunction defining types for higher-level constructs of arity RANK ...
quantumdata::LazyDensityOperator< 1 > LazyDensityOperator
unary LazyDensityOperator
Defines class of the same name.
const Rates rates(double t, const StateVector &psi) const
Returns the set of jump rates where the Lindblads are in general time-dependent. ...
void actWithJ(double t, StateVectorLow &psi, size_t m) const
Performs the quantum jump operation .
State vector of arbitrary arity.
Comprises modules for describing quantum systems.
Defines class of the same name.
The interface every system having Liouvillean time-evolution must present towards the trajectory driv...
Defines class of the same name.
Defines tools related to the description of different time-dependence levels.
Implements the general Liouvillean interface by dispatching the two possible time-dependence levels...
Base::DArray1D Rates
The 1D real array for storing the jump rates.