Skip to content

ArchangeGabriel/pycelsi

Repository files navigation

PyCelSi est un simulateur numérique de problème N-corps débuté dans le cadre d'un projet informatique de premier semestre en L3 Sciences de la Matière à l'ENS de Lyon.

Ce projet, bien que plus développé dans ce cadre, continuera d'être développé sur mon temps libre tant il me passione.

La manière principale de l'utiliser est de le lancer en ligne de commande, avec lecture d'un fichier de conf. Mais il est également possible d'importer les modules créés à l'occasion et de jouer avec dans une console Python/iPython.
Beaucoup d'autres manières de l'utiliser verront le jour plus tard, au fur et à mesure du développement.

Quelques exemples d'utilisation du script principal :

 - évolution du système Terre-Soleil, année terrestre équivalente à 5 min, temps synchronisé (pour ma machine) :
   ./main.py -s "sun+earth.txt" -t 105192 -c 100 -w 0.039

 - pendant 1 an terrestre avec calculs précédant l'affichage :
   ./main.py -s "sun+earth.txt" -t 105192 -c 100 -w 0.037 -T 31557600

 - évolution du système solaire,  année terrestre équivalente à 5 min, fps max :
   ./main.py -s "systeme_solaire.txt" -t 105192 -c 10 -w 0.001

 - évolution du système solaire zommée sur Mercure, année mercurienne équivalente à 1 min, fps max :
   ./main.py -s "systeme_solaire.txt" -t 126675.8496 -c 10 -w 0.001 -x 1e11

Par rapport à cette dernière option, -x, sachez qu'il est possible via les boutons situés en bas de la fenêtre de zoomer, dézoomer, revenir à la vue initiale et de se déplacer.

Quelques grandeurs utiles pour diverses simulation :

Années : [s] [an T]
Mercure : 7600550.976 0.2408
Venus : 19414166.4 0.6152
Terre : 31558201.344 1.0000
Mars : 59353352.64 1.8808
Jupiter : 374574628.8 11.8693
Saturne : 929468433.6 29.4525
Uranus : 2661041808.0 84.3217
Neptune : 5203431671.04 164.8837

Après calculs avec la méthode 0 :
Années : [s] [an Tr] [an Ts]
Mercure : 7321864.107 0.2320 0.244
Venus : 19365630.984 0.6135 0.645
Terre : 30006589.778 0.9508 1
Mars : 59353352.64 1.8808 1.98 (Mais à dt près)
Jupiter : 373013901.180 11.82 12.4
Saturne : 910104507.9 28.84 30.3
Uranus : 2661041808.0 84.3 88.7 (Mais à dt près)
Naptune : 5203431671.04 164 173 (Mais à dt près)

Quelques trucs qui seraient biens, à implémenter :
 - couleur des objets (les corps en ont une, mais rien dans l'affichage)
 - rayon des objets, avec par exemple le plus petit ayant un diamètre de 2px, et les autres proportionnels
 - possibilité d'avoir la trajectoire en pointillé (un pixel noir pour chaque position des corps)
 - possibilité d'écrire le système itéré un paquet de fois dans un fichier, pour pouvoir reprendre pour faire un replay par exemple
 - possibilité d'afficher le temps écoulé pour le système lorsqu'un corps a effectué une révolution, avec le nom de cleui-ci (détection y<0 vers y>0)
 - afficher le centre de masse
 - valeur moyenne des distances des corps au centre du système. Avec le point ci-dessus, c'est un paramètre de stabilité.
 - moment du système

About

Python Celestial Simulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages