API Outline

The TEMPO Collaboration is continuously developing new methods to make this package applicable to a wider set of scenarios. This calls for a flexible API design to allow to reuse the same objects with different algorithms. We therefore choose an almost fully object oriented approach. The functions and objects fall into 4 categories:

  1. Physical: Consists of objects that describe physical quantities, like for example a system Hamiltonian or the spectral density of an environment.

  2. Methods: Gathers the information from physical objects and applies a numerical method using particular simulation parameters.

  3. Results: Encode the results of a computation. Unlike physical objects, these objects may depend on computational parameters (like for example a specific time step length).

  4. Utilities: Supplies some handy utilities such as shorthands for the Pauli operators.

Physical

Systems

class oqupy.system.BaseSystem

Abstract class representing a quantum system of interest.

class oqupy.system.System

Encodes system Hamiltonian and possibly some additional Markovian decay.

class oqupy.system.TimeDependentSystem

Encodes a time dependent system Hamiltonian and possibly some additional time dependent Markovian decay.

class oqupy.system.TimeDependentSystemWithField

Encodes a system Hamiltonian (and possibly some additional time dependent Markovian decay) that depends on both time and the expectation value of a field (a complex scalar) to which the system couples.

class oqupy.system.ParameterizedSystem

Encodes a system Hamiltonian that depends on a set of parameters.

class oqupy.system.MeanFieldSystem

Encodes a collection of time dependent systems that couple to a common field which evolves according to a prescribed equation of motion.

class oqupy.system.SystemChain

Encodes a 1D chain of systems and possibly some additional Markovian decay.

Control

class oqupy.control.Control

Encodes control operations on oqupy.system.BaseSystem objects.

class oqupy.control.ChainControl

Encodes control operations on oqupy.system.SystemChain objects.

Environment

class oqupy.bath_correlations.BaseCorrelations

Abstract class representing the environments auto-correlations.

class oqupy.bath_correlations.CustomCorrelations

Encode an explicitly given environment auto-correlation function.

class oqupy.bath_correlations.CustomSD

Encodes the auto-correlations for a given spectral density.

class oqupy.bath_correlations.PowerLawSD

Encodes the auto-correlations for a given spectral density of a power law form.

class oqupy.bath.Bath

Bundles a oqupy.bath_correlations.BaseCorrelations object together with a coupling operator.

Methods

TEMPO

(Time Evolving Matrix Product Operator)

class oqupy.tempo.TempoParameters

Stores a set of parameters for a TEMPO computation.

class oqupy.tempo.Tempo

Class to facilitate a TEMPO computation.

method oqupy.tempo.Tempo.compute()

Method that carries out a TEMPO computation and creates a oqupy.dynamics.Dynamics object.

class oqupy.tempo.MeanFieldTempo

Class to facilitate a TEMPO computation with concurrent evolution of a coherent field.

method oqupy.tempo.MeanFieldTempo.compute()

Method that carries out a TEMPO computation while evolving a coherent field, and creates a oqupy.dynamics.MeanFieldDyanmics object.

function oqupy.tempo.guess_tempo_parameters()

Function that chooses an appropriate set of parameters for a particular TEMPO computation.

PT-TEMPO

(Process Tensor - Time Evolving Matrix Product Operator)

class oqupy.pt_tempo.PtTempo

Class to facilitate a PT-TEMPO computation.

method oqupy.pt_tempo.PtTempo.compute()

Method that carries out a PT-TEMPO computation and creates an oqupy.process_tensor.BaseProcessTensor object.

Process Tensor Applications

function oqupy.system_dynamics.compute_dynamics()

Compute a oqupy.dynamics.Dynamics object for given oqupy.system.System or oqupy.system.TimeDependentSystem and oqupy.control.Control and oqupy.process_tensor.BaseProcessTensor objects.

function oqupy.system_dynamics.compute_dynamics_with_field()

Compute a oqupy.dynamics.MeanFieldDynamics object for given oqupy.system.MeanFieldSystem and list of oqupy.control.Control objects and list of oqupy.process_tensor.BaseProcessTensor objects.

function oqupy.system_dynamics.compute_correlations_nt()

Compute ordered multi-time correlations for given oqupy.system.BaseSystem and oqupy.process_tensor.BaseProcessTensor objects.

function oqupy.system_dynamics.compute_correlations()

Compute two time correlations for given oqupy.system.BaseSystem and oqupy.process_tensor.BaseProcessTensor objects.

class oqupy.bath_dynamics.TwoTimeBathCorrelations

Class to facilitate calculation of two-time bath correlations.

method oqupy.bath_dynamics.TwoTimeBathCorrelations.occupation()

Function to calculate the change in bath occupation in a particular bandwidth.

method oqupy.bath_dynamics.TwoTimeBathCorrelations.correlation()

Function to calculate two-time correlation function between two frequency bands of a bath.

function oqupy.gradient.state_gradient()

Compute the dynamics and gradient with respect to some objective function for a given oqupy.system.ParameterizedSystem.

PT-TEBD

(Process Tensor - Time Evolving Block Decimation)

class oqupy.pt_tebd.PtTebdParameters

Stores a set of parameters for a PT-TEBD computation.

class oqupy.pt_tebd.PtTebd

Class to facilitate a PT-TEBD computation.

method oqupy.pt_tebd.PtTebd.compute()

Method that carries out a PT-TEMPO computation and returns an results dictionary.

Results

class oqupy.dynamics.Dynamics

Object that encodes the discretized evolution of the reduced density matrix of a system.

class oqupy.dynamics.MeanFieldDynamics

Object that encodes the discretized evolution of the reduced density matrix of one or more time-dependent systems together with that of a classical field coupled to the systems.

class oqupy.process_tensor.BaseProcessTensor

Object that encodes a so called process tensor (which captures all possible Markovian and non-Markovian interactions between some system and an environment).

Utilities

module oqupy.operators

Supplies several commonly used operators, such as the Pauli matrices and spin density matrices.

function oqupy.helpers.plot_correlations_with_parameters()

A helper function to plot an auto-correlation function and the sampling points given by a set of parameters for a TEMPO computation.