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

Documents pareils