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"
- ],
- "text/plain": [
- "