{ "cells": [ { "cell_type": "markdown", "id": "a9320fa8-31c5-4248-96b0-3549a13dda6f", "metadata": {}, "source": [ "---\n", "title: Quickstart\n", "description: A quickstart guide for the pauli-prop Qiskit addons package\n", "---\n", "\n", "# Quickstart\n", "\n", "In this guide we use the ``pauli-prop`` package to classically simulate the time dynamics of a 10-qubit kicked Ising model on a 1D spin chain." ] }, { "cell_type": "markdown", "id": "3b5bf7dc-1cd8-41d3-b8ce-cc75a66fed8d", "metadata": {}, "source": [ "## Prepare the inputs for Pauli propagation\n", "\n", "The Hamiltonian considered is:\n", "\n", "$H = -J\\sum\\limits_{\\langle i,j \\rangle} Z_iZ_j + h\\sum\\limits_iX_i$\n", "\n", "where $J>0$ describes the coupling of nearest-neighbor spins, $i" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "from qiskit import QuantumCircuit\n", "from qiskit.quantum_info import SparsePauliOp\n", "from qiskit.transpiler import CouplingMap\n", "\n", "num_qubits = 10\n", "coupling_map = CouplingMap.from_line(num_qubits, bidirectional=False)\n", "\n", "# Num Trotter steps\n", "num_steps = 20\n", "theta_rx = np.pi / 6\n", "\n", "# Average single-site magnetization\n", "observable = (\n", " SparsePauliOp([\"I\" * iq + \"Z\" + \"I\" * (num_qubits - iq - 1) for iq in range(num_qubits)])\n", " / num_qubits\n", ")\n", "\n", "# Create the Trotter circuit\n", "num_qubits = 10\n", "num_steps = 20\n", "theta_rx = np.pi / 6\n", "circuit = QuantumCircuit(num_qubits)\n", "edges = CouplingMap.from_line(num_qubits, bidirectional=False).get_edges()\n", "for _ in range(num_steps):\n", " circuit.rx(theta_rx, [i for i in range(num_qubits)])\n", " for edge in edges:\n", " circuit.sdg(edge)\n", " circuit.ry(np.pi / 2, edge[1])\n", " circuit.cx(edge[0], edge[1])\n", " circuit.ry(-np.pi / 2, edge[1])\n", "circuit.draw(\"mpl\", fold=-1)" ] }, { "cell_type": "markdown", "id": "c05fa0f8-605e-4172-8880-0de89360f27d", "metadata": {}, "source": [ "## Simulate the time evolution of the system with Pauli propagation\n", "\n", "Once we have our circuit, $U$, and observable, $O$, we can easily simulate the system in a few steps:\n", "\n", "- Propagate $O$ through $U$, resulting in a new operator, $O^\\prime$, using ``pauli_prop.propagate_through_circuit``. Clifford gates in the circuit are handled automatically -- they are collected into a single ``Clifford`` operator and evolved through efficiently, so only the Pauli rotation gates require approximate propagation.\n", "- Approximate the expectation value as $\\langle0|O^\\prime|0\\rangle \\approx \\langle0|U^\\dagger OU|0\\rangle$ by summing the coefficients in $O^\\prime$ associated with fully-diagonal Pauli terms (Pauli terms containing either ``I`` or ``Z`` on all qubits). Remember, this is an approximation because we truncated terms from $O^\\prime$ as we propagated it through the non-Clifford part of the circuit." ] }, { "cell_type": "code", "execution_count": 2, "id": "c8a27469-ab72-4d50-9544-d446af847da5", "metadata": { "execution": { "iopub.execute_input": "2026-08-20T23:46:47.628414Z", "iopub.status.busy": "2026-08-20T23:46:47.628291Z", "iopub.status.idle": "2026-08-20T23:47:11.692767Z", "shell.execute_reply": "2026-08-20T23:47:11.692320Z" } }, "outputs": [], "source": [ "import time\n", "\n", "from pauli_prop import propagate_through_circuit\n", "\n", "max_terms_list = [10**i for i in range(8)]\n", "approx_evs = []\n", "durations = []\n", "for max_terms in max_terms_list:\n", " st = time.perf_counter()\n", " evolved_obs = propagate_through_circuit(\n", " observable, circuit, max_terms=max_terms, atol=1e-12, frame=\"h\"\n", " )[0]\n", " durations.append(time.perf_counter() - st)\n", " approx_evs.append(float(evolved_obs.coeffs[~evolved_obs.paulis.x.any(axis=1)].sum()))" ] }, { "cell_type": "markdown", "id": "7fb3e72f-20fb-4fd0-a301-2fcc6c0ddad5", "metadata": {}, "source": [ "As we run larger calculations, the expectation value approximations become more accurate. In this example, we saturate the full Pauli space at around $4^{10}\\approx10^6$, which is reflected in the curve flattening out between the final two points.\n", "\n", "While the plot below shows a monotonic convergence, Pauli propagation simulations do not generally converge monotonically. It is not unusual to see \"bumpy\" behavior in these types of plots." ] }, { "cell_type": "code", "execution_count": 3, "id": "f12410aa-ef3b-4ee6-ab35-f7e9001a92b8", "metadata": { "execution": { "iopub.execute_input": "2026-08-20T23:47:11.694296Z", "iopub.status.busy": "2026-08-20T23:47:11.694222Z", "iopub.status.idle": "2026-08-20T23:47:11.880429Z", "shell.execute_reply": "2026-08-20T23:47:11.880027Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Simulating 20-step 1D Ising Model')" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from qiskit_aer import AerSimulator\n", "\n", "sim_circ = circuit.copy()\n", "sim_circ.save_statevector()\n", "backend = AerSimulator(method=\"statevector\")\n", "psi = backend.run(sim_circ).result().data()[\"statevector\"]\n", "exact_ev = psi.expectation_value(observable)\n", "\n", "ax1 = plt.gca()\n", "ax1.plot(max_terms_list, approx_evs, marker=\"o\", label=\"Approximate\")\n", "ax1.axhline(exact_ev, linestyle=\"--\", color=\"green\", label=\"Exact\")\n", "ax1.set_xscale(\"log\")\n", "ax1.set_xlabel(\"# terms kept\")\n", "ax1.set_ylabel(r\"$\\frac{1}{N} \\sum_{i=1}^{N} \\langle z_i \\rangle$\")\n", "\n", "ax2 = ax1.twinx()\n", "ax2.plot(max_terms_list, durations, marker=\".\", label=\"Runtime\", color=\"orange\")\n", "ax2.set_ylabel(\"Runtime (s)\", color=\"orange\")\n", "ax2.set_yscale(\"log\")\n", "\n", "handles1, labels1 = ax1.get_legend_handles_labels()\n", "handles2, labels2 = ax2.get_legend_handles_labels()\n", "ax1.legend(handles1 + handles2, labels1 + labels2, loc=\"lower right\")\n", "\n", "plt.title(f\"Simulating {num_steps}-step 1D Ising Model\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.9" } }, "nbformat": 4, "nbformat_minor": 5 }