.. _projets: Projets ####### .. contents:: Table des matières .. 1 Projets de physique 1.1 Formation d'agrégats 1.2 Modèle d'Ising 1.3 Modèle de Potts 3D 1.4 Méthode de Hückel 1.5 Densité d'états d'un nanotube 1.6 Solitons 1.7 Diagramme de phase du potentiel de Lennard-Jones 1.8 États de diffusion pour l’équation de Schrödinger 1D stationnaire 1.9 Percolation 1.10 Autres possibilités 2 Projets astrophysiques 3 Projets divers 3.1 Formation de pistes de fourmis sur un pont à 2 branches 3.2 Auto-organisation d'un banc de poisson 3.3 Évacuation d'une salle & déplacement d'une foule dans une rue 3.4 Suivi de particule(s) 4 Projets statistiques 5 Projets de visualisation Projets de physique =================== Formation d'agrégats -------------------- La formation d'agrégats est par essence un sujet interdisciplinaire, ou la modélisation joue un rôle certain comme « microscope computationel ». Pour un projet en ce sens, un soin particulier sera donné à la contextualisation. P.ex., on pourra tester les limites de la règle de Wade pour la structure de clusters métalliques, ou bien dans un contexte plus `biologique `_. .. figure:: DLA.jpg :width: 50% :align: center **Figure:** Résultat d'une agrégation limitée par la diffusion d'environ 33 000 particules obtenue en permettant à des marcheurs aléatoires d'adhérer à une semence centrale. Les couleurs indiquent le temps d'arrivée des marcheurs. Source: `WingkLEE `_ (Own work) [Public domain], via Wikimedia Commons. Modèle d'Ising -------------- Le modèle d'Ising est le modèle le plus simple du magnétisme. Le modèle 1D est exactement soluble par la méthode de la matrice de transfert. La généralisation à 2 dimensions a été faite par Lars Onsager en 1944, mais la solution est assez compliquée. Il n'existe pas de solution analytique en 3D. On va ici considérer un système de spins sur réseau. Chaque spin :math:`\sigma_i` peut prendre 2 valeurs (« *up* » et « *down* »). L'hamiltonien du système, .. math:: H = -J \sum_{i,j} \sigma_i \sigma_j - h \sum_{i} \sigma_i contient deux contributions : l'interaction entre premiers voisins et le couplage à un champ magnétique. On va considérer un réseau carré avec une interaction ferromagnétique (:math:`J > 0`). L’objectif du projet sera d’étudier le diagramme de phase du système en fonction de la température et du champ magnétique par simulation de Monte-Carlo. .. figure:: ising.png :width: 50% :align: center **Figure:** Modèle d'Ising au point critique. .. Source: `Paul Coddington .. `_. Modèle de Potts 3D ------------------ `Modèle de Potts `_ en 3D dans un univers carré à condition périodique. Le but est la mise en évidence de la transition de phase pour plusieurs jeux de paramètres avec 3 types de spins différents. 1. Reproduire des résultats connus du modèle d'Ising en 2D pour valider le code. 2. Passer à un algorithme en *cluster* pour évaluer la différence avec un algorithme classique. 3. Passer en 3D 4. Changer le nombre de type de spins (de 2 à 3). Jeux de paramètres à tester : - `Ising en 2D `_ (2 types de spins, algorithme de Glauber): Transition de phase attendue à T~227K pour un couplage J=100 et un champ externe nul - Toujours Ising, mais avec l'`algorithme de Wolff `_ - Ising en 3D avec Wolff - Potts (changer q=2 par q=3) en 3D avec Wolff .. rubric:: Références: `Computational Studies of Pure and Dilute Spin Models `_ Méthode de Hückel ----------------- La spectroscopie et la réactivité des électrons :math:`\pi` est centrale en chimie. Un outil efficace pour les appréhender est l'approche développé par Hückel. Il vous est demande ici de mettre en oeuvre cette méthode pour l'analyse des orbitales et de l'énergie d'une famille de molécules répondant aux hypothèse sous-jacentes. On discutera notamment du choix de la paramétrisation du système. Densité d'états d'un nanotube ----------------------------- Les nanotubes de carbone ont été découverts bien avant celle du graphène. Ce sont des matériaux très résistants et durs qui possèdent une conductivité électrique et thermique élevées. Un nanotube de carbone monofeuillet consiste d’une couche de graphène enroulé selon un certain axe. L’axe d'enroulement détermine la chiralité du nanotube et, par la suite, les propriétés électroniques : selon la chiralité, le nanotube peut être soit semi-conducteur, soit métallique. L’objectif du projet sera de calculer la densité d'états de nanotubes de carbone de différentes chiralités et d'établir le lien entre la chiralité et le fait que le nanotube soit semiconducteur ou métallique. Solitons -------- On considère un câble sous tension auquel sont rigidement et régulièrement attachés des pendules. Les pendules sont couplés grâce au câble à travers sa constante de torsion. Dans un tel système on peut observer une large gamme de phénomènes ondulatoires. Le but de cet projet est d’étudier une solution très particulière : le *soliton*. Imaginons qu’une des extrémités du câble est attachée à une manivelle qui peut tourner librement. Il est alors possible de donner une impulsion au système en faisant un tour rapide ce qui déclenche la propagation d’un soliton. Dans ce projet, on considérera les pendules individuellement. Il n’est pas demandé de passer au modèle continu et de résoudre l’équation obtenue. Pour chaque pendule *n* dont la position est décrite par :math:`\theta_n`, l’équation d’évolution s’écrit: .. math:: \frac{d^2\theta_n}{d t^2} = \alpha\sin\theta_n + \beta(\theta_{n-1} + \theta_{n+1} - 2\theta_n) où :math:`\alpha,\beta` sont des paramètres physiques. On résoudra numériquement cette équation pour chaque pendule. En donnant un « tour de manivelle numérique », on essayera d’obtenir la solution soliton. On cherchera en particulier à ajuster la solution par une équation du type :math:`\theta_n = a \tan^{-1}(\exp(b(n-n_0)))` où :math:`a,b,n_0` sont des paramètres à déterminer. De très nombreuses questions se posent (il ne vous est pas demandé de répondre à chacune d’entre elle): - Est-il toujours possible d’obtenir un soliton? - Sa vitesse est-elle constante? - Le soliton conserve-t-il sa forme? - Que se passe-t-il avec des pendules plus lourds? ou plus rapprochés? avec un câble plus rigide? avec un frottement? - Comment le soliton se réfléchit-il si l’extrémité du câble est rigidement fixée? et si elle tourne librement? - Dans ce système, le soliton est chiral. En effet, on peut tourner la manivelle à gauche ou à droite. Un anti-soliton a-t-il les mêmes propriétés (taille, vitesse, énergie) qu’un soliton? - Si on place une manivelle à chaque extrémité, on peut faire se collisionner des solitons. Cette étude est très intéressante et pleine de surprises. Que se passe-t-il lors de la collision de deux solitons? Entre un soliton et un anti-soliton? .. figure:: mascaret.jpg :width: 50% :align: center **Figure:** Un mascaret, une vague soliton, dans un estuaire de Grande Bretagne. *Source*: `Arnold Price `_ [`CC-BY-SA-2.0 `_], via Wikimedia Commons. Diagramme de phase du potentiel de Lennard-Jones ------------------------------------------------ .. include:: lennard_jones.txt États de diffusion pour l’équation de Schrödinger 1D stationnaire ----------------------------------------------------------------- On s’intéresse à la diffusion d’une particule de masse m à travers un potentiel carré défini par :math:`V(x) = V_0` pour :math:`0 \leq x \leq a`, et 0 sinon. Les solutions de cette équation en dehors de la région où règne le potentiel sont connues. Les paramètres d’intégration de ces fonctions d’onde peuvent se déterminer par les relations de continuité aux frontières avec la région où règne le potentiel. En résolvant l’équation différentielle dans la région du potentiel pour *x* allant de *a* à 0 on peut obtenir une autre valeur pour ces paramètre d’intégration. Il faut ensuite appliquer un algorithme de minimisation pour déterminer les constantes d’intégration. Les objectifs de ce projet sont : * Écrire un programme qui résolve l’équation de Schrödinger. * En déduire les coefficients de transmission et de réflexion. .. rubric:: Références: * *A numerical method for quantum tunnelling*, Pang T., Computers un Physics, 9, p 602-605. * `Équation de Schrödinger 1D `_ * `Quantum Python: Animating the Schrodinger Equation `_ Percolation ----------- Ce sujet propose d’étudier le phénomène de percolation. La percolation est un processus physique qui décrit pour un système, une transition d’un état vers un autre. Le système que nous étudierons est composé ici d’une grille carrée dont les cases sont soit vides, soit pleines. Initialement, la matrice est vide et l’on tire aléatoirement une case que l’on rempli. On défini la concentration comme le rapport du nombre de cases noires sur le nombre total de cases. À partir d'une certaine concentration critique un chemin continu de cases noires s'établit entre deux bords opposés du système (haut et bas, ou gauche et droite) et on dit alors que le système percole. Le but du sujet est d’étudier la transition d’un système qui ne percole pas (à gauche sur la figure) vers un système qui percole (à droite). Pour ce faire, on établira un algorithme qui pour une configuration donnée détermine si le réseau de cases noires percole ou non. On étudiera également la taille et le nombre des amas de cases noires en fonction de la concentration. On étudiera aussi les effets de la taille du système. .. image:: percolation.png :width: 10cm :align: center Cette étude repose sur un tirage pseudo aléatoire et pas conséquent nécessite un traitement statistique. On ne pourra pas se contenter d’étudier un cas particulier mais on prendra soin au contraire d’effectuer des moyennes sur un très grand nombre de tirages (plusieurs centaines). .. rubric:: Références: * `Percolation theory `_ * `Concepts fondamentaux de la percolation `_ Autres possibilités ------------------- - `Reaction-Diffusion by the Gray-Scott Model `_ - Équation de `Cahn–Hilliard `_ (voir l'`exemple NIST `_ sous `FiPy: A Finite Volume PDE Solver Using Python `_) - `Computational Methods for Nonlinear Systems `_ Projets astrophysiques ====================== .. include:: astro.txt Projets divers ============== 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. .. figure:: Aco_branches.png :width: 50% :align: center **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. Auto-organisation d'un banc de poisson -------------------------------------- .. include:: banc_poisson.txt É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, :math:`\textbf{f}_{dir} = (\textbf{v}_0 - \textbf{v}(t))/\tau`, où :math:`\textbf{v}_0` est la direction et la vitesse que la personne veut atteindre, :math:`\textbf{v}` sa vitesse actuelle, et :math:`\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 :math:`f_{obs}(d) = a \exp(-d/d_0)`, où :math:`d` est la distance entre le piéton et l'obstacle, :math:`d_0` la « portée » de la force, et :math:`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 :math:`\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 :math:`\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 `_). .. figure:: 6k-RoomExit4.png :width: 50% :align: center **Figure:** Un obstacle aide à l'évacuation (DR). Suivi de particule(s) --------------------- .. include:: particle_tracking.txt Projets statistiques ==================== - Tests statistiques du `NIST/SEMATECH e-Handbook of Statistical Methods `_, p.ex. `Comparisons based on data from two processes `_ - Statistiques robustes, p.ex. :ads:`Beers et al. (1990) <1990AJ....100...32B>` Projets de visualisation ======================== L'objectif premier de ces projets est de développer des outils de visualisation sous Python/Matplotlib. * `Coordonnées parallèles `_ - Sources éventuelles d'inspiration: `Parallel Coordinates plot in Matplotlib `_, `XDAT `_ - Exemples de jeu de données multi-variables: `Iris flower data set `_, :download:`Cars <./carsDataSet.dat>` (`source `_) * `Andrew Curves `_ (voir également `Rip’s Applied Mathematics Blog `_) - À appliquer sur les mêmes jeux de données que pour les coordonnées parallèles. * `Stacked graphs `_ - Source éventuelle d'inspiration: `Python recipe `_ * `Diagramme de Hertzprung-Russel `_ L'objectif est de développer une classe permettant de tracer des diagrammes HR à partir de diverses quantités observationnelles (magnitudes apparentes ou absolues, couleurs) ou théoriques (luminosité, températures effectives), ainsi que des isochrones. - Source éventuelle d'inspiration: `Stellar evolutionary tracks `_ - Données photométriques: p.ex. :download:`M55 <./M55_BV.dat>` (source: `BVI photometry in M55 `_) - Données théoriques: p.ex. `CMD `_ .. https://sites.google.com/site/roguewavesoftwarefrance/tutoriels/Python-Clustering-k-Means * `Treemaps `_ - Source éventuelle d'inspiration: `Treemaps under pylab `_ * De façon plus générale, l'ensemble des visualisations proposées sous: - `Flare `_ - `D3 `_ - `Periodic Table of Vizualisation Methods `_