{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "556562f3-8ece-4517-8c93-ee5e2fc29131", "metadata": {}, "source": [ "# Example-04: Tao integrator" ] }, { "cell_type": "code", "execution_count": 1, "id": "d78e4313-990f-46c2-9401-56c92623e208", "metadata": {}, "outputs": [], "source": [ "# In this example Tao integrator usage is illustrated\n", "# Integration step is constructed from a given hamiltonian h(q, p, *args)\n", "# The resulting integration step signature is (qp, dt, *args)\n", "# Integration step can be used with Yoshida composition and is JAX composable" ] }, { "cell_type": "code", "execution_count": 2, "id": "b3d583d2-48d1-4632-ae8f-4ed3ef5c3519", "metadata": {}, "outputs": [], "source": [ "# Import\n", "\n", "import jax\n", "from jax import jit\n", "from jax import vmap\n", "\n", "# Function iterations\n", "\n", "from sympint import nest\n", "from sympint import nest_list\n", "\n", "from sympint import fold\n", "from sympint import fold_list\n", "\n", "# Yoshida composition\n", "\n", "from sympint import sequence\n", "\n", "# Implicit midpoint integrator\n", "\n", "from sympint import tao\n", "\n", "# Plotting\n", "\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "id": "1656edfe-1e2d-4a0c-8287-51a9ee1aaa63", "metadata": {}, "outputs": [], "source": [ "# Set data type\n", "\n", "jax.config.update(\"jax_enable_x64\", True)" ] }, { "cell_type": "code", "execution_count": 4, "id": "4c3b749f-5c21-4cc2-9461-7ae676cd98bc", "metadata": {}, "outputs": [], "source": [ "# Set device\n", "\n", "device, *_ = jax.devices('cpu')\n", "jax.config.update('jax_default_device', device)" ] }, { "cell_type": "code", "execution_count": 5, "id": "e7d993f6-a9ce-4e6f-9c82-c148d80cf8f8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "19\n" ] }, { "data": { "text/plain": [ "Array([ 0.09446052, -0.06067929], dtype=float64)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Construct Yoshida composition step (multi-map integrator)\n", "\n", "# H = H1 + H2\n", "# H1 = 1/2 q**2 + 1/3 q**3 -> [q, p] -> [q, p - t*q - t*q**2]\n", "# H2 = 1/2 p**2 -> [q, p] -> [q + t*q, p]\n", "\n", "# Set mappings for sovable parts\n", "\n", "def fn(x, t):\n", " q, p = x\n", " return jax.numpy.stack([q, p - t*(q + q**2)])\n", "\n", "def gn(x, t):\n", " q, p = x\n", " return jax.numpy.stack([q + t*p, p])\n", "\n", "# Generate Yoshida sequence\n", "\n", "fs = sequence(0, 2, [fn, gn], merge=True)\n", "print(len(fs))\n", "\n", "# Generate folded step (sequence composition)\n", "\n", "integrator = fold(fs)\n", "\n", "# Set parameters\n", "\n", "dt = jax.numpy.array(0.01)\n", "x = jax.numpy.array([0.1, -0.05])\n", "\n", "# Compile several integration steps\n", "\n", "step = jit(nest(10, integrator))\n", "xa = step(x, dt)\n", "xa" ] }, { "cell_type": "code", "execution_count": 6, "id": "198b3cbd-70e3-48b8-83d4-dcece22baa36", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "24.2 µs ± 225 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)\n" ] } ], "source": [ "%%timeit\n", "\n", "step(x, dt)" ] }, { "cell_type": "code", "execution_count": 7, "id": "9c2cb8af-5c79-42fc-8d19-1aa5901eadae", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9\n" ] }, { "data": { "text/plain": [ "Array([ 0.09446052, -0.06067929], dtype=float64)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Construct Yoshida composition step (tao)\n", "\n", "# Define hamiltonian function\n", "\n", "def h(q, p, *args):\n", " return jax.numpy.sum(1/2*(q**2 + p**2) + 1/3*q**3)\n", "\n", "# Define implicit step\n", "\n", "integrator = tao(h, binding=0.0)\n", "\n", "# Generate Yoshida sequence\n", "\n", "fs = sequence(0, 2, [integrator], merge=False)\n", "print(len(fs))\n", "\n", "# Generate folded step (sequence composition)\n", "\n", "integrator = fold(fs)\n", "\n", "# Set parameters\n", "\n", "dt = jax.numpy.array(0.01)\n", "t = jax.numpy.array(0.0)\n", "x = jax.numpy.array([0.1, -0.05])\n", "\n", "# Compile several steps\n", "\n", "step = jit(nest(10, integrator))\n", "xb = step(x, dt, t)\n", "xb" ] }, { "cell_type": "code", "execution_count": 8, "id": "2632663d-5f58-4637-8af6-8eeb9d938ad1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "60.9 µs ± 215 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)\n" ] } ], "source": [ "%%timeit\n", "\n", "# Timing\n", "\n", "step(x, dt, t)" ] }, { "cell_type": "code", "execution_count": 9, "id": "2dc921cb-69a7-4184-a776-d2b03b29f3ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Array(True, dtype=bool)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Compare\n", "\n", "jax.numpy.isclose(jax.numpy.linalg.norm(xa - xb), 0.0)" ] }, { "cell_type": "code", "execution_count": 10, "id": "c23717fe-ef5d-451b-b47a-63f3d825cf15", "metadata": {}, "outputs": [ { "data": { "image/png": "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ZbjxxhtVp9NRb3jDG2Qb2CIgVgN46qmn1M///M+rd77znc7f+e///b+rD3/4w2ppaUkdOHBAnX766WrLli3q+PHjgi3Nz5vf/Gb1ta99TX32s59Vf/EXf6E+//nPqyuvvLLxO29961vVPffcoz71qU+pO++8U/3cz/2c2rp1q7rjjjsStToPIcdq//796tJLL1Wve93r1G233aZuv/12tWPHjpHzLI8DIcfL8Lu/+7uq0+kIt7AcfI/Vt7/9bfXtb39bfeADH1Bf/epX1Sc+8Qn1mc98Rl1xxRUJWy3PTTfdpN797nera665Rv393/+9euUrX6m2bNmiHnnkkcrlb731VrWwsKCuuOIKdccdd6g3vOEN6g1veIP66le/mrjl6fE9Vn/7t3+rFhYW1Oc+9zm1f/9+tX79evW6171OPfTQQ4lbngff42W4//771X/8j/9RveY1r0nU0pagQTB/9Ed/pFevXj1yuZMnT+pzzjlH/87v/M7gb4899phesWKFvuGGGwRbmJe77rpLK6X07bffPvjbX/3VX+lOp6Mfeuih2u+dfvrp+n/+z/859LeZmRn9sY99TKytuQk9Vps2bdK//uu/nqKJRRF6vLTW+o477tDnn3++/s53vqOVUvrmm28Wbm1eYo4VZe/evXp6elo//fTTEs3MwsaNG/VVV101+H15eVmfd955+tprr61cfuvWrfpnfuZnhv62adMm/Y53vEO0nSXge6xsTpw4oc844wz9x3/8x1JNLIqQ43XixAm9efNm/Qd/8Af68ssv15dddlmClraD8bdfCuC+++5Thw4dUpdccsngb6tXr1abNm1S+/fvz9gyWfbv36/WrFmj5ufnB3+75JJLVLfbVQcOHKj93ubNm9VNN92kDh8+rE6ePKluvPFGdfz4cfWv//W/TtDqPIQcq0ceeUQdOHBAnXXWWWrz5s3q7LPPVhdffLH64he/mKrZ2Qi9th5//HG1bds2df3116tzzjknRVOzE3qsbI4cOaJWrVqlTjvtNIlmJuepp55SX/nKV4aey91uV11yySW1z+X9+/cPLa+UUlu2bBnr57hSYcfK5vHHH1dPP/20mpmZkWpmMYQer//yX/6LOuuss8ZuBIMDiNUEHDp0SCml1Nlnnz3097PPPnvwf+PIoUOH1FlnnTX0t9NOO03NzMw07vfevXvV008/rdat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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot several phase space trajectories\n", "\n", "# Define single orbit generator \n", "\n", "orbit = jit(nest_list(2**10, step))\n", "orbit(x, dt, t)\n", "\n", "# Generate several orbits\n", "\n", "qs = jax.numpy.linspace(0.0, 0.5, 21)\n", "ps = jax.numpy.zeros_like(qs)\n", "xs = jax.numpy.stack([qs, ps]).T\n", "\n", "trajectories = vmap(orbit, (0, None, None))(xs, dt, t)\n", "\n", "# Plot orbits\n", "\n", "plt.figure(figsize=(8, 8))\n", "for trajectory in trajectories:\n", " plt.scatter(*trajectory.T, color='black', marker='o', s=1)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "id": "022468d8-cca0-43a9-a8fc-2268b1b03a57", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Array([[ 0.99994002, 0.0099998 ],\n", " [-0.01199472, 0.99994003]], dtype=float64)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Tao step is differentiable with respect to initial condition and parameters\n", "\n", "jax.jacrev(integrator)(x, dt, t)" ] }, { "cell_type": "code", "execution_count": 12, "id": "206a4aeb-1d3c-416d-80c1-8ec8bc8ebf71", "metadata": {}, "outputs": [], "source": [ "# Batched evaluation with vectorized map" ] }, { "cell_type": "code", "execution_count": 13, "id": "8cac6f85-5033-4d50-a9e0-1eac338edb75", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.25 s, sys: 5.99 ms, total: 1.26 s\n", "Wall time: 1.15 s\n" ] }, { "data": { "text/plain": [ "(21, 1024, 2)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "jax.numpy.stack([orbit(x, dt, t) for x in xs]).shape" ] }, { "cell_type": "code", "execution_count": 14, "id": "0e7b8e3e-6abe-4e4e-b716-64d50eb2f8d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 76.4 ms, sys: 1.85 ms, total: 78.3 ms\n", "Wall time: 77.1 ms\n" ] }, { "data": { "text/plain": [ "(21, 1024, 2)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "vmap(orbit, (0, None, None))(xs, dt, t).shape" ] }, { "cell_type": "code", "execution_count": 15, "id": "9f04e996-9da5-440e-aab0-9b057d8992e2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(21, 1024, 2)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Compile\n", "# Note, changing batch size will trigger a recompile\n", "\n", "fj = jit(vmap(orbit, (0, None, None)))\n", "fj(xs, dt, t).shape" ] }, { "cell_type": "code", "execution_count": 16, "id": "ca46f6e1-91da-4c28-905c-d0992281546a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 77.8 ms, sys: 871 µs, total: 78.7 ms\n", "Wall time: 77.7 ms\n" ] }, { "data": { "text/plain": [ "(21, 1024, 2)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "fj(xs, dt, t).shape" ] } ], "metadata": { "colab": { "collapsed_sections": [ "myt0_gMIOq7b", "5d97819c" ], "name": "03_frequency.ipynb", "provenance": [] }, "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.1" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false } }, "nbformat": 4, "nbformat_minor": 5 }