Univers Viewer
Transcription
Univers Viewer
Université de la Méditerranée Faculté des Sciences Master II Recherche, spécialité : Physique Théorique Rapport de Projet Informatique : Univers Viewer Préparé par Philippe Caponis Sous la direction de Mr. Roland Triay Année Académique : 2010-2011 Table des matières 1 Introduction 1 2 Présentation 2.1 Projection dans le plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Fonctionnalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 Contexte du Problème 3.1 L’âge de l’univers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Le Calcul dans le cas de Λ = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 4 Travail Effectué 4.1 La Structure de Universe Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Courbes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 5 Bilan 5 Bibliographie 5 A Screenshots 6 B Codes C et Courbes 7 1 Introduction Universe Viewer est un logiciel qui permet d’établir des cartographies de l’univers et de visualiser les grandes structures. Ce logiciel, initialement développé en Fortran dans les années 70 a été ensuite réécrit en C dans un environnement Unix et à subit récemment une refonte totale en Java. L’objectif, dans le cadre du présent projet, a été de me familiariser avec le logiciel pour bien comprendre sa structure de sorte à rajouter des fonctionnalités. Mon travail original à été de définir des courbes mettant en valeur l’âge de l’univers dans les divers modèles. Dans une première partie, j’exposerai le logiciel, ses objectifs et ses fonctionnalités ensuite je décrirai le problème du calcul de l’âge de l’univers dans le cas d’un univers à constante cosmologique nulle et pour conclure j’exposerai le travail effectué ainsi que les difficultés rencontrées. 2 Présentation Universe Viewer est un logiciel qui cartographie l’univers à travers une distribution des points représentants les lieux des objets astronomiques dont on possède les coordonnées regroupés dans un catalogue qui consiste en la base de données de ce logiciel. Il permet de présenter l’univers quelque soit sa courbure spatiale par des projections qui préservent l’uniformité (qui n’induisent pas d’artefact). Dans le cadre de l’exposé, les objets utilisés sont des Quasars : des noyaux actifs de galaxies qui présentent les objets les plus lumineux et les plus éloignés (donc plus jeunes) dans l’univers. 1 2.1 Projection dans le plan Les objets que UV traite sont représentés par un redshift et un vecteur unitaire définit par les coordonnées dans le ciel : l’ascension droite (équivalent dur la sphère céleste de la longitude terrestre), et la déclinaison (équivalent de la latitude terrestre). Un objet est donc noté Q(~x, z) où ~x s’écrit sous la forme : cos(α) cos(θ) ~x sin(α) cos(θ) sin(α) Par le choix d’un modèle cosmologique, on définit une distance comobile de l’objet émetteur de lumière τ (mesure de distance tenant compte de l’expansion de l’univers - qui ne change pas avec le temps) Z 1 da p τ (z) = 1 P (a) 1+z Pour les modèles dont la courbure n’est pas nulle, il existe une distance angulaire définie par : p τ̂ (z) = |κ0 |.τ Où P (a) = λo a4 −κ0 a2 +ω0 a+α0 , λ, κ, ω et α étant les paramètres cosmologiques et a le paramètre d’expansion de l’univers ou paramètre d’échelle (plus de détails sur les paramètres cosmologiques dans la section). Les calculs et la méthode de projection sont développés dans [1]. Un repère à quatre dimensions est définit : ~0 p~i E0 = , Ei = avec i = 1, 2, 3. 0 1 Pris deux à deux, ces vecteurs forment six plans de projections possibles sur lesquels sont renvoyés les projections des vecteurs quadridimensionnels (voir Annexe A). 2.2 Fonctionnalités L’interface du logiciel présente une barre de menus ainsi qu’une fenêtre principale d’affichage. Cette dernière est divisée en deux parties, l’une pour manipuler les paramètres cosmologiques et de choisir le plan de projection désiré et l’autre pour l’affichage deux dimensionnel. Les paramètres cosmologiques sont liés par la contrainte suivante : λ0 − κ0 + Ω0 + α0 = 1 donc le changement d’un paramètre entraine directement le changement des autres. Comme je l’ai précisé dans la première partie nous avons le choix entre six vues différentes, et une fois la vue sélectionnée, il est possible de faire varier les paramètres d’ascension droite et de déclinaison. Dans la zone d’affichage se trouve une barre de menus (autre que la barre des menus File, Settings · · · ) contenant des boutons ayant différentes fonction intéressantes. L’un d’entre eux permet de lancer la fenêtre des tracés des courbes. C’est cette partie qui nous intéresse le plus, et le but de ce projet était de rajouter les courbes de l’âge de l’univers en fonction des paramètres λ et Ω (voir section suivante). 2 3 3.1 Contexte du Problème L’âge de l’univers Le problème de la détermination de l’âge de l’univers est lié au problème de la détermination des valeurs des paramètres cosmologiques. Dans le contexte du modèle cosmologique ΛCDM (LambdaCold Dark Matter) l’univers contient de la matière baryonique, de la matière noire, de la radiation et une constante cosmologique. La contribution de la densité de chacune de ces composantes est donnée par les paramètres de densité λ, κ, Ω et α qui sont des rapports entre la densité d’une composante et la densité critique. Ces quatre paramètres avec le paramètre de Hubble H (ou constante de Hubble H0 pour la valeur actuelle) - une sorte de constante de proportionnalité entre la distance propre d’une galaxie et sa vitesse de récession - sont les plus important pour la détermination de l’âge de l’univers. C’est à partir de l’équation de Friedmann que l’on peut calculer l’âge de l’univers en fonction des paramètres de densité. En effet, cette équation relie le taux d’expansion de l’univers au contenu de matière : ȧ 8πG κ Λ = ρ− 2 + (1) a 3 a 3 où a est le facteur d’échelle, G la constante gravitationnelle et ρ la densité. Une manipulation de cette équation permet d’obtenir le temps en fonction du facteur d’échelle, et ainsi permet de calculer l’âge de l’univers par intégration. Nous aurons enfin une expression pour l’âge de l’univers en fonction des contributions des différentes composantes de la forme : t0 = H0−1 f (λ, Ω, α, · · · ) 3.2 Le Calcul dans le cas de Λ = 0 Pour un univers dominé par la matière, en supposant que Λ = 0 l’évolution de la densité d’énergie est donnée par −3 ρ a = ρ0 a0 L’équation de Friedmann devient : 2 ȧ κ 8πG a0 ρ0 − 2 (2) = a0 3 a a0 la constante de Hubble s’écrit H = ȧ a d’où : κ = H02 (Ω0 − 1) a20 0 où Ω0 = ρρ0,c , ρ0,c étant la valeur actuelle de la densité critique ρ0,c = Enfin, notons la relation entre facteur d’échelle et le redshift : (3) 3H02 8πG . a 1 = a0 1+z Les équations (2), (3) et (4) nous donnent l’âge d’un univers dominé par la matière : Z a(t) Z 1 1+z da dx −1 t= = H0 ȧ (1 − Ω0 + Ω0 x−1 )1/2 0 0 3 (4) (5) Dans [4], ce travail est effectué pour des univers dominés par la matière, le rayonnement et une constante cosmologique, et les intégrales sont évaluées avec z = 0 pour donner l’âge actuel de l’univers. Nous nous intéressons aux solutions pour un univers dominé par la matière. Les résultats sont donnés dans [4] : Univers dominé par la matière : 2 Ω0 −1 −1 −1 1/2 cos (2Ω0 − 1) − t = H0 (Ω0 − 1) pour Ω > 1 (6) Ω0 2(Ω0 − 1)3/2 2 Ω0 −1 −1 1/2 −1 (1 − Ω0 ) − cosh (2Ω0 − 1) pour Ω < 1 (7) t = H0 2(1 − Ω0 )3/2 Ω0 2 t0 = H0−1 pour Ω = 1 (8) 3 4 Travail Effectué A l’origine mon travail était de rajouter les courbes d’âge de l’univers dans le diagramme lambdaomega de UV. Ce travail n’a pas pu être effectué dans les temps, les raisons sont les suivante : j’ai du me familiariser avec le programme et comprendre les codes écrits en Java, langage que je découvre. De plus, j’ai rencontré des difficultés à exécuter le code sur Windows. J’ai donc installé Linux en ‘’Dual Boot ” ainsi que la librairie JOGL, dont la bonne version était difficile à récupérer sur internet. J’ai été épaulé par un des étudiants qui a travaillé sur la dernière version Java de UV, en particulier en me précisant qu’il faut compiler les sources et exécuter à partir dEclipse - un environnement de développement de logiciels. Dans cette partie j’exposerai brièvement la structure du programme UV et le travail effectué (sur C) pour obtenir les courbes. 4.1 La Structure de Universe Viewer La structure utilise deux classes de bases, UniverseViewer et Environment, l’une qui affiche la fenêtre principale et l’autre contient presque tous les calculs et les fonctions permettant de calculer les distances et les projections. D’autres classes plus graphiques sont Viewer Canvas, qui gère l’affichage des quasars et Main Window qui est responsable de la possibilité de saisir des données. Le calcul des intégrales se fait dans une classe à part Integral. Il est évident que toutes les classes sont indispensables au fonctionnement du logiciel, et une bonne compréhension de ces codes est importante avant de pouvoir le modifier. En ce qui concerne les courbes, la plus grande partie du code est présente entre les classes Enviroment, Integral, et surtout la classe Windows qui gère la création des fenêtres (comme la fenêtre ’Show Curves’). 4.2 Courbes Le code que j’ai utilisé pour généré le graphe est présent dans l’annexe B). Pour la courbe représentant l’âge de l’univers en fonction de Ω, j’ai écrit le code en trois parties : une première boucle correspondant à Ω < 1 pour des valeurs allant de 0.01 jusqu’à 0.99. La deuxième partie évalue l’intégrale pour une valeur de Ω = 1 en enfin une deuxième boucle correspondant aux valeurs de Ω > 1 allant de 1.01 jusqu’à 7.00. J’ai tracé à partir des valeur obtenues les courbes présentant l’âge de l’univers en fonction de Ω 4 (voir annexe B). Cette courbe montre bien que t est une fonction décroissante de Ω (de plus grandes valeurs de Ω implique une rapide décélération). 5 Bilan Le but de ce projet informatique était de rajouter une fonction au programme Universe Viewer qui permet de tracer une courbe qui représente la variation de l’âge de l’univers en fonction des paramètres de densité notamment ceux de matière ordinaire et de constante cosmologique. Ce travail relativement simple consistait à évaluer une intégrale par des méthodes numériques et afficher les courbes de niveaux obtenues dans un graphe déclencher par le bouton Show Curves. Malheureusement, et suite à différentes difficultés que j’ai rencontrées, je n’ai pas eu assez de temps pour effectuer tout ce travail et j’ai juste présenté une version simplifiée sur C. Ce travail m’a permis de découvrir un nouveau langage de programmation -Java, relativement simple et très graphique. J’ai aussi profitez de l’utilisation du logiciel Universe Viewer qui m’a permis d’apprendre de nouvelles notions physiques intéressantes (notamment en cosmologie) liées à la visualisation des grandes structures. Références [1] R. Triay, L. Spinelli, R. Lafaye, ‘’Framework for Cosmography at High Redshift”, Mon. Not. R. Astron. Soc. 279 (1996) 564-570. [2] Y. Azzi et C. Maulaz-Pagliari, Rapport de projet - Master 1 informatique, 2010. [3] J. Fontaine et M. abati, Rapport de TER, 2008. [4] E. W. Kolb, M. S. Turner, The Early Universe, Addison-Wesely, 1994. 5 A Screenshots Fenêtre principale de Universe Viewer : Les buttons : 6 B Codes C et Courbes Voici le code qui calcul les valeurs de Ht en fonction de Ω : #include <s t d i o . h> #include <math . h> int main ( void ) { f l o a t hubble1t1 , omega , w, one , hubble2t1 , h u b b l e 1 t 2 ; for (w= 0 . 0 1 ;w<=0.99;w=w+0.01) { h u b b l e 2 t 1=w/ ( 2 ∗ pow(1−w, 1 . 5 ) ) ∗ ( ( 2 / w) ∗ pow(1−w, 0 . 5 ) − a c o s h ( 2 /w− 1 ) ) ; p r i n t f ( ”%f %f \n” , w, h u b b l e 2 t 1 ) ; } one = 1 . 0 ; hubble1t2 =2.0/3.0; p r i n t f ( ”%f %f \n” , one , h u b b l e 1 t 2 ) ; for ( omega = 1 . 0 1 ; omega < 7 . 0 ; omega=omega +0.01) { h u b b l e 1 t 1=omega / ( 2 ∗ pow ( omega − 1 , 1 . 5 ) ) ∗ ( a c o s ( 2 / omega −1)−(2/omega ) ∗pow ( omega − 1 , 0 . 5 ) ) ; p r i n t f ( ”%f %f \n” , omega , h u b b l e 1 t 1 ) ; } return ; } 7 Les graphes obtenus : 8