{ "cells": [ { "cell_type": "markdown", "id": "eac3271e", "metadata": {}, "source": [ "# The wavy ramp\n", "\n", "In this example, we will integrate the dynamics of a point mass bouncing down a non-linear ramp. The point mass behaves like a rubber ball, meaning that at every bounce it will dissipate part of its kinetic energy due to the [inelastic](https://en.wikipedia.org/wiki/Inelastic_collision) character of the collisions.\n", "\n", "Let us begin, as usual, with the definition of the dynamics:" ] }, { "cell_type": "code", "execution_count": 1, "id": "553b9d9f", "metadata": {}, "outputs": [], "source": [ "import heyoka as hy\n", "\n", "x, y, vx, vy = hy.make_vars(\"x\", \"y\", \"vx\", \"vy\")\n", "\n", "eqns = [(x, vx),\n", " (y, vy),\n", " (vx, hy.expression(0.)),\n", " # Downwards constant acceleration.\n", " (vy, hy.expression(-9.8))]" ] }, { "cell_type": "markdown", "id": "cbe82079", "metadata": {}, "source": [ "In other words, we are setting up a 2D dynamical system in which the only acceleration is due to the (constant) gravitational field.\n", "\n", "The contour of the ramp is defined by the non-linear equation\n", "\n", "$$\n", "y = 1 - x + 0.05 \\cos\\left(11 \\pi x \\right).\n", "$$\n", "\n", "Let us take a look:" ] }, { "cell_type": "code", "execution_count": 2, "id": "7faf59f9", "metadata": {}, "outputs": [ { "data": { "image/png": "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T2VnZ6tr167MbwdQJCjtAABYydvbW927d9euXbs0bNgws+MAKAEo7QAA5EPNmjXVpk0bzZs3TwkJCWbHAVDMUdoBAMinNm3aqG7duoqPj1diYqLZcQAUY05mBwAAwF45ODjowQcf1AcffKCHHnpIGzZsUN26dc2OVSBOnz6tw4cP68SJE8rOzpabm5sCAgIUEhIiNzc3s+MBJQ6lHQCA++Di4qKHH35Y8+fPV7t27bRlyxYFBwebHcsqWVlZWr58ub766islJSXp8OHDSk9Pv+WxDg4OqlSpkho0aKAHHnhAAwcOlIeHRxEnBkoei2EYhtkh7iY9PV0+Pj5KS0uTt7d3kY599uxZ5ioCAO7q3Llzev/99+Xt7a2tW7eqUqVKZke6o5ycHC1evFgffPCBNmzYoCtXrly/m+7n56cKFSqoVKlS8vDwkKOjo3JycnTp0iWdP39ex48f19GjR3X27Fm5ubkpNjZWU6ZMUcOGDc3+WoBdsabjcqcdAIACULZsWQ0YMEAffPCBoqKitG7dOgUFBZkd6yYHDhzQK6+8omXLlunChQsqU6aMGjdurJo1a6py5cpydHS8p88xDEOnTp3S7t27tXLlSi1btkwxMTF666237O5fGgB7wJ32u+BOOwDAGqmpqfr444/l7u6uH374QfXr1zc7kiTp+++/1z//+U+tXbtWDg4OatCggRo2bKjAwEBZLJb7+uysrCxt3bpV69atk2EYmjBhgl588UU5OLDeBXAn1nRcSvtdUNoBANY6d+6cPv74Y+Xk5GjBggXq2rWrKTlycnI0b948zZw5U8nJyfL29laTJk0UERFRKPPQL1++rFWrVmnnzp1q2LChvvzyS1WtWrXAxwGKC2s6Lr8CAwBQwMqWLavBgwfLx8dHcXFxevbZZ5WXl1dk46elpem5555T5cqVNXz4cKWlpalHjx4aM2aMWrVqVWgPjnp4eCguLk79+vXT77//rvDwcK1YsaJQxgJKGko7AACFwMvLS4MGDVLjxo312muvqXnz5jp06FChjrl//371799f/v7+mjp16vVfHh5//HE1aNDgnuer369atWpp2LBh8vT0VFxcnObOnVsk4wLFGQ+iAgBQSJycnBQbG6sqVapo+fLlqlu3rp566im99NJLBbbWeV5enr744gvNnDlTGzZskLOzs8LDwxUZGamyZcsWyBj54ePjo0cffVRLlizRyJEjdfLkSb3wwgum5QHsHXPa74I57QCAgnDp0iUlJiZq586dKleunJ544glNmDBBZcqUydfn7dixQ2+99Za++uornTlzRmXKlFFUVJTCwsJs6uVHubm5Wr58uXbs2KHx48frjTfeMDsSYDN4ELUAUdoBAAXp5MmTWr16tX777Te5uLgoKipKDzzwgLp27apatWrdciUXwzD0+++/KzExUatXr9a6det08uRJubi4qE6dOgoLC1NQUJDNrtZiGIa+++47bd68WZMnT9aLL75odiTAJlDaCxClHQBQGNLS0rRjxw799ttvOnnypCTJ09NT5cqVk4+PjxwdHZWVlaXz58/r/Pnzunr1qiTJ29tb1atXV61atVStWjW5urqa+TXumWEY+vrrr5WUlKQ333xT8fHxZkcCTMfLlQAAsHE+Pj5q166d2rVrp/T0dP355586efKkMjIydOnSJWVnZ8vBwUGBgYEKDQ1V+fLl5e/vX+Q3rwqKxWJR165dlZ2draeffloBAQHq3bu32bEAu0FpBwDAZN7e3vL29ladOnXMjlKoHBwc9OCDDyojI0ODBw9WtWrV1LhxY7NjAXbBNie/AQCAYsnJyUm9e/eWm5ubunbten1qEIA7o7QDAIAi5eHhoX79+iktLU2dO3cu0hdPAfaK0g4AAIqcr6+vunfvrh07dmjkyJFmxwFsHqUdAACYonbt2mrRooXeeecdffrpp2bHAWwapR0AAJjmb3/7m6pUqaLHH39cKSkpZscBbBalHQAAmMbR0VE9e/ZUdna2evXqxfx24DYo7QAAwFTe3t7q2rWrfv75Z73yyitmxwFsEqUdAACYrm7dumrQoIH++c9/ateuXWbHAWwOpR0AANiEzp07y83NTb1791Z2drbZcQCbQmkHAAA2wc3NTXFxcdq/f7+effZZs+MANoXSDgAAbEZwcLAaN26shIQE7d692+w4gM2gtAMAAJvSoUMHubm5acCAAawmA/wvSjsAALApbm5u6ty5s3bv3q3XX3/d7DiATaC0AwAAmxMSEqLQ0FC98sorOnr0qNlxANNR2gEAgE2KjY1Vbm6uBg0aZHYUwHSUdgAAYJO8vLwUHR2t1atXa9GiRWbHAUxFaQcAADYrLCxMgYGBio+P15UrV8yOA5iG0g4AAGyWg4ODOnfurJMnT2rChAlm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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from matplotlib.pylab import plt\n", "import numpy as np\n", "\n", "fig = plt.figure(figsize=(9,6))\n", "x_grid = np.linspace(0, 1., 1000)\n", "plt.plot(x_grid, (1 - x_grid + 0.05 * np.cos(11 * np.pi * x_grid)), 'k-', linewidth=1)\n", "plt.fill_between(x_grid, -1., (1 - x_grid + 0.05 * np.cos(11 * np.pi * x_grid)), color='gray')\n", "plt.ylim(0, None);" ] }, { "cell_type": "markdown", "id": "a02d74cf", "metadata": {}, "source": [ "We want the particle to bounce off both the wavy ramp and the ground (i.e., $x$ axis). Thus, we will have to define two different event equations and two different callback functions to implement the bouncing behaviour. Let us begin with the event equations:" ] }, { "cell_type": "code", "execution_count": 3, "id": "04c9f0e8", "metadata": {}, "outputs": [], "source": [ "# Event equation for the ramp.\n", "eq_w_curve = y - (1. - x + 0.05 * hy.cos(11 * np.pi * x))\n", "\n", "# Event equation for the ground.\n", "eq_bottom = y" ] }, { "cell_type": "markdown", "id": "4479fba2", "metadata": {}, "source": [ "Next, we need to implement the callbacks. Because we are dealing with inelastic collisions, when the particle hits a surface it will lose part of its kinetic energy. The [coefficient of restitution](https://en.wikipedia.org/wiki/Coefficient_of_restitution) $C_R \\in \\left[0, 1\\right]$ regulates how much energy is lost at every bounce.\n", "\n", "Additionally, because of the loss of energy, the particle will experience increasingly frequent collisions if it gets stuck in one of the local minima of the curve or when it starts bouncing off the ground. In practice, we want to stop the simulation once the collisions become too frequent.\n", "\n", "Let us see the code:" ] }, { "cell_type": "code", "execution_count": 4, "id": "c6a7ab81", "metadata": {}, "outputs": [], "source": [ "# The coefficient of restitution.\n", "CR = .8\n", "\n", "# Global variables to track\n", "# the time of the last collision\n", "# and the collision points.\n", "last_t = 0.\n", "bounce_points = []\n", "\n", "# Callback for bouncing against the curve.\n", "def cb_w_curve(ta, d_sgn):\n", " global last_t\n", "\n", " # If the last collision happened\n", " # too recently, return False to\n", " # stop the simulation.\n", " if ta.time - last_t < 1e-6:\n", " return False\n", "\n", " # Update last_t.\n", " last_t = ta.time\n", "\n", " # Update bounce_points.\n", " x, y = ta.state[0:2]\n", " bounce_points.append((x, y))\n", " \n", " # Compute the normal unit vector\n", " # using the gradient of the event\n", " # equation.\n", " grad = np.array([1+0.05*11*np.pi*np.sin(11*np.pi*x), 1])\n", " grad_uvec = grad / np.linalg.norm(grad)\n", " \n", " # Compute the component of the velocity\n", " # across the normal vector.\n", " xy_vel = ta.state[2:4]\n", " vproj = np.dot(xy_vel, grad_uvec)\n", " \n", " # Flip it and rescale it according\n", " # to the coefficient of restitution.\n", " Dv = -vproj*grad_uvec\n", " xy_vel += (1. + CR) * Dv\n", "\n", " return True\n", "\n", "# Callback for bouncing off the ground.\n", "def cb_bottom(ta, d_sgn):\n", " global last_t\n", " \n", " # If the last collision happened\n", " # too recently, return False to\n", " # stop the simulation.\n", " if ta.time - last_t < 1e-6:\n", " return False\n", "\n", " # Update last_t.\n", " last_t = ta.time\n", "\n", " # Update bounce_points.\n", " x, y = ta.state[0:2]\n", " bounce_points.append((x, y))\n", " \n", " # Flip the y component of the velocity,\n", " # and rescale it according\n", " # to the coefficient of restitution.\n", " ta.state[3] = -CR*ta.state[3]\n", " \n", " return True" ] }, { "cell_type": "markdown", "id": "ba77fb48", "metadata": {}, "source": [ "We are now ready to create the integrator object. As initial conditions, we will put the particle at rest above the ramp on the $y$ axis:" ] }, { "cell_type": "code", "execution_count": 5, "id": "285b4776", "metadata": {}, "outputs": [], "source": [ "ta = hy.taylor_adaptive(eqns, [0., 1.2, 0., 0.], t_events = [hy.t_event(eq_w_curve, callback = cb_w_curve, direction = hy.event_direction.negative),\n", " hy.t_event(eq_bottom, callback = cb_bottom, direction = hy.event_direction.negative)])" ] }, { "cell_type": "markdown", "id": "e7b95f4e", "metadata": {}, "source": [ "Note how, as explained in the [Keplerian billiard](<./The Keplerian billiard.ipynb>) example, we assigned specific directions to the collision events. This is done in order to avoid triggering spurious double-bounce events that would lead to the particle penetrating through the ramp or the ground.\n", "\n", "We can now integrate the system for a few time units:" ] }, { "cell_type": "code", "execution_count": 6, "id": "a1fab993", "metadata": {}, "outputs": [], "source": [ "t_grid = np.linspace(0, 10, 10000)\n", "oc, _, _, _, _, res = ta.propagate_grid(t_grid)\n", "\n", "# Transform bounce_points in a NumPy array\n", "# for ease of use.\n", "b_points = np.array(bounce_points)" ] }, { "cell_type": "markdown", "id": "1c503814", "metadata": {}, "source": [ "Let us take a look at the trajectory:" ] }, { "cell_type": "code", "execution_count": 7, "id": "cff0eff9", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(12,9))\n", "plt.plot(res[:,0],res[:,1])\n", "x_grid = np.linspace(0, 1., 1000)\n", "plt.plot(x_grid, (1 - x_grid + 0.05 * np.cos(11 * np.pi * x_grid)), 'k-', linewidth=1)\n", "plt.plot(b_points[:, 0], b_points[:, 1], 'o')\n", "plt.fill_between(x_grid, -1., (1 - x_grid + 0.05 * np.cos(11 * np.pi * x_grid)), color='gray')\n", "plt.ylim(0, None);" ] }, { "cell_type": "markdown", "id": "d39bab91", "metadata": {}, "source": [ "We can clearly see the dissipative behaviour of the inelastic collisions at play. Indeed, despite the fact that we asked to integrate the system up to $t=10$, the integration was stopped at" ] }, { "cell_type": "code", "execution_count": 8, "id": "f75d9d74", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.739019126545602" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ta.time" ] }, { "cell_type": "markdown", "id": "6a619f29", "metadata": {}, "source": [ "instead, and the outcome ``oc`` informs us that the integration was stopped because of a stopping terminal event:" ] }, { "cell_type": "code", "execution_count": 9, "id": "935109c2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oc" ] }, { "cell_type": "markdown", "id": "09145c42", "metadata": {}, "source": [ "A value of ``oc`` negative and greater than ``taylor_outcome.success`` indicates a stopping terminal event. The index of the stopping terminal event is ``-oc - 1``:" ] }, { "cell_type": "code", "execution_count": 10, "id": "ba9dc815", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Stopped by terminal event? True\n", "Index of the terminal event: 1\n" ] } ], "source": [ "print(\"Stopped by terminal event? {}\".format(oc > hy.taylor_outcome.success and int(oc) < 0))\n", "print(\"Index of the terminal event: {}\".format(-int(oc)-1))" ] } ], "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.10.13" } }, "nbformat": 4, "nbformat_minor": 5 }