RealTimeTransport 1.0.0
Real-time simulation of quantum transport processes
Loading...
Searching...
No Matches
RealTimeTransport::Model Class Referenceabstract

#include <RealTimeTransport/Model.h>

This class defines the abstract interface from which all models need to inherit.

Public Types

using OperatorType = SciCore::Matrix
 Type of ordinary operators.
 
using SupervectorType = SciCore::Vector
 Type of vectorized operators.
 
using SuperRowVectorType = SciCore::RowVector
 Type of adjoint of vectorized operators.
 
using SuperoperatorType = SciCore::Matrix
 Type of superoperators.
 

Public Member Functions

bool operator== (const Model &other) const
 Equality comparison operator.
 
bool operator!= (const Model &other) const
 Inequality comparison operator.
 
virtual int dimHilbertSpace () const noexcept=0
 Returns the dimension of the Hilbert space.
 
virtual int numStates () const noexcept=0
 Returns the number of single particle states (including spin).
 
virtual int numChannels () const noexcept=0
 Returns the number of channels in each reservoir (e.g. spin).
 
virtual int numReservoirs () const =0
 Returns the number of reservoirs the system is connected to.
 
virtual OperatorType H () const =0
 Returns the Hamiltonian.
 
virtual OperatorType P () const
 Returns the parity operator.
 
virtual OperatorType d (int l) const =0
 Returns the annihilation operator of the single particle state indexed by l.
 
virtual SciCore::Complex coupling (int r, int nu, int l) const =0
 Returns the coupling coefficient in the tunneling Hamiltonian, given by \(\sqrt{\lambda}_{r \nu} t_{r \nu l}\).
 
virtual const SciCore::RealVector & temperatures () const noexcept=0
 Returns the temperatures of the reservoirs the system is connected to.
 
virtual const SciCore::RealVector & chemicalPotentials () const noexcept=0
 Returns the chemical potentials of the reservoirs the system is connected to.
 
virtual SupervectorType vectorize (const OperatorType &op) const
 Vectorizes an operator into its supervector form.
 
virtual OperatorType operatorize (const SupervectorType &supervector) const
 Transforms a supervector back into operator form.
 
virtual const std::vector< int > & blockDimensions () const noexcept=0
 The memory kernel and propagator are block diagonal. This function returns a reference to a vector containing the dimensions of these blocks.
 
virtual std::unique_ptr< Modelcopy () const =0
 Returns a deep copy of the model.
 
virtual bool isEqual (const Model &other) const =0
 Returns true if other is the same as *this, otherwise false.