« Projet: Evolution d'une galaxie » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 4 : Ligne 4 :


Les classes de base à considérer sont :
Les classes de base à considérer sont :
* la classe "UEtoile" définissant une étoile. Pour le moment, on y inclut la masse, la position et la vitesse de l'étoile. Un premier squelette de classe peut être trouvé ici : [[http://www.lapp.in2p3.fr/~buskulic/UEtoile.h UEtoile.h]] et [[http://www.lapp.in2p3.fr/~buskulic/UEtoile.C UEtoile.C]]
* la classe "UEtoile" définissant une étoile. Pour le moment, on y inclut la masse, la position et la vitesse de l'étoile. Un premier squelette de classe peut être trouvé ici : [[http://www.lapp.in2p3.fr/~buskulic/UEtoile.h UEtoile.h]] et [[http://www.lapp.in2p3.fr/~buskulic/UEtoile.C UEtoile.C]]
* la classe "UGalaxie" qui reste à écrire, représentant un ensemble d'étoiles, pas forcément une galaxie (amas globulaire, etc...)
Nous nous sommes mis d'accord sur une structure avec trois

Un moteur "EDOMoteur", dont nous ne sommes pas encore persuadé qu'il doit s'écrire sous forme de classe (c'est probable). Ce moteur prendrait les objets d'une galaxie un à un et les fera évoluer dans le temps. Une méthode de Runge-Kutta simple sera implémentée au début, que l'on fera évoluer vers une méthode avec pas de temps adaptatif.

Remarques :
* On adoptera une convention de noms pour les classes et variables membres des classes, ainsi que pour les méthodes :
** tous les noms de classe commenceront par un U majuscule
** tous les noms de variable membres d'une classe commenceront par un "m" minuscule suivi d'une majuscule
** tous les noms de méthode de classe commenceront par une majuscule suivie de minuscules, sauf pour marque le début d'un mot.
*** Exemple : Trace() ou TraceUnCarre()

Version du 1 octobre 2008 à 13:00

On veut simuler l'évolution d'une galaxie, en particulier sa structure, au cours du temps. Il s'agit en fait d'un problème à N corps, N étant grand (quelques centaines pour commencer). Les notions de C++ vues en cours seront (ré)introduites et utilisées au fur et à mesure. On a d'abord scindé le problème en parties, chacune étant traitée par un binôme.

Structure générale du code et définition des classes de base

Les classes de base à considérer sont :

  • la classe "UEtoile" définissant une étoile. Pour le moment, on y inclut la masse, la position et la vitesse de l'étoile. Un premier squelette de classe peut être trouvé ici : [UEtoile.h] et [UEtoile.C]
  • la classe "UGalaxie" qui reste à écrire, représentant un ensemble d'étoiles, pas forcément une galaxie (amas globulaire, etc...)

Un moteur "EDOMoteur", dont nous ne sommes pas encore persuadé qu'il doit s'écrire sous forme de classe (c'est probable). Ce moteur prendrait les objets d'une galaxie un à un et les fera évoluer dans le temps. Une méthode de Runge-Kutta simple sera implémentée au début, que l'on fera évoluer vers une méthode avec pas de temps adaptatif.

Remarques :

  • On adoptera une convention de noms pour les classes et variables membres des classes, ainsi que pour les méthodes :
    • tous les noms de classe commenceront par un U majuscule
    • tous les noms de variable membres d'une classe commenceront par un "m" minuscule suivi d'une majuscule
    • tous les noms de méthode de classe commenceront par une majuscule suivie de minuscules, sauf pour marque le début d'un mot.
      • Exemple : Trace() ou TraceUnCarre()