C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
quantumtrajectory::QuantumTrajectory< RANK, BASE > Class Template Reference

Class hosting common code of MCWF_Trajectory and Master. More...

#include <QuantumTrajectory.h>

+ Inheritance diagram for quantumtrajectory::QuantumTrajectory< RANK, BASE >:
+ Collaboration diagram for quantumtrajectory::QuantumTrajectory< RANK, BASE >:

Protected Types

typedef structure::QuantumSystemWrapper< RANK, true > QuantumSystemWrapper
 

Protected Member Functions

template<typename... ArgumentPack>
 QuantumTrajectory (typename structure::QuantumSystem< RANK >::Ptr qs, bool isNoisy, ArgumentPack &&...argumentPack)
 Constructor forwarding to BASE and QuantumSystemWrapper.
 
const QuantumSystemWrapper getQSW () const
 
cpputils::iarchivereadStateMore_v (cpputils::iarchive &iar) override
 Forwards to BASE, but also sets t0.
 
double getT0 () const
 The time instant of the beginning of the current time step. More...
 
void setT0 (double t0) const
 The time instant of the beginning of the current time step. More...
 
void setT0 () const
 The time instant of the beginning of the current time step. Sets to the current time.
 
template<typename CONSTRUCT >
void checkDimension (const CONSTRUCT &construct) const
 Check the dimensions of the stored quantum system against construct More...
 

Detailed Description

template<int RANK, typename BASE>
class quantumtrajectory::QuantumTrajectory< RANK, BASE >

Class hosting common code of MCWF_Trajectory and Master.

It contains the structure::QuantumSystemWrapper and a trajectory::Adaptive::readStateMore_v implementation which sets t0_. Because this class has to be inserted in the inheritence chain of both MCWF_Trajectory and Master, the base class of QuantumTrajectory is passed as a template parameter BASE and the constructor uses perfect forwarding semantics.

Template Parameters
RANKarity of the Hilbert space
BASEpractically either a trajectory::Adaptive (for Master) or a trajectory::Stochastic (for MCWF_Trajectory)

Definition at line 34 of file QuantumTrajectory.h.

Member Function Documentation

template<int RANK, typename BASE>
template<typename CONSTRUCT >
void quantumtrajectory::QuantumTrajectory< RANK, BASE >::checkDimension ( const CONSTRUCT &  construct) const
inlineprotected

Check the dimensions of the stored quantum system against construct

Template Parameters
CONSTRUCTtypically either a quantumdata::StateVector (as in MCWF_Trajectory) or a quantumdata::DensityOperator (as in Master)

Definition at line 70 of file QuantumTrajectory.h.

template<int RANK, typename BASE>
double quantumtrajectory::QuantumTrajectory< RANK, BASE >::getT0 ( ) const
inlineprotected

The time instant of the beginning of the current time step.

If the simulated quantum system is derived from structure::Exact, this is a very crucial piece of data, since this is the time instant when the interaction picture and the normal picture coincide.

Hence, careful bookkeeping is necessary to keep this correct through any change of the trajectory state (e.g. state i/o).

See also
the parameter $t_0$ in structure::Exact::actWithU

Definition at line 60 of file QuantumTrajectory.h.

template<int RANK, typename BASE>
void quantumtrajectory::QuantumTrajectory< RANK, BASE >::setT0 ( double  t0) const
inlineprotected

The time instant of the beginning of the current time step.

If the simulated quantum system is derived from structure::Exact, this is a very crucial piece of data, since this is the time instant when the interaction picture and the normal picture coincide.

Hence, careful bookkeeping is necessary to keep this correct through any change of the trajectory state (e.g. state i/o).

See also
the parameter $t_0$ in structure::Exact::actWithU

Definition at line 63 of file QuantumTrajectory.h.


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