{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Pi\u00e8ge de Penning\n", "\n", "_\u00c0 partir du sujet de 2021_\n", "\n", "En physique, les pi\u00e8ges \u00e0 ions sont des dispositifs permettant de stocker des particules charg\u00e9es pendant une longue dur\u00e9e, notamment dans le but de mesurer leurs propri\u00e9t\u00e9s avec pr\u00e9cision.\n", "\n", "Il n'est pas possible de r\u00e9aliser un pi\u00e8ge \u00e0 ions uniquement avec un champ \u00e9lectrique statique : en effet, un tel pi\u00e8ge n\u00e9c\u00e9ssiterait d'avoir un maximum ou minimum du potentiel \u00e9lectrique - ce qui est impossible car son Laplacien est nul.\n", "\n", "Le pi\u00e8ge de Penning est un dispositif permettant de stocker des particules charg\u00e9es, gr\u00e2ce \u00e0 la combinaison d'un champ magn\u00e9tique uniforme et d'un champ \u00e9lectrique quadripolaire constant. Nous proposons d'en simuler le comportement. \n", "\n", "On consid\u00e8re un ion b\u00e9ryllium $Be^+$ dont on notera $q$ la chage. On note $B$ l'amplitude du champ magn\u00e9tique, uniforme, et dirig\u00e9 selon $z$. Le champ electrostatique dipolaire d\u00e9rive du potentiel suivant :\n", "\n", "$$ \n", "V = \\frac{Q}{2} \\left(x^2 +y^2 - 2z^2\\right)\n", "$$\n", "\n", "Le champ \u00e9lectrique vaut donc :\n", "\n", "$$\n", "\\vec E = -Q\\left( x\\vec{u}_x + y\\vec{u}_y -2z\\vec{u}_z \\right)\n", "$$\n", "\n", "La force est donn\u00e9e par :\n", "\n", "$$\n", "\\vec{F} = q\\left(\\vec{E} + \\vec{v}\\wedge\\vec{B}\\right)\n", "$$\n", "\n", "o\u00f9 le symbol $\\wedge$ repr\u00e9sente le produit vectoriel.\n", "\n", "Valeurs num\u00e9riques : "]}, {"cell_type": "code", "execution_count": 1, "metadata": {"tags": ["keep"]}, "outputs": [], "source": ["proton_mass = 1.67E-27\n", "m = 9*proton_mass\n", "q = e = 1.6E-19\n", "\n", "# Valeurs par d\u00e9faut\n", "B = 2 # Tesla\n", "Q = -300/1E-2**2 # 300V/cm^2"]}, {"cell_type": "markdown", "metadata": {}, "source": ["1. Ecrire une fonction python qui renvoie l'acc\u00e9l\u00e9ration $\\vec{F}/m$ en fonction de $\\vec{r}$ la position et $\\vec{v}$ la vitesse repr\u00e9sent\u00e9e par des tableaux numpy. On pourra utiliser la fonction ``np.cross`` pour calculer la produit vectoriel"]}, {"cell_type": "markdown", "metadata": {}, "source": ["2. Ecrire une fonction qui \u00e0 partir d'une condition initiale $r_0$, $v_0$ renvoie la position et la vitesse pour un ensemble de valeur (croissante) $t_i$\n", "\n", " def trajectoire(r_0, v_0, t_array, Q, B):\n", " ....\n", " return x, y, z, vx, vy, vz\n", "\n", "\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["3. Dans un champ magn\u00e9tique uniforme (sans champ \u00e9lectrique), un particule \u00e0 une trajectoire circulaire dans le plan orthogonal au champ. V\u00e9rifier ceci en calculant la tractoire d'une particule ayant initialement une vitesse de 100 m/s dans ce plan.\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["4. On consid\u00e8re maintenant une particule dans le champ magn\u00e9tique et \u00e9lectrique. Param\u00e8tre initiaux : $\\vec{r} = (0, 100~\\mathrm{\\mu m}, 0)$ et $\\vec{v} = (500~\\mathrm{m/s}, 100~\\mathrm{m/s}, 1~\\mathrm{m/s})$. On calculera pendant $5~\\mathrm{\\mu s}$ en \u00e9chantillonant sur au moins 2000 points. Tracer la trajectoire dans le plan $x, y$ puis en 3D.\n"]}], "metadata": {"celltoolbar": "Tags", "kernelspec": {"display_name": "Python 3", "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.8.8"}, "varInspector": {"cols": {"lenName": 16, "lenType": 16, "lenVar": 40}, "kernels_config": {"python": {"delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())"}, "r": {"delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) "}}, "types_to_exclude": ["module", "function", "builtin_function_or_method", "instance", "_Feature"], "window_display": false}}, "nbformat": 4, "nbformat_minor": 4}