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:
Physical: Consists of objects that describe physical quantities, like for example a system Hamiltonian or the spectral density of an environment.
Methods: Gathers the information from physical objects and applies a numerical method using particular simulation parameters.
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).
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
- class
oqupy.bath.Bath Bundles a
oqupy.bath_correlations.BaseCorrelationsobject 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.Dynamicsobject.
- method
- 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.MeanFieldDyanmicsobject.
- method
- 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.BaseProcessTensorobject.
- method
Process Tensor Applications
- function
oqupy.system_dynamics.compute_dynamics() Compute a
oqupy.dynamics.Dynamicsobject for givenoqupy.system.Systemoroqupy.system.TimeDependentSystemandoqupy.control.Controlandoqupy.process_tensor.BaseProcessTensorobjects.- function
oqupy.system_dynamics.compute_dynamics_with_field() Compute a
oqupy.dynamics.MeanFieldDynamicsobject for givenoqupy.system.MeanFieldSystemand list ofoqupy.control.Controlobjects and list ofoqupy.process_tensor.BaseProcessTensorobjects.- function
oqupy.system_dynamics.compute_correlations_nt() Compute ordered multi-time correlations for given
oqupy.system.BaseSystemandoqupy.process_tensor.BaseProcessTensorobjects.- function
oqupy.system_dynamics.compute_correlations() Compute two time correlations for given
oqupy.system.BaseSystemandoqupy.process_tensor.BaseProcessTensorobjects.- 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.
- method
- 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.
- method
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.