pygsti.models.modelnoise.LindbladNoise#

class LindbladNoise(error_coeffs, parameterization='auto')#

Bases: OpNoise

Noise generated by exponentiating a Lindbladian error generator.

The error generator is a Lindblad-form sum of elementary error generators corresponding to Hamiltonian and other (stochastic, correlation, etc.) type of errors.

Parameters:
  • error_coeffs (dict) – A dictionary of Lindblad-term coefficients. Keys are (termType, basisLabel1, <basisLabel2>) tuples, where termType can be “H” (Hamiltonian), “S” (Stochastic/other), or “A” (Affine). Hamiltonian and Affine terms always have a single basis label (so key is a 2-tuple) whereas Stochastic/other tuples can have 1 or 2 basis labels depending on the parameterization type. Tuples with 1 basis label indicate a stochastic (diagonal Lindblad) term, and are the only type of terms allowed when a parmeterization with nonham_mode != “all” is selected. “S” terms with 2 basis specify “off-diagonal” non-Hamiltonian Lindblad terms. Basis labels can be strings or integers. Values are complex coefficients.

  • parameterization (str or LindbladParameterization) – Determines the parameterization of the LindbladErrorgen objects used to represent this noise. When “auto” (the default), the parameterization is inferred from the types of error generators specified in the error_coeffs dictionary. When not “auto”, the parameterization type is passed through to created LindbladErrorgen objects.

Methods

__init__(error_coeffs[, parameterization])

create_errorgen(evotype, state_space)

Create an error generator for this noise operation.

create_errormap(evotype, state_space)

Create an error map (operator or superoperator) for this noise operation.

from_basis_coefficients(parameterization, ...)

Create a LindbladNoise object containing a complete basis of elementary terms.

create_errorgen(evotype, state_space)#

Create an error generator for this noise operation.

Parameters:
  • evotype (str or Evotype) – The evolution type for the returned operator.

  • state_space (StateSpace) – The state space for the returned operator.

Return type:

LinearOperator

create_errormap(evotype, state_space)#

Create an error map (operator or superoperator) for this noise operation.

Parameters:
  • evotype (str or Evotype) – The evolution type for the returned operator.

  • state_space (StateSpace) – The state space for the returned operator.

Return type:

LinearOperator

classmethod from_basis_coefficients(parameterization, lindblad_basis, state_space, ham_coefficients=None, nonham_coefficients=None)#

Create a LindbladNoise object containing a complete basis of elementary terms.

This method provides a convenient way to create a lindblad noise specification containing the complete set of terms in a Lindbladian based on a given “Lindblad basis” (often just a Pauli product basis). This routine by default creates all the terms with zero coefficients, but coefficient vectors or matrices (usually obtained by projecting an arbitrary error generator onto the lindblad basis) can be specified via the ham_coefficients and nonham_coefficients arguments.

Parameters:
  • parameterization (str or LindbladParameterization) – The Lindblad parameterization, specifying what constitutes the “complete” set of Lindblad terms. For example, “H” means that just Hamiltonian terms are included whereas “CPTP” includes all the terms in a standard Lindblad decomposition.

  • lindblad_basis (str or Basis) – The basis used to construct the Lindblad terms.

  • state_space (StateSpace) – The state space, used only to convert string-valued lindblad_basis names into a Basis object. If lindblad_basis is given as a Basis, then this can be set to None.

  • ham_coefficients (numpy.ndarray or None, optional) – A 1-dimensional array of coefficients giving the initial values of the Hamiltonian-term coefficients. The length of this arrays should be one less than the size of lindblad_basis (since there’s no Lindblad term for the identity element).

  • nonham_coefficients (numpy.ndarray or None, optional) – A 1- or 2-dimensional array of coefficients for the “other” (non-Hamiltonian) terms. The shape of this array should be (d,), (2,d), or (d,d) depending on parameterization (e.g. for S, S+A, and CPTP parameterizations).

Return type:

LindbladNoise