4 #ifndef CPPQEDCORE_STRUCTURE_EXACT_H_INCLUDED
5 #define CPPQEDCORE_STRUCTURE_EXACT_H_INCLUDED
12 #include <boost/shared_ptr.hpp>
21 typedef boost::shared_ptr<const ExactCommon> Ptr;
32 virtual bool applicableInMaster_v()
const = 0;
60 typedef boost::shared_ptr<const Exact> Ptr;
62 typedef typename quantumdata::Types<RANK>::StateVectorLow StateVectorLow;
70 )
const {
return actWithU_v(t,psi,t0);}
73 virtual void actWithU_v(
double, StateVectorLow&,
double)
const = 0;
84 template<
int RANK,
bool IS_TWO_TIME>
88 typedef typename Exact<RANK>::StateVectorLow StateVectorLow;
93 virtual void actWithU_v(
double t, StateVectorLow& psi,
double t0)
const final {actWithU_v(Time(t,t0),psi);}
95 virtual void actWithU_v(Time, StateVectorLow& psi)
const = 0;
102 #endif // CPPQEDCORE_STRUCTURE_EXACT_H_INCLUDED
The interface every system that needs transformation between two quantum mechanical pictures must pre...
Defines class of the same name.
Basically only a metafunction defining types for higher-level constructs of arity RANK ...
Implements the general Exact interface by dispatching the two possible time-dependence levels...
bool applicableInMaster() const
Describes whether the system fulfills the requirement to be used in Master-equation evolution...
Comprises modules for describing quantum systems.
Metafunction dispatching two TwoTime & OneTime according to the template parameter IS_TWO_TIME ...
void actWithU(double t, StateVectorLow &psi, double t0) const
Describes the operation which transforms from interaction picture to the normal picture: ...
Defines tools related to the description of different time-dependence levels.
The template-parameter-independent base of Exact.