12. Projets🔗

12.2. Astrophysique🔗

12.2.1. Relation masse/rayon d’une naine blanche🔗

D’après la théorie de l’évolution stellaire, les naines blanches sont l’un des états possibles d’une étoile (peu massive) à la fin de sa vie, lorsque les réactions de fusion thermonucléaire s’arrêtent.

En première approximation un corps astrophysique est essentiellement soumis à la force de gravitation (qui tend à le contracter) et une force interne de pression qui vient équilibrer la première. Ainsi on peut approcher le problème par un équilibre hydrostatique caractérisé par :

\[\boldsymbol{\nabla} P(r) = - \rho(r) \frac{GM(r)}{r^2}\boldsymbol{e}_r\]

où G est la constante de gravitation, \(P(r)\), \(\rho(r)\) et \(M(r)\) respectivement la pression, la densité à la distance r du centre et la masse dans une sphère de rayon r.

Il s’agit d’étudier ici quelle force peut équilibrer la gravitation pour une naine blanche et mettre en évidence une masse limite en étudiant la relation rayon/masse.

Modélisation

La masse et le rayon d’équilibre de ce système sont entièrement déterminés par l’équation d’état thermodynamique \(P = P(\rho)\) et la densité centrale. En effet on montre facilement que :

\[\begin{split}\frac{d \rho}{dr} &= - { \left( \frac{dP}{d \rho} \right) }^{-1} \frac{GM}{r^2} \rho \\ \frac{dM}{dr} &= 4\pi r^2\rho\end{split}\]

Une fois que les réactions thermonucléaires s’arrêtent, la première des forces empêchant l’étoile de s’effondrer vient de la pression due aux électrons. Le modèle que nous utiliserons sera donc un simple gaz d’électrons (masse \(m_e\) et de nombre par unité de volume n) plongé dans un gaz de noyaux (on note \(Y_e\) le nombre d’électrons par nucléon et \(M_n\) la masse d’un nucléon) d’équation d’état :

\[\begin{split}\frac{E}{V} &= n_0 m_ec^2 x^3 \varepsilon (x), \\ \text{avec}\quad x &= {\left( \frac {\rho}{\rho_0} \right) }^{\frac{1}{3}}, \\ n_0 &= \frac{{m_e^3c^3}}{3\hbar^3 \pi^2}, \\ \rho_0 &= \frac{M_n n_0}{Y_e} \\ \text{et}\quad \varepsilon(x) &= \frac{3}{8 x^3} \left[ x(1 + 2x^2) \sqrt{1 + x^2} - \ln \left( x + \sqrt{1 + x^2}\right) \right]\end{split}\]

Si tous les noyaux sont du \(^{12}C\), alors \(Y_e=1/2\).

  1. Montrer que le système d’équations à résoudre est

    \[\begin{split}\frac{d \rho}{dr} &= - { \left( \frac{3M_n G}{Y_e m_ec^2}\frac{\sqrt{1+x^2}}{x^2}\right) } \frac{M}{r^2} \rho \\ \frac{dM}{dr} &= 4\pi r^2\rho\end{split}\]
  2. En fixant la densité centrale \(\rho(r=0)=\rho_c\) tracer \(\rho(r)\) et en déduire une méthode pour calculer le rayon R de l’étoile et sa masse M.

  3. En faisant varier la densité centrale tracer la relation \(M(R)\).

  4. Discuter la validité numérique et physique des résultats par exemple en changeant la composition de l’étoile, la définition du rayon de l’étoile, etc.

12.2.2. Section de Poincaré🔗

Les équations du mouvement 1 \(\boldsymbol{r}(t) = (x(t),y(t))\) d’une particule de masse \(m\) plongée dans un potentiel \(\Phi(x,y)\) s’écrivent:

\[m\ddot{\boldsymbol{r}} = -\nabla\Phi.\]

En coordonnées polaires :

\[\begin{split}a_r &= \ddot{r} - r\dot{\theta}^2 = -\frac{1}{m}\frac{\partial\Phi}{\partial r} \\ a_{\theta} &= 2\dot{r}\dot{\theta}+r\ddot{\theta} = -\frac{1}{mr}\frac{\partial\Phi}{\partial \theta}\end{split}\]

Le système peut donc s’écrire :

\[\begin{split}\ddot{r} &= r\dot{\theta}^2 -\frac{1}{m}\frac{\partial\Phi}{\partial r} \\ \ddot{\theta} &= -\frac{2}{r}\dot{r}\dot{\theta}-\frac{1}{mr^2} \frac{\partial\Phi}{\partial\theta}\end{split}\]

ou en posant \(r_p=\dot{r}\) et \(\theta_p=\dot{\theta}\):

\[\begin{split}\dot{r} &= r_p \\ \dot{\theta} &= \theta_p \\ \dot{r_p} &= r\theta_p^2 -\frac{1}{m}\frac{\partial\Phi}{\partial r} \\ \dot{\theta_p} &= -\frac{2}{r}r_p\theta_p-\frac{1}{mr^2}\frac{\partial\Phi}{\partial\theta}\end{split}\]

L’intégration – analytique ou numérique – de ces équations pour des conditions initiales \((\boldsymbol{r}(t=0),\dot{\boldsymbol{r}}(t=0))\) particulières caractérise une orbite. Le tracé de l’ensemble des points d’intersection de différentes orbites de même énergie avec le plan, p.ex., \((x,\dot{x})\) (avec \(y=0\) et \(\dot{y}>0\)) constitue une section de Poincaré.

Nous étudierons plus particulièrement le cas particulier \(m=1\) et les deux potentiels:

  1. le potentiel intégrable de Sridhar & Touma (1997; MNRAS, 287, L1) 2, qui s’exprime naturellement dans les coordonnées polaires \((r,\theta)\):

    \[\label{eq:spST} \Phi(r,\theta) = r^{\alpha}\, \left[(1+\cos\theta)^{1+\alpha} + (1-\cos\theta)^{1+\alpha}\right].\]

    avec p.ex. \(\alpha = 1/2\);

  2. le potentiel de Hénon-Heiles:

    \[\label{eq:spHH} \Phi(r,\theta) = \frac{1}{2}r^2 + \frac{1}{3}r^3\sin(3\theta).\]

Objectif

  1. Écrire un intégrateur numérique permettant de résoudre les équations du mouvement pour un potentiel et des conditions initiales données.

  2. Les performances de cet intégrateur seront testées sur des potentiels intégrables (p.ex. potentiel képlerien \(\Phi \propto 1/r\)), ou en vérifiant la stabilité des constantes du mouvement (l’énergie \(E = \frac{1}{2}\dot{\boldsymbol{r}}^{2} + \Phi\)).

  3. Pour chacun des potentiels, intégrer et stocker une grande variété d’orbites de même énergie, en prenant soin de bien résoudre la zone d’intérêt autour de \((y=0,\dot{y}>0)\).

  4. À l’aide de fonctions d’interpolation et de recherche de zéro, déterminer pour chacune des orbites les coordonnées \((x,\dot{x})\) de l’intersection avec le plan \((y=0,\dot{y}>0)\).

  5. Pour chacun des potentiels, regrouper ces points par orbite pour construire la section de Poincaré de ce potentiel.

1

On se place dans toute la suite du problème dans un espace à deux dimensions.

2

Nous utiliserons toutefois les notations de l’appendice de Copin, Zhao & de Zeeuw (2000; MNRAS, 318, 781).

12.3. Divers🔗

12.3.1. Formation de pistes de fourmis sur un pont à 2 branches🔗

Si on propose à une colonie de fourmis de choisir entre 2 branches pour rejoindre une source de nourriture la branche finalement choisie est toujours la plus courte. Le projet consiste à modéliser et caractériser ce comportement.

Indication: on peut étudier ce système avec des EDOs. Cela peut aussi donner lieu à une simulation individu centré et éventuellement une comparaison entre les deux types de modèle.

../_images/Aco_branches.png

Fig. 12.1 Figure: 1) la première fourmi trouve la source de nourriture (F), via un chemin quelconque (a), puis revient au nid (N) en laissant derrière elle une piste de phéromone (b). 2) les fourmis empruntent indifféremment les 4 chemins possibles, mais le renforcement de la piste rend plus attractif le chemin le plus court. 3) les fourmis empruntent le chemin le plus court, les portions longues des autres chemins voient la piste de phéromones s’évaporer. Source: Johann Dréo via Wikimedia Commons.🔗

12.3.2. Auto-organisation d’un banc de poisson🔗

Auteur de la section : Hanna Julienne <hanna.julienne@gmail.com>

La coordination d’un banc de poissons ou d’un vol d’oiseaux est tout à fait frappante: les milliers d’individus qui composent ces structures se meuvent comme un seul. On observe aussi, dans les bancs de poisson, d’impressionnants comportements d’évitement des prédateurs (flash expansion, fountain effect).

Pourtant ces mouvements harmonieusement coordonnés ne peuvent pas s’expliquer par l’existence d’un poisson leader. Comment pourrait-il être visible par tous ou diriger les flash expansion qui ont lieu à un endroit précis du banc de poisson? De la même manière on ne voit pas quelle contrainte extérieure pourrait expliquer le phénomène.

Une hypothèse plus vraisemblable pour rendre compte de ces phénomènes est que la cohérence de l’ensemble est due à la somme de comportements individuels. Chaque individu adapte son comportement par rapport à son environnement proche. C’est ce qu’on appelle auto-organisation. En effet, on a établi expérimentalement que les poissons se positionnent par rapport à leurs k plus proches voisins de la manière suivante:

  • ils s’éloignent de leurs voisins très proches (zone de répulsion en rouge sur la figure ci-dessous)

  • ils s’alignent avec des voisins qui sont à distance modérée (zone jaune)

  • ils s’approchent de leur voisins s’ils sont à la fois suffisamment proches et distants (zone verte)

../_images/zone_poisson.png

Fig. 12.2 Figure: Environnement proche du poisson: zones dans lesquelles le positionnement d’un voisin provoque une réponse de la part de l’individu au centre🔗

Dans notre modèle, nous allons prendre en compte l’influence des k plus proches voisins. On calculera la contribution de chaque voisin selon la zone dans laquelle il se situe. Le déplacement du poisson sera la moyenne de ces contributions. Il est à noter qu’un voisin en dehors des trois zones d’influence n’a pas d’effet.

L’environnement proche d’un poisson est modélisé par des sphères imbriquées qui présentent une zone aveugle (voir figure).

Par ailleurs, si un individu n’a pas de voisins dans son environnement proche il adopte un comportment de recherche. Il explore aléatoirement les alentours jusqu’à ce qu’il repère le banc de poissons et finalement s’en rapproche.

Ce projet vise à :

  • Coder le comportement des poissons et à les faire évoluer dans un environnement 2D.

  • On essaiera d’obtenir un comportement collectif cohérent (similaire à un banc de poisson) et d’établir les conditions nécessaires à ce comportement.

  • On étudiera notamment l’influence du nombre d’individus pris en compte. Est-ce que le positionnement par rapport au plus proche voisin (k = 1) est suffisant?

  • On pourra se servir de la visualisation pour rendre compte de la cohérence du comportment et éventuellement inventer des mesures pour rendre compte de manière quantifier de cette cohérence.

Liens :

12.3.3. Évacuation d’une salle & déplacement d’une foule dans une rue🔗

Le comportement d’une foule est un problème aux applications multiples: évacuation d’une salle, couloir du métro aux heures de pointes, manifestations… On peut en imaginer des modèles simples. P. ex., on peut décrire chaque individu par sa position, sa vitesse, et comme étant soumis à des « forces »:

  • Une force qui spécifie la direction dans laquelle l’individu veut se déplacer, \(\textbf{f}_{dir} = (\textbf{v}_0 - \textbf{v}(t))/\tau\), où \(\textbf{v}_0\) est la direction et la vitesse que la personne veut atteindre, \(\textbf{v}\) sa vitesse actuelle, et \(\tau\) un temps caractéristique d’ajustement.

  • Une force qui l’oblige à éviter des obstacles qui peuvent être fixes (un mur, un massif de fleurs, …), ou qui peuvent être les autres individus eux-mêmes. On pourra essayer \(f_{obs}(d) = a \exp(-d/d_0)\), où \(d\) est la distance entre le piéton et l’obstacle, \(d_0\) la « portée » de la force, et \(a\) son amplitude.

On pourra varier les différents paramètres apparaissant ci-dessus, tout en leur donnant une interprétation physique réelle, et étudier leur influence dans des situations concrètes. P. ex., à quelle vitesse, en fonction de \(\textbf{v}_0\) et de la densité de piétons, se déplace une foule contrainte à avancer dans un couloir si chaque individu veut maintenir une vitesse \(\textbf{v}_0\) ? Comment s’organise l’évacuation d’une salle initialement uniformément peuplée, avec une ou plusieurs sorties, et en la présence éventuels d’obstacles ?

Il est également possible d’essayer d’autres expressions pour les forces.

Il existe une littérature conséquente sur le sujet, que l’on pourra explorer si besoin (p. ex: Décrypter le mouvement des piétons dans une foule).

../_images/6k-RoomExit4.png

Fig. 12.3 Figure: Un obstacle aide à l’évacuation (DR).🔗

12.3.4. Suivi de particule(s)🔗

Auteur de la section : Mathieu Leocmach <mathieu.leocmach@ens-lyon.fr>

Dans de nombreux domaines de recherche expérimentale, on a besoin de localiser des particles dans une image ou de reconstituer leurs trajectoires à partir d’une vidéo. Il peut s’agir de virus envahissant une cellule, de traceurs dans un écoulement, d’objets célestes fonçant vers la terre pour la détruire, etc.

Dans ce projet, on essayera d’abord de localiser une particule unique dans une image à 2 dimensions (niveaux de gris) en utilisant l’algorithme de Crocker & Grier décrit ici. On utilisera sans retenue les fonctions de la bibliothèque scipy.ndimage.

On essayera d’obtenir une localisation plus fine que la taille du pixel. On essayera ensuite de détecter plusieurs particules dans une image.

Afin de pouvoir traiter efficacement une séquence d’images de même taille, on privilégiera une implémentation orientée objet. L’objet de la classe Finder sera construit une seule fois en début de séquence et il contiendra les images intermédiaires nécessaire au traitement. On nourrira ensuite cet objet avec chaque image de la séquence pour obtenir les coordonnées des particules.

Enfin, on pourra essayer de relier les coordonnées dans des images successives pour constituer des trajectoires.

On contactera le créateur du sujet pour obtenir des séquences d’images expérimentales de particules Browniennes.

../_images/dilute_raw.png

Fig. 12.4 Figure: Exemple d’image test où on voudra localiser les particules.🔗

12.4. Mini-projets🔗

Ces mini-projets demande un investissement de développement et d’analyse moindre, et peuvent être traités (ou au moins initiés) en quelques heures comme des exercices ouverts.

12.4.2. Visualisation🔗

L’objectif premier de ces projets est de développer des outils de visualisation sous Python/Matplotlib.

12.4.3. Divers🔗

12.4.4. Contribution à un projet Open Source🔗

Vous pouvez également contribuer, à la hauteur de vos capacités (connaissance, temps) à un projet Open Source, p.ex. identification et correction de bugs, ajout de nouvelles fonctionnalités, documentation, etc.

Ces projets sont souvent maintenus sur des plateformes de développement collaboratif telles que github. Les bugs sont souvent classés selon différentes catégories, p.ex. pour astropy, : documentation, good first issue, Package novice, etc.; le même genre de tags existe pour d’autres projets (p.ex. numpy, matplotlib, pandas).

Généralement, les plus gros projets ont des exigences de contribution plus fortes (voir p.ex. Contributing to Matplotlib), mais vous pouvez toujours contribuer aux discussions.