{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "556562f3-8ece-4517-8c93-ee5e2fc29131", "metadata": {}, "source": [ "# Example-03: Implicit midpoint integrator" ] }, { "cell_type": "code", "execution_count": 1, "id": "3580ad01-3868-4082-b147-fe03e583a5c8", "metadata": {}, "outputs": [], "source": [ "# In this example implicit midpoint integrator usage is illustrated\n", "# Integration step is constructed from a given hamiltonian h(q, p, t, *args)\n", "# The resulting integration step signature is (qp, dt, t, *args)\n", "# Integration step can be used with Yoshida composition and is JAX composable" ] }, { "cell_type": "code", "execution_count": 2, "id": "d8ffcc92-1eec-414a-ba56-d5a72246d5c9", "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 midpoint\n", "\n", "# Plotting\n", "\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "id": "2bf563a3-3368-4499-8ce4-15879f80adb2", "metadata": {}, "outputs": [], "source": [ "# Set data type\n", "\n", "jax.config.update(\"jax_enable_x64\", True)" ] }, { "cell_type": "code", "execution_count": 4, "id": "6c1c1a07-e0ef-4810-89a1-6aeb41a4779f", "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": "90a4cf19-bbcf-4937-ab1a-2323276b1af3", "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": "82f230e7-fa5e-42c0-9cd5-315dded9d2aa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "27.3 µs ± 905 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": "f0721be4-7eed-4e3a-83be-cb6d3dfcdbf3", "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 (implicit midpoint)\n", "\n", "# Define hamiltonian function\n", "\n", "def h(q, p, t, *args):\n", " return jax.numpy.sum(1/2*(q**2 + p**2) + 1/3*q**3)\n", "\n", "# Define implicit step\n", "\n", "integrator = midpoint(h, ns=1)\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": "838bf5ef-51ee-4212-834d-cc6c3993776d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "262 µs ± 3.87 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n" ] } ], "source": [ "%%timeit\n", "\n", "# Timing\n", "\n", "step(x, dt, t)" ] }, { "cell_type": "code", "execution_count": 9, "id": "ab2c2135-9394-4579-935a-18ede7d48dd8", "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": "d39e94a7-351c-4e65-bc3a-76c8a74c9f9d", "metadata": {}, "outputs": [ { "data": { "image/png": "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hhtuGPn9P/mTPzEvfOELzeGHH25e8pKXmC9+8YuZWlqekL667LLLzCtf+UqzefNms3nzZnPmmWeO7dtJI/TaclxxxRWm1+uZ173udboN7BAQqxE88cQT5j/8h/9g3vnOd7J/8zu/8zvm4x//uNm9e7fZs2ePOeKII8xZZ51lHnvsMcWWlueNb3yj+da3vmW+9KUvmT//8z83X/nKV8zb3/72kb9585vfbG677TbzhS98wdx8883mF3/xF825555rbrrppkytLkdMf11//fXm7LPPNq95zWvMDTfcYG688Uazffv2sWstd52YvnL87u/+run1esotrIfQvvre975nvve975mPfOQj5u///u/Npz71KXP11Vebt771rRlbrc9nP/tZ8+53v9tcdNFF5u/+7u/MS1/6UnPWWWeZ73//+43fv+6668zy8rJ561vfam666Sbzute9zrzuda8zf//3f5+55fkJ7au/+Zu/McvLy+bLX/6yuf76682WLVvMa17zGnPvvfdmbnkZQvvLceedd5r/9J/+k3nlK1+ZqaUdwYJo/viP/9geddRRY7936NAhe/zxx9sPf/jDw789+OCDdsOGDfYzn/mMYgvLcsstt1hjjL3xxhuHf/vLv/xL2+v17L333tv6uyOOOML+j//xP9b8bX5+3l522WVqba2B2P469dRT7fvf//4cTayG2L6y1tqbbrrJnnjiifa+++6zxhh71VVXKbe2LCl9Rbnyyivt7OysffLJJzWaWYRTTjnFXnDBBcP/Xl1dtSeccIK9+OKLG79/7rnn2p//+Z9f87dTTz3VvuMd71BtZw2E9pXPU089ZY888kj76U9/WquJVRHTX0899ZQ9/fTT7R/+4R/at7zlLfacc87J0NJuMNnWSyXccccdZt++febMM88c/u2oo44yp556qrn++usLtkyX66+/3mzatMksLS0N/3bmmWeafr9v9uzZ0/q7008/3Xz2s581+/fvN4cOHTJXXHGFeeyxx8y/+Tf/JkOryxHTX9///vfNnj17zLHHHmtOP/10c9xxx5kzzjjDfO1rX8vV7CLEXluPPPKIOe+888yll15qjj/++BxNLU5sX/kcOHDAbNy40Rx22GEazczOE088Yb75zW+ueS73+31z5plntj6Xr7/++jXfN8aYs846a6Kf48bE9ZXPI488Yp588kkzPz+v1cxqiO2v//pf/6s59thjJ24GQwKI1Qzs27fPGGPMcccdt+bvxx133PD/m0T27dtnjj322DV/O+yww8z8/PzI477yyivNk08+aY4++mizYcMG8453vMNcddVV5nnPe552k4sS01/f/e53jTHGfOhDHzJve9vbzNVXX21e9rKXmVe/+tUTHRMde239xm/8hjn99NPNOeeco93EaojtK8oPf/hD81u/9VvsMIsu8MMf/tCsrq4GPZf37ds3dc9xY+L6yue9732vOeGEE9aJ/Ukkpr++9rWvmT/6oz8yl112WY4mdg6I1X9hx44dptfrjfx8+9vfLt3MKtDuqw984APmwQcfNH/1V39lvvGNb5h3v/vd5txzzzU333yz4FHkQ7O/Dh06ZIwx5h3veIc5//zzzcknn2w+9rGPmZNOOsl88pOflDyMLGj21Re+8AXz13/91+Z3f/d3ZRtdiFzPrIceesj8/M//vHnxi19sPvShD6U3HEwdu3btMldccYW56qqrzOGHH166OdVx8OBB86Y3vclcdtll5tnPfnbp5lTJZMznCPCe97zH/PIv//LI7/zYj/1Y1LbddOP9999vnvOc5wz/fv/995uf/umfjtpmSbh9dfzxx68LJn/qqafM/v37W6dg//Ef/9Fccskl5u///u/NT/zETxhjjHnpS19qvvrVr5pLL73U7N69W+QYcqLZX+56evGLX7zm7y960YvMXXfdFd/oQmj21V//9V+bf/zHf1xXweP1r3+9eeUrX2n+5m/+JqHl+dHsK8fBgwfN2WefbY488khz1VVXmcFgkNrsanj2s59tZmZmzP3337/m7/fff39rvxx//PFB358UYvrK8ZGPfMTs2rXL/NVf/ZX5qZ/6Kc1mVkNof/3jP/6jufPOO82/+3f/bvg3Z0Qcdthh5rbbbjM//uM/rtvoyoFY/ReOOeYYc8wxx6hs+0d/9EfN8ccfb6699tqhOH3ooYfMnj17gioK1AK3r0477TTz4IMPmm9+85vm5S9/uTHmacFw6NAhc+qppzb+5pFHHjHGmHWZ7DMzM8Obt2to9tfWrVvNCSecYG677bY1f//Od75jXvva16Y3PjOafbVjxw7zH//jf1zzt5e85CXmYx/72JqXRFfQ7Ctjnn5GnXXWWWbDhg3mC1/4wsQ5YrOzs+blL3+5ufbaa4clgg4dOmSuvfZas3379sbfnHbaaebaa681v/7rvz7825e+9CVz2mmnZWhxOWL6ypinq+Ds3LnTXHPNNWtipied0P564QtfuG7m8P3vf785ePCg+b3f+z2zZcuWHM2um9IZXl1k79699qabbrL/5b/8F/usZz3L3nTTTfamm26yBw8eHH7npJNOsn/6p386/O9du3bZTZs22c9//vP2//2//2fPOecc+6M/+qP20UcfLXEI2Tj77LPtySefbPfs2WO/9rWv2ec///l2eXl5+P/fc8899qSTTrJ79uyx1lr7xBNP2Oc973n2la98pd2zZ4+9/fbb7Uc+8hHb6/XsX/zFX5Q6jGyE9pe11n7sYx+zGzdutH/yJ39i/+Ef/sG+//3vt4cffri9/fbbSxxCNmL6ysdMQTUAa8P76sCBA/bUU0+1L3nJS+ztt99u77vvvuHnqaeeKnUY4lxxxRV2w4YN9lOf+pS95ZZb7Nvf/na7adMmu2/fPmuttW9605vsjh07ht//27/9W3vYYYfZj3zkI/bWW2+1F110kR0MBvbmm28udQjZCO2rXbt22dnZWfu5z31uzfVD35OTTGh/+aAawFogViN4y1veYo0x6z5f/vKXh98xxtg//uM/Hv73oUOH7Ac+8AF73HHH2Q0bNthXv/rV9rbbbsvf+Mw88MADdnl52T7rWc+yGzdutOeff/6ah9Udd9yxru++853v2F/8xV+0xx57rJ2bm7M/9VM/ta6U1aQS01/WWnvxxRfb5z73uXZubs6edtpp9qtf/Wrmlucntq8o0yJWQ/vqy1/+cuMzzhhj77jjjjIHocQnPvEJu7CwYGdnZ+0pp5xiv/71rw//vzPOOMO+5S1vWfP9K6+80r7gBS+ws7Oz9id+4iemYhDtCOmrxcXFxuvnoosuyt/wQoReWxSI1bX0rLU2o5ELAAAAAAAAG1QDAAAAAAAA1QKxCgAAAAAAqgViFQAAAAAAVAvEKgAAAAAAqBaIVQAAAAAAUC0QqwAAAAAAoFogVgEAAAAAQLVArAIAAAAAgGqBWAUAAAAAANUCsQoAAAAAAKoFYhUAAAAAAFTL/w+e9Rsw1qMr7QAAAABJRU5ErkJggg==", "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": "1bec6d63-276e-4875-9d89-e0d645716957", "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": [ "# Implicit 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": "9d3ee266-57f2-4787-b69b-908b41108aff", "metadata": {}, "outputs": [], "source": [ "# Batched evaluation with vectorized map" ] }, { "cell_type": "code", "execution_count": 13, "id": "c6380db5-022e-49fe-baf5-1e8cdaec50f4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 5.64 s, sys: 9.39 ms, total: 5.65 s\n", "Wall time: 5.55 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": "d1c1c70b-4732-4d59-b24d-6a7dd07df10a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.08 ms, sys: 11 µs, total: 1.09 ms\n", "Wall time: 933 µs\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": "13b4e0b9-0010-495f-96a2-c52b55b6b911", "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": "6b5e15f8-5cbe-4bed-9a6d-9796df0eec15", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.36 ms, sys: 0 ns, total: 1.36 ms\n", "Wall time: 317 µs\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 }