From 253e185b43be2e567faf3d4e312be5336a396f19 Mon Sep 17 00:00:00 2001 From: San Date: Wed, 19 Apr 2023 16:40:24 -0500 Subject: [PATCH] checked by San --- examples/demo_qutip_fluxoniumcz.ipynb | 1186 ++----------------------- 1 file changed, 54 insertions(+), 1132 deletions(-) diff --git a/examples/demo_qutip_fluxoniumcz.ipynb b/examples/demo_qutip_fluxoniumcz.ipynb index 4fd3f8d..defeb11 100644 --- a/examples/demo_qutip_fluxoniumcz.ipynb +++ b/examples/demo_qutip_fluxoniumcz.ipynb @@ -15,14 +15,16 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Capacitive coupling of two fluxonium qubits $A$ and $B$ results in the addition of the term $g \\hat n_A \\hat n_B$ to the Hamiltonian. This coupling shifts the energy levels so that the $\\omega_{01\\to 02}$ transition frequency is detuned from the $\\omega_{11 \\to 12}$ transition frequency. This allows the $|11\\rangle \\to |12\\rangle$ transition to be driven without causing leakage from other states in the computational space. Following Nesterov et al., we consider a drive on only qubit $B$, which is expressed as the term $H_d = f(t)\\cos(\\omega_d t)\\hat n_B$ added to the Hamiltonian.\n", + "Capacitive coupling of two fluxonium qubits $A$ and $B$ results in the addition of the term $g \\hat n_A \\hat n_B$ ($\\hat n$ is the charge operator) to the Hamiltonian. This coupling shifts the energy levels so that the dressed (coupled) $\\omega_{01 \\to 02}$ transition frequency is detuned from the dressed (coupled) $\\omega_{11 \\to 12}$ transition frequency. Without the capacitive coupling between two qubits, the bare (uncoupled) $\\omega_{01 \\to 02}$ transition frequency is the same as the bare (uncoupled) $\\omega_{11 \\to 12}$ transition frequency. This allows the $|11\\rangle \\to |12\\rangle$ transition to be Rabi driven without causing leakage from other states in the computational space. Following Nesterov et al., we consider a case of selective drive on only qubit $B$, which is expressed as the term $H_d = f(t)\\cos(\\omega_d t)\\hat n_B$ added to the Hamiltonian.\n", "\n", - "Driving the $|11\\rangle\\to|12\\rangle$ transition for a full period causes the $|11\\rangle$ state to aquire a phase of $e^{i\\pi}=-1$, without affecting the other states in the computational subspace. This results in the application of $CZ = \\operatorname{diag}(1,1,1,-1)$ up to single-qubit $Z$ gates.\n", + "Driving the $|11\\rangle\\to|12\\rangle$ transition for a full period of Rabi oscillation causes the $|11\\rangle$ state to acquire a phase of $e^{i\\pi}=-1$, without affecting the other states in the computational subspace. This results in the application of $CZ = \\operatorname{diag}(1,1,1,-1)$ up to single-qubit $Z$ gates.\n", "\n", "The Hamiltonian of the two coupled fluxonia and the drive is\n", "$$\n", "H = 4E_{CA}\\hat n_A - E_{JA}\\cos(\\hat \\phi_A-\\pi) + \\frac{1}{2} E_{LA}\\hat \\phi_A^2 + g\\hat n_A\\hat n_B + 4E_{CB}\\hat n_B - E_{JB}\\cos(\\hat \\phi_B-\\pi) + \\frac{1}{2}E_{LB}\\hat \\phi_B^2 + f(t)\\cos(w_dt)\\hat n_B\n", - "$$" + "$$\n", + "\n", + "where all of the notations follow closely the cited paper." ] }, { @@ -40,6 +42,7 @@ "\n", "# experimental values borrowed from\n", "# [https://arxiv.org/abs/1802.03095]\n", + "# define fluxonium A\n", "qbta = scq.Fluxonium(\n", " EC=1.5,\n", " EJ=5.5,\n", @@ -49,16 +52,27 @@ " truncated_dim=10,\n", ")\n", "\n", - "qbtb = scq.Fluxonium(EC=1.2, EJ=5.7, EL=1.0, flux=0.5, cutoff=110, truncated_dim=10)\n", + "# define fluxonium B\n", + "qbtb = scq.Fluxonium(\n", + " EC=1.2,\n", + " EJ=5.7,\n", + " EL=1.0,\n", + " flux=0.5,\n", + " cutoff=110,\n", + " truncated_dim=10,\n", + ")\n", "\n", + "# define the common Hilbert space\n", "hilbertspace = scq.HilbertSpace([qbta, qbtb])\n", "\n", + "# add interaction between two qubits\n", "hilbertspace.add_interaction(\n", " g_strength=0.15,\n", " op1=qbta.n_operator,\n", " op2=qbtb.n_operator,\n", ")\n", "\n", + "# generate spectrum lookup table\n", "hilbertspace.generate_lookup()" ] }, @@ -125,9 +139,9 @@ "metadata": {}, "outputs": [], "source": [ - "#get the representation of the n_b operator in the dressed eigenbasis of the composite system\n", + "# get the representation of the n_b operator in the dressed eigenbasis of the composite system\n", "n_b = hilbertspace.op_in_dressed_eigenbasis(op=qbtb.n_operator)\n", - "#truncate the operator after expressing in the dressed basis to speed up the simulation\n", + "# truncate the operator after expressing in the dressed basis to speed up the simulation\n", "n_b = truncate(n_b, total_truncation)" ] }, @@ -164,11 +178,12 @@ "metadata": {}, "outputs": [], "source": [ + "# get dressed state 11 to 12 transition frequency\n", "omega_1112 = transition_frequency(idxs[3], idxs[4])\n", "\n", "# Gaussian pulse parameters optimized by hand\n", - "A = 0.022\n", - "tg = 100\n", + "A = 0.022 # GHz\n", + "tg = 100 # ns\n", "\n", "#Gaussian pulse envelope\n", "def drive_coeff(t: float, args: dict) -> float:\n", @@ -178,7 +193,8 @@ "(evals,) = hilbertspace[\"evals\"]\n", "# The factor of 2pi converts the energy to GHz so that the time is in units of ns\n", "diag_dressed_hamiltonian = (\n", - " 2 * np.pi * qt.Qobj(np.diag(evals), dims=[hilbertspace.subsystem_dims] * 2)\n", + " 2 * np.pi * qt.Qobj(np.diag(evals),\n", + " dims=[hilbertspace.subsystem_dims] * 2)\n", ")\n", "diag_dressed_hamiltonian_trunc = truncate(diag_dressed_hamiltonian, total_truncation)\n", "\n", @@ -203,9 +219,7 @@ "outputs": [ { "data": { - "text/plain": [ - "Text(0.5, 0, 't (ns)')" - ] + "text/plain": "Text(0.5, 0, 't (ns)')" }, "execution_count": 7, "metadata": {}, @@ -213,1112 +227,24 @@ }, { "data": { - "application/pdf": "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c3RDaGFyIDAgL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udERlc2NyaXB0b3IgMTQgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0JNUVFEVitEZWphVnVTYW5zCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDEzIDAgUiA+PgplbmRvYmoKMTQgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDMyCi9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnROYW1lIC9CTVFRRFYrRGVqYVZ1U2FucwovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTMgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTYgMCBvYmoKPDwgL2EgMTcgMCBSIC9iYXIgMTggMCBSIC9laWdodCAxOSAwIFIgL2ZvdXIgMjAgMCBSIC9pIDIxIDAgUiAvbCAyMiAwIFIKL24gMjMgMCBSIC9vIDI0IDAgUiAvb25lIDI1IDAgUiAvcCAyNiAwIFIgL3BhcmVubGVmdCAyNyAwIFIKL3BhcmVucmlnaHQgMjggMCBSIC9wZXJpb2QgMjkgMCBSIC9zIDMwIDAgUiAvc2V2ZW4gMzEgMCBSIC9zaXggMzIgMCBSCi9zcGFjZSAzMyAwIFIgL3QgMzQgMCBSIC90aHJlZSAzNSAwIFIgL3R3byAzNiAwIFIgL3UgMzcgMCBSIC96ZXJvIDM5IDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMTUgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMyA8PCAvQ0EgMC44IC9UeXBlIC9FeHRHU3RhdGUgL2NhIDAuOCA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRjEtRGVqYVZ1U2Fucy11bmkyN0U5IDM4IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDExIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKNDAgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDIzMDMyMTE0NDA1Mi0wNCcwMCcpCi9DcmVhdG9yIChNYXRwbG90bGliIHYzLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjUuMSkgPj4KZW5kb2JqCnhyZWYKMCA0MQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMTkxNiAwMDAwMCBuIAowMDAwMDExNjQ5IDAwMDAwIG4gCjAwMDAwMTE2ODEgMDAwMDAgbiAKMDAwMDAxMTgyMyAwMDAwMCBuIAowMDAwMDExODQ0IDAwMDAwIG4gCjAwMDAwMTE4NjUgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzQyIDAwMDAwIG4gCjAwMDAwMDM5NDQgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAzOTIzIDAwMDAwIG4gCjAwMDAwMTAzMDIgMDAwMDAgbiAKMDAwMDAxMDA5NSAwMDAwMCBuIAowMDAwMDA5NjMyIDAwMDAwIG4gCjAwMDAwMTEzNTUgMDAwMDAgbiAKMDAwMDAwMzk2NCAwMDAwMCBuIAowMDAwMDA0MzQ0IDAwMDAwIG4gCjAwMDAwMDQ0NzIgMDAwMDAgbiAKMDAwMDAwNDk0MCAwMDAwMCBuIAowMDAwMDA1MTA2IDAwMDAwIG4gCjAwMDAwMDUyNTAgMDAwMDAgbiAKMDAwMDAwNTM2OSAwMDAwMCBuIAowMDAwMDA1NjA1IDAwMDAwIG4gCjAwMDAwMDU4OTYgMDAwMDAgbiAKMDAwMDAwNjA1MSAwMDAwMCBuIAowMDAwMDA2MzYzIDAwMDAwIG4gCjAwMDAwMDY1ODYgMDAwMDAgbiAKMDAwMDAwNjgxMCAwMDAwMCBuIAowMDAwMDA2OTMzIDAwMDAwIG4gCjAwMDAwMDczNDAgMDAwMDAgbiAKMDAwMDAwNzQ4MiAwMDAwMCBuIAowMDAwMDA3ODc1IDAwMDAwIG4gCjAwMDAwMDc5NjUgMDAwMDAgbiAKMDAwMDAwODE3MSAwMDAwMCBuIAowMDAwMDA4NTg0IDAwMDAwIG4gCjAwMDAwMDg5MDggMDAwMDAgbiAKMDAwMDAwOTE1NSAwMDAwMCBuIAowMDAwMDA5MzQ0IDAwMDAwIG4gCjAwMDAwMTE5NzYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyA0MCAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgNDEgPj4Kc3RhcnR4cmVmCjEyMTMzCiUlRU9GCg==\n", - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-03-21T14:40:51.982750\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.5.1, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" + "text/plain": "
", + "image/svg+xml": "\n\n\n \n \n \n \n 2023-04-19T16:35:25.619942\n image/svg+xml\n \n \n Matplotlib v3.7.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "application/pdf": "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Rm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXQovQ2hhclByb2NzIDE2IDAgUgovRW5jb2RpbmcgPDwgL1R5cGUgL0VuY29kaW5nCi9EaWZmZXJlbmNlcyBbIDMyIC9zcGFjZSA0MCAvcGFyZW5sZWZ0IC9wYXJlbnJpZ2h0IDQ2IC9wZXJpb2QgNDggL3plcm8gL29uZSAvdHdvIC90aHJlZQovZm91ciA1NCAvc2l4IC9zZXZlbiAvZWlnaHQgOTcgL2EgMTA1IC9pIDEwOCAvbCAxMTAgL24gL28gL3AgMTE1IC9zIC90IC91CjEyNCAvYmFyIF0KPj4KL1dpZHRocyAxMyAwIFIgPj4KZW5kb2JqCjE0IDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUgL0JNUVFEVitEZWphVnVTYW5zIC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Bc2NlbnQgOTI5IC9EZXNjZW50IC0yMzYgL0NhcEhlaWdodCAwCi9YSGVpZ2h0IDAgL0l0YWxpY0FuZ2xlIDAgL1N0ZW1WIDAgL01heFdpZHRoIDEzNDIgPj4KZW5kb2JqCjEzIDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjE2IDAgb2JqCjw8IC9hIDE3IDAgUiAvYmFyIDE4IDAgUiAvZWlnaHQgMTkgMCBSIC9mb3VyIDIwIDAgUiAvaSAyMSAwIFIgL2wgMjIgMCBSCi9uIDIzIDAgUiAvbyAyNCAwIFIgL29uZSAyNSAwIFIgL3AgMjYgMCBSIC9wYXJlbmxlZnQgMjcgMCBSCi9wYXJlbnJpZ2h0IDI4IDAgUiAvcGVyaW9kIDI5IDAgUiAvcyAzMCAwIFIgL3NldmVuIDMxIDAgUiAvc2l4IDMyIDAgUgovc3BhY2UgMzMgMCBSIC90IDM0IDAgUiAvdGhyZWUgMzUgMCBSIC90d28gMzYgMCBSIC91IDM3IDAgUiAvemVybyAzOSAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDE1IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL1R5cGUgL0V4dEdTdGF0ZSAvQ0EgMCAvY2EgMSA+PgovQTIgPDwgL1R5cGUgL0V4dEdTdGF0ZSAvQ0EgMSAvY2EgMSA+PgovQTMgPDwgL1R5cGUgL0V4dEdTdGF0ZSAvQ0EgMC44IC9jYSAwLjggPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0YxLURlamFWdVNhbnMtdW5pMjdFOSAzOCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMTEgMCBSIF0gL0NvdW50IDEgPj4KZW5kb2JqCjQwIDAgb2JqCjw8IC9DcmVhdG9yIChNYXRwbG90bGliIHYzLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjcuMSkKL0NyZWF0aW9uRGF0ZSAoRDoyMDIzMDQxOTE2MzUyNS0wNScwMCcpID4+CmVuZG9iagp4cmVmCjAgNDEKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTIwMDQgMDAwMDAgbiAKMDAwMDAxMTczNyAwMDAwMCBuIAowMDAwMDExNzY5IDAwMDAwIG4gCjAwMDAwMTE5MTEgMDAwMDAgbiAKMDAwMDAxMTkzMiAwMDAwMCBuIAowMDAwMDExOTUzIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM0MyAwMDAwMCBuIAowMDAwMDA0MDMyIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwNDAxMSAwMDAwMCBuIAowMDAwMDEwMzkwIDAwMDAwIG4gCjAwMDAwMTAxODMgMDAwMDAgbiAKMDAwMDAwOTcyMCAwMDAwMCBuIAowMDAwMDExNDQzIDAwMDAwIG4gCjAwMDAwMDQwNTIgMDAwMDAgbiAKMDAwMDAwNDQzMiAwMDAwMCBuIAowMDAwMDA0NTYwIDAwMDAwIG4gCjAwMDAwMDUwMjggMDAwMDAgbiAKMDAwMDAwNTE5NCAwMDAwMCBuIAowMDAwMDA1MzM4IDAwMDAwIG4gCjAwMDAwMDU0NTcgMDAwMDAgbiAKMDAwMDAwNTY5MyAwMDAwMCBuIAowMDAwMDA1OTg0IDAwMDAwIG4gCjAwMDAwMDYxMzkgMDAwMDAgbiAKMDAwMDAwNjQ1MSAwMDAwMCBuIAowMDAwMDA2Njc0IDAwMDAwIG4gCjAwMDAwMDY4OTggMDAwMDAgbiAKMDAwMDAwNzAyMSAwMDAwMCBuIAowMDAwMDA3NDI4IDAwMDAwIG4gCjAwMDAwMDc1NzAgMDAwMDAgbiAKMDAwMDAwNzk2MyAwMDAwMCBuIAowMDAwMDA4MDUzIDAwMDAwIG4gCjAwMDAwMDgyNTkgMDAwMDAgbiAKMDAwMDAwODY3MiAwMDAwMCBuIAowMDAwMDA4OTk2IDAwMDAwIG4gCjAwMDAwMDkyNDMgMDAwMDAgbiAKMDAwMDAwOTQzMiAwMDAwMCBuIAowMDAwMDEyMDY0IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgNDEgL1Jvb3QgMSAwIFIgL0luZm8gNDAgMCBSID4+CnN0YXJ0eHJlZgoxMjIyMQolJUVPRgo=" }, + "metadata": {}, "output_type": "display_data" } ], "source": [ + "# array of time list\n", "tlist = np.linspace(0, 120, 200) # total time\n", "\n", "# This simulation is just for viewing the affect of the pulse\n", "result = qt.sesolve(\n", - " H_qbt_drive, qt.basis(20, hilbertspace.dressed_index(product_states[3])), tlist, e_ops=[state * state.dag() for state in states]\n", + " H_qbt_drive,\n", + " qt.basis(20, hilbertspace.dressed_index(product_states[3])),\n", + " tlist,\n", + " e_ops=[state * state.dag() for state in states]\n", ")\n", "\n", "for idx, res in zip(idxs, result.expect):\n", @@ -1342,9 +268,9 @@ "metadata": {}, "outputs": [], "source": [ - "prop = qt.propagator(H_qbt_drive, tlist)[\n", - " -1\n", - "] # get the propagator at the final time step\n", + "# get the propagator at the final time step\n", + "prop = qt.propagator(H_qbt_drive, tlist)[-1] \n", + "\n", "# truncate the propagator to the computational subspace\n", "Uc = qt.Qobj(\n", " [\n", @@ -1364,7 +290,6 @@ "def remove_global_phase(op):\n", " return op * np.exp(-1j * cmath.phase(op[0, 0]))\n", "\n", - "\n", "# The process for obtaining the Z rotations is taken from page 3 of Nesterov et al., at the\n", "# bottom of the paragraph beginning, \"To model gate operation...\"\n", "def dphi(state):\n", @@ -1380,21 +305,8 @@ "outputs": [ { "data": { - "text/latex": [ - "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.000 & (-7.352\\times10^{-08}+9.497\\times10^{-08}j) & (3.995\\times10^{-05}+2.183\\times10^{-05}j) & (-8.539\\times10^{-07}+2.828\\times10^{-08}j)\\\\(7.019\\times10^{-08}+9.487\\times10^{-08}j) & 0.996 & (-2.175\\times10^{-06}+6.467\\times10^{-06}j) & (7.574\\times10^{-05}-2.006\\times10^{-05}j)\\\\(-3.997\\times10^{-05}+2.179\\times10^{-05}j) & (9.747\\times10^{-07}+3.012\\times10^{-06}j) & 1.000 & (-3.475\\times10^{-06}-6.600\\times10^{-07}j)\\\\(2.421\\times10^{-07}+1.489\\times10^{-07}j) & (7.023\\times10^{-05}+3.479\\times10^{-05}j) & (-3.537\\times10^{-06}-4.982\\times10^{-08}j) & (-0.978-0.200j)\\\\\\end{array}\\right)\\end{equation*}" - ], - "text/plain": [ - "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", - "Qobj data =\n", - "[[ 9.99997558e-01+0.00000000e+00j -7.35241089e-08+9.49725526e-08j\n", - " 3.99463511e-05+2.18320693e-05j -8.53948251e-07+2.82839237e-08j]\n", - " [ 7.01944586e-08+9.48664959e-08j 9.95520147e-01+0.00000000e+00j\n", - " -2.17470260e-06+6.46731036e-06j 7.57443646e-05-2.00623781e-05j]\n", - " [-3.99721921e-05+2.17851550e-05j 9.74663842e-07+3.01235561e-06j\n", - " 9.99620205e-01+0.00000000e+00j -3.47478033e-06-6.59973133e-07j]\n", - " [ 2.42061473e-07+1.48908800e-07j 7.02332015e-05+3.47883383e-05j\n", - " -3.53709345e-06-4.98170250e-08j -9.77936404e-01-2.00098574e-01j]]" - ] + "text/plain": "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\nQobj data =\n[[ 9.99997558e-01+0.00000000e+00j 7.35241090e-08-9.49725529e-08j\n 3.99463511e-05+2.18320693e-05j -8.53948262e-07+2.82839250e-08j]\n [-7.01944586e-08-9.48664962e-08j 9.95520147e-01+0.00000000e+00j\n 2.17470258e-06-6.46731035e-06j -7.57443647e-05+2.00623781e-05j]\n [-3.99721921e-05+2.17851550e-05j -9.74663830e-07-3.01235561e-06j\n 9.99620205e-01+0.00000000e+00j -3.47478033e-06-6.59973136e-07j]\n [ 2.42061470e-07+1.48908800e-07j -7.02332015e-05-3.47883383e-05j\n -3.53709345e-06-4.98170249e-08j -9.77936404e-01-2.00098574e-01j]]", + "text/latex": "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False $ \\\\ \\left(\\begin{matrix}1.000 & (7.352\\times10^{-08}-9.497\\times10^{-08}j) & (3.995\\times10^{-05}+2.183\\times10^{-05}j) & (-8.539\\times10^{-07}+2.828\\times10^{-08}j)\\\\(-7.019\\times10^{-08}-9.487\\times10^{-08}j) & 0.996 & (2.175\\times10^{-06}-6.467\\times10^{-06}j) & (-7.574\\times10^{-05}+2.006\\times10^{-05}j)\\\\(-3.997\\times10^{-05}+2.179\\times10^{-05}j) & (-9.747\\times10^{-07}-3.012\\times10^{-06}j) & 1.000 & (-3.475\\times10^{-06}-6.600\\times10^{-07}j)\\\\(2.421\\times10^{-07}+1.489\\times10^{-07}j) & (-7.023\\times10^{-05}-3.479\\times10^{-05}j) & (-3.537\\times10^{-06}-4.982\\times10^{-08}j) & (-0.978-0.200j)\\\\\\end{matrix}\\right)$" }, "execution_count": 10, "metadata": {}, @@ -1416,9 +328,7 @@ "outputs": [ { "data": { - "text/plain": [ - "0.9906027020696448" - ] + "text/plain": "0.9906027020232415" }, "execution_count": 11, "metadata": {}, @@ -1429,6 +339,18 @@ "#fidelity measure given on page 3 of Nesterov et al.\n", "((Ucprime.dag() * Ucprime).tr() + np.abs((Ucprime.dag() * cz_gate()).tr()) ** 2) / 20" ] + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } } ], "metadata": { @@ -1457,4 +379,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file