Source code for qutip_qtrl.symplectic

# -*- coding: utf-8 -*-
# @author: Alexander Pitchford
# @email1: agp1@aber.ac.uk
# @email2: alex.pitchford@gmail.com
# @organization: Aberystwyth University
# @supervisor: Daniel Burgarth

"""
Utility functions for symplectic matrices
"""

import numpy as np


[docs]def calc_omega(n): """ Calculate the 2n x 2n Omega matrix Used as dynamics generator phase to calculate symplectic propagators Parameters ---------- n : scalar(int) number of modes in oscillator system Returns ------- array(float) Symplectic phase Omega """ omg = np.zeros((2 * n, 2 * n)) for j in range(2 * n): for k in range(2 * n): if k == j + 1: omg[j, k] = (1 + (-1) ** j) / 2 if k == j - 1: omg[j, k] = -(1 - (-1) ** j) / 2 return omg