class Drive(*, control, operator, noise=None)

A (possibly noisy) complex control term for the quasi-static scan calculation of the form \(\left(1 + \beta_{\gamma_{j}} \right) \left(\gamma_{j}(t) C_{j} + \text{H.c.} \right)\), where \(C_{j}\) is a non-Hermitian operator, \(\gamma_{j}(t)\) is a complex-valued piecewise-constant function between 0 and \(\tau\), and \(\beta_{\gamma_{j}} \in \{\beta_{\gamma_j,i}\}\) is the amplitude of its noise.

  • control (List[qctrl.dynamic.types.ComplexSegmentInput]) – The list of segments, pairs of a duration and a value \(\{(\delta t_{\gamma_{j},n}, \gamma_{j,n})\}\), that define the piecewise-constant control \(\gamma_{j}(t)\). This means that \(\gamma_{j}(t) = \gamma_{j,n}\) for \(t_{\gamma_{j},n-1} \leq t < t_{\gamma_{j},n}\), where \(t_{\gamma_{j},0} = 0\) and \(t_{\gamma_{j},n} = t_{\gamma_{j},n-1} + \delta t_{\gamma_{j},n}\). You must provide at least one segment.

  • operator (ndarray) – The non-Hermitian matrix \(C_{j}\) that multiplies the complex control.

  • noise (qctrl.dynamic.types.quasi_static_scan.Noise, optional) – The set of noise amplitudes \(\{\beta_{\gamma_{j},i}\}\) associated to the term. If not provided, \(\beta_{\gamma_j}\) is always 0. Only provide this argument if you want to scan this multiplicative noise.