An implementation of Liouvillean for the case when the number of Lindblads is known @ compile time (which is very often the case with elements)… More...
#include <ElementLiouvillean.h>
Inheritance diagram for structure::ElementLiouvillean< RANK, NLINDBLADS, IS_TIME_DEPENDENT >:
Collaboration diagram for structure::ElementLiouvillean< RANK, NLINDBLADS, IS_TIME_DEPENDENT >:Public Types | |
| typedef Base::StateVectorLow | StateVectorLow |
| typedef Base::LazyDensityOperator | LazyDensityOperator |
| typedef Base::Rates | Rates |
| typedef Base::Time | Time |
Public Types inherited from structure::ElementLiouvilleanAveragedCommon< LiouvilleanTimeDependenceDispatched< RANK, IS_TIME_DEPENDENT > > | |
| typedef cpputils::KeyPrinter::KeyLabels | KeyLabels |
| typedef cpputils::KeyPrinter::KeyLabelsInitializer | KeyLabelsInitializer |
Public Types inherited from structure::LiouvilleanTimeDependenceDispatched< RANK, IS_TIME_DEPENDENT > | |
| typedef Liouvillean< RANK >::StateVectorLow | StateVectorLow |
| typedef Liouvillean< RANK >::LazyDensityOperator | LazyDensityOperator |
| typedef Liouvillean< RANK >::Rates | Rates |
| typedef time::DispatcherIsTimeDependent< IS_TIME_DEPENDENT >::type | Time |
Public Types inherited from structure::Liouvillean< RANK > | |
| typedef boost::shared_ptr< const Liouvillean > | Ptr |
| typedef quantumdata::StateVector< RANK > | StateVector |
| typedef Base::StateVectorLow | StateVectorLow |
| typedef Base::DensityOperatorLow | DensityOperatorLow |
| typedef Base::LazyDensityOperator | LazyDensityOperator |
| typedef Base::DArray1D | Rates |
| The 1D real array for storing the jump rates. | |
Public Types inherited from quantumdata::Types< RANK, LiouvilleanAveragedCommonRanked< RANK > > | |
| typedef CArray< RANK > | StateVectorLow |
| typedef CArray< 2 *RANK > | DensityOperatorLow |
Public Types inherited from structure::lindblad::_< RANK, NLINDBLADS-1, false > | |
| typedef time::DispatcherIsTimeDependent< IS_TIME_DEPENDENT >::type | Time |
Protected Member Functions | |
| template<typename... KeyLabelsPack> | |
| ElementLiouvillean (const std::string &keyTitle, KeyLabelsPack &&...keyLabelsPack) | |
| ElementLiouvillean (const std::string &keyTitle, typename Base::KeyLabelsInitializer il) | |
Protected Member Functions inherited from structure::ElementLiouvilleanAveragedCommon< LiouvilleanTimeDependenceDispatched< RANK, IS_TIME_DEPENDENT > > | |
| ElementLiouvilleanAveragedCommon (const std::string &keyTitle, KeyLabelsPack &&...keyLabelsPack) | |
| redirect to cpputils::KeyPrinter More... | |
| ElementLiouvilleanAveragedCommon (const std::string &keyTitle, KeyLabelsInitializer il) | |
| redirect to cpputils::KeyPrinter More... | |
Additional Inherited Members | |
Public Member Functions inherited from structure::ElementLiouvilleanAveragedCommon< LiouvilleanTimeDependenceDispatched< RANK, IS_TIME_DEPENDENT > > | |
| const std::string & | getTitle () const |
| redirect to cpputils::KeyPrinter | |
| const KeyLabels & | getLabels () const |
| redirect to cpputils::KeyPrinter More... | |
Public Member Functions inherited from structure::Liouvillean< RANK > | |
| const Rates | rates (double t, const StateVector &psi) const |
Returns the set of jump rates where the Lindblads are in general time-dependent. More... | |
| void | actWithJ (double t, StateVectorLow &psi, size_t m) const |
Performs the quantum jump operation . More... | |
Public Member Functions inherited from structure::lindblad::_< RANK, NLINDBLADS-1, false > | |
| void | typeErasedActWithJ (Time t, typename quantumdata::Types< RANK >::StateVectorLow &psi) const |
| calls the virtual doActWithJ for the given LINDBLAD_ORDINAL | |
| double | typeErasedRate (Time t, const quantumdata::LazyDensityOperator< RANK > &matrix) const |
| calls the virtual rate for the given LINDBLAD_ORDINAL | |
Static Public Attributes inherited from structure::Liouvillean< RANK > | |
| static const int | N_RANK =RANK |
An implementation of Liouvillean for the case when the number of Lindblads is known @ compile time (which is very often the case with elements)…
… if this is not the case, Liouvillean has to be used.
The class relies on lindblad::_ to declare a pair of purely virtual functions doActWithJ and rate for each Lindblad between 0 and NLINDBLADS-1. The virtuals average_v and actWithJ_v inherited from Liouvillean are defined in terms of these purely virtual functions.
| RANK | arity of the Hilbert space |
| NLINDBLADS | the total number of Lindblads |
| IS_TIME_DEPENDENT | governs time dependence |
Definition at line 94 of file ElementLiouvillean.h.