qudit_sim.HamiltonianBuilder.frame_change_operator

HamiltonianBuilder.frame_change_operator(from_frame, to_frame=None)

Compute the change-of-frame operator.

Change of frame from

\[U_{f}(t) = \bigotimes_j \exp \left[ i \sum_l \left( \Xi_j^l t + \Phi_j^l \right) | l \rangle_j \langle l |_j \right]\]

to

\[U_{g}(t) = \bigotimes_j \exp \left[ i \sum_l \left( \Eta_j^l t + \Psi_j^l \right) | l \rangle_j \langle l |_j \right]\]

is effected by

\[V_{gf}(t) = U_g(t) U_f^{\dagger}(t) = \bigotimes_j \exp \left[ i \sum_l \left\{ (\Eta_j^l - \Xi_j^l) t + (\Psi_j^l - \Phi_j^l) \right\} | l \rangle_j \langle l |_j \right].\]
Parameters
  • from_frame (Union[str, Dict[Hashable, Frame], Sequence[Frame]]) – Specification of original frame.

  • to_frame (Union[str, Dict[Hashable, Frame], Sequence[Frame], None]) – Specification of new frame. If None, the current frame is used.

Return type

Tuple[numpy.ndarray, numpy.ndarray]

Returns

Flattened arrays corresponding to \([\sum_{j} \Xi_j^{l_j}]_{\{l_j\}}\) and \([\sum_{j} \Phi_j^{l_j}]_{\{l_j\}}\).