C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
structure::lindblad::_< RANK, LINDBLAD_ORDINAL, IS_TIME_DEPENDENT, NLINDBLADS > Class Template Referenceabstract

Class defining the virtual functions corresponding to a single Lindblad… More...

#include <ElementLiouvillean.h>

+ Inheritance diagram for structure::lindblad::_< RANK, LINDBLAD_ORDINAL, IS_TIME_DEPENDENT, NLINDBLADS >:
+ Collaboration diagram for structure::lindblad::_< RANK, LINDBLAD_ORDINAL, IS_TIME_DEPENDENT, NLINDBLADS >:

Public Types

typedef time::DispatcherIsTimeDependent< IS_TIME_DEPENDENT >::type Time
 

Public Member Functions

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
 

Detailed Description

template<int RANK, int LINDBLAD_ORDINAL, bool IS_TIME_DEPENDENT, int NLINDBLADS = LINDBLAD_ORDINAL+1>
class structure::lindblad::_< RANK, LINDBLAD_ORDINAL, IS_TIME_DEPENDENT, NLINDBLADS >

Class defining the virtual functions corresponding to a single Lindblad…

… and all the Lindblads with lesser index, since the class uses base-class chaining. At the bottom of the chain sits Base<NLINDBLADS>

Template Parameters
RANKarity of the Hilbert space
LINDBLAD_ORDINALthe index of the given Lindblad
IS_TIME_DEPENDENTgoverns time dependence
NLINDBLADSthe total number of Lindblads

In the case of the _::typeErasedActWithJ and _::typeErasedRate functions, the simultaneous use of the type-erasure & non-virtual interface idioms is notable

Definition at line 50 of file ElementLiouvillean.h.


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