Highest level driver functions for quantum trajectories. More...
#include "Evolution_Fwd.h"
#include "LazyDensityOperator.h"
#include "DensityOperatorFwd.h"
#include "StateVectorFwd.h"
#include "MCWF_TrajectoryFwd.h"
#include "ParsMCWF_Trajectory.h"
#include "QuantumSystemFwd.h"
#include "SmartPtr.h"
#include "TMP_Tools.h"
#include <iosfwd>
Go to the source code of this file.
Classes | |
struct | evolution::Pars |
Aggregate of parameters pertaining to the highest level driver functions for quantum trajectories. More... | |
Namespaces | |
evolution | |
Auxiliary tools for the evolve functions. | |
Enumerations | |
enum | evolution::Method { evolution::SINGLE, evolution::ENSEMBLE, evolution::MASTER, evolution::MASTER_FAST } |
Method of evolution for a quantum system. More... | |
Functions | |
std::ostream & | evolution::operator<< (std::ostream &, Method) |
output streaming for Method | |
std::istream & | evolution::operator>> (std::istream &, Method &) |
input streaming for Method | |
template<int RANK, typename SYS > | |
const boost::shared_ptr< MCWF_Trajectory< RANK > > | evolution::makeMCWF (quantumdata::StateVector< RANK > &, const SYS &, const Pars &) |
Dispatcher returning a quantumtrajectory::MCWF_Trajectory or quantumtrajectory::TimeAveragingMCWF_Trajectory instant, depending on the last argument (cf. Pars::timeAverage) More... | |
template<typename V , int RANK> | |
const quantumdata::LazyDensityOperator< RANK >::Ptr | evolve (quantumdata::StateVector< RANK > &psi, typename structure::QuantumSystem< RANK >::Ptr sys, const evolution::Pars &p) |
The prototype function to evolve a quantumtrajectory from a pure StateVector initial condition. More... | |
template<typename V , int RANK> | |
const quantumdata::LazyDensityOperator< RANK >::Ptr | evolve (quantumdata::DensityOperator< RANK > &rho, typename structure::QuantumSystem< RANK >::Ptr sys, const evolution::Pars &p) |
The prototype function to evolve a Master trajectory from a DensityOperator initial condition. More... | |
template<int... V, typename SV_OR_DO , typename SYS > | |
const quantumdata::LazyDensityOperator< SV_OR_DO::N_RANK >::Ptr | evolve (SV_OR_DO &initial, const SYS &sys, const evolution::Pars &p) |
Highest level driver functions for quantum trajectories.
Definition in file Evolution_.h.
const quantumdata::LazyDensityOperator<RANK>::Ptr evolve | ( | quantumdata::StateVector< RANK > & | psi, |
typename structure::QuantumSystem< RANK >::Ptr | sys, | ||
const evolution::Pars & | p | ||
) |
The prototype function to evolve a quantumtrajectory from a pure StateVector initial condition.
Basically a dispatcher invoking trajectory::run, with the difference that it also creates and stores the necessary quantum trajectory
V | has the same function as the template parameter V in quantumdata::negPT (cannot be inferred) |
RANK | arity of the Hilbert space (inferred from the 1st function argument) |
[in,out] | psi | pure state-vector initial condition |
[in] | sys | the simulated quantum system |
[in] | p | parameters of the evolution |
const quantumdata::LazyDensityOperator<RANK>::Ptr evolve | ( | quantumdata::DensityOperator< RANK > & | rho, |
typename structure::QuantumSystem< RANK >::Ptr | sys, | ||
const evolution::Pars & | p | ||
) |
The prototype function to evolve a Master trajectory from a DensityOperator initial condition.
[in,out] | rho | density operator initial condition |
[in] | sys | the simulated quantum system |
[in] | p | parameters of the evolution |
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Adds also the syntactic sugar of being able to write
evolve<2,0,4>(psi,sys,p)
instead of
evolve<tmptools::Vector<2,0,4> >(psi,sys,p)
Definition at line 109 of file Evolution_.h.