simulation problèmes à N corps
Affichage des résultats 1 à 28 sur 28

simulation problèmes à N corps



  1. #1
    invite179b3610

    simulation problèmes à N corps


    ------

    Bonjour,

    je viens pour vous présenter une simulation numérique.

    [cliquez sur l'image pour accéder à la démo]


    Il s'agit de la formation de système solaire par accrétion.
    Initialement on lâche un grand nombre de petits corps autour d'un autre largement plus massif, et on observe l’agrégation s'effectuer.
    J'ai utilisé l'algo de Barnes-Hut (version simplifiée)

    C'est codé en javascript et WebGL.

    merci de me dire ce que vous en pensez.

    SuperLePoulpe

    Pour y accéder, il vous faut un navigateur récent (firefox 4 ou chrome) et des drivers graphiques à jour
    [gestionnaire de périphériques -> carte graphique -> mettre à jour le driver]

    -----

  2. #2
    JPL
    Responsable des forums

    Re : simulation problèmes à N corps

    Ça aurait peut-être plus sa place en Astronomie ?
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    invite179b3610

    Re : simulation problèmes à N corps

    ok je déplace

  4. #4
    JPL
    Responsable des forums

    Re : simulation problèmes à N corps

    Non, c'est moi qui déplace.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  5. A voir en vidéo sur Futura
  6. #5
    Gilgamesh
    Modérateur

    Re : simulation problèmes à N corps

    Citation Envoyé par SuperLePoulpe Voir le message
    Bonjour,

    je viens pour vous présenter une simulation numérique.
    (...)

    merci de me dire ce que vous en pensez.
    Bravo je suis bluffé par la qualité et c'est fascinant à observer.

    Ça permet de donner une idée visuelle de la dynamique du passage des coeur planétaires aux noyaux telluriques (phase D).
    Après la phase d’accrétion des planétésimaux, le disque proto-planétaire se compose de coeurs planétaires sur des orbites séparées, plus ou moins circulaires. Rapidement les perturbations gravitationnelle rendent leur orbites de plus en plus elliptiques, jusqu’à ce qu’elles se croisent, d'où une fusion des coeur planétaire aboutissant à la formation d'un petit nombre de noyaux planétaires.

    a+
    Dernière modification par Gilgamesh ; 28/06/2011 à 13h53.
    Parcours Etranges

  7. #6
    inviteec0d6e6f

    Re : simulation problèmes à N corps

    Salut,

    Tout d'abord, félicitation pour cet admirable travail.
    C'est vraiment superbe !

    Le petit truc qui m'interpelle, c'est qu'on se demande si c'est une simulation du problème a N corps (y en a quand même énormément) ou plutôt une simulation de la planétogenèse d'un système stellaire.
    C'est a mi-chemin entre les deux.

    Pour le problème a N corps, il y a trop d'éléments pour pouvoir visualiser l'aspect chaotique, caractéristique du problème a N corps, et pour la planétogenèse, ce modèle ne semble pas rendre compte de l’accrétion planétaire.
    Il est vrai que je ne l'ai pas fait tourner très longtemps (moins de 10 minutes).

    Je vais le relancer plus longtemps et voir si on abouti a une formation de planètes.

    En tout les cas, chapeau bas pour la réalisation !

    edit : conseil pour bien visualiser => d'abord, mettez le navigateur en plein écran et appuyez sur F11 AVANT de lancer la simulation.
    Comme ça vous l'aurez vraiment en plein écran.

  8. #7
    Calvert

    Re : simulation problèmes à N corps

    Salut !

    Une question intéressante est comment sont traitées les collisions et les rapprochements "très proches" qui ne collisionnent pas ?

    Ensuite, si je comprends bien, tu calcules là en parallèle l'évolution et l'affichage graphique ? Parce que du coup, il faut vraiment être patient pour que ça avance...

    Serait-il possible de faire la même simulation, de sauver les données et d'en faire un film qui serait visualisable en accéléré ?

    Sinon, c'est déjà un très beau travail !

  9. #8
    inviteec0d6e6f

    Re : simulation problèmes à N corps

    Au bout d'une vingtaine de minutes, j’aboutis a un peu plus de 100 corps restants, et ça commence a se "stabiliser" (beaucoup moins d’accrétions).
    Que penserais-tu de rajouter une pression de radiation croissante avec le temps, en provenance de l'astre central, qui nettoierait le système des plus petits éléments non agrégés ?
    La pression croissante de radiation ne doit pas vraiment être très réaliste, c'est sûr, mais ça permettrait de "nettoyer" le système, non ?
    Évidemment, c'est beaucoup plus facile a suggérer qu'a mettre en œuvre...

    En tout cas, travail vraiment superbe !

  10. #9
    inviteec0d6e6f

    Re : simulation problèmes à N corps

    heuuu le sondage a disparu dans la migration du post, j'ai l'impression...

  11. #10
    Calvert

    Re : simulation problèmes à N corps

    Que penserais-tu de rajouter une pression de radiation croissante avec le temps, en provenance de l'astre central, qui nettoierait le système des plus petits éléments non agrégés ?
    Je pense que ses plus petits corps sont déjà beaucoup trop gros pour être vraiment sensibles à la pression de radiation de manière notable.

    Un gros plus serait aussi de mettre une indication du temps écoulé quelque part.

  12. #11
    invite179b3610

    Re : simulation problèmes à N corps

    Bonjour,

    et bien merci pour ces commentaires très intéressants !

    Pour commencer, j'ai mis à jour le modèle, et on arrive à aggréger beaucoup plus. Quand il y a moins de 100 corps restant, ils deviennent tous sensibles les uns aux autres. Après 1h de calcul (à partir de 10 000 corps) il n'en reste plus que 35.

    @Carcharodon : Pour la pression de radiation, pourquoi pas, et ce serait assez simple à mettre en oeuvre (un force proportionnelle au carré du rayon). Mais finalement, j'aime bien qu'il reste des petits trucs à la fin. Je me dis qu'avec un peu de chance je vais voir se former un satellite de satellite

    @ Calvert : En fait à chaque dessin à l'écran, je calcule les nouvelles positions des planètes. Pour ce faire elles sont regroupées en cellules plus ou moins grosses, et chaque planete est sensible à la gravité de ses voisines dans la cellule. Le schéma numérique est explicite, mais il a l'air d'être inconditionnellement stable.
    Moins il y a de planetes, plus je grossis mes cellules. Quand il y a moins de 100 corps, il n'y a plus qu'une seule cellule.
    Sauvegarder les données, j'aimerais bien, mais je n'arrive pas à faire marcher le plugin firefox qui permet de le faire. En tout cas tu peux essayer. Quant à tout sauver moi-même dans un avi, je ne pense pas que ce soit possible...

    @ Gilgamesh : Merci pour l'info! Je ne savais pas tout ça !

    @JPL : merci, mais pourrais-tu remettre le sondage?


    Re merci à tous pour vos commentaires !

  13. #12
    Calvert

    Re : simulation problèmes à N corps

    Quant à tout sauver moi-même dans un avi, je ne pense pas que ce soit possible...
    C'est de ça dont je parlais.

    Et, un point qui t'a échappé :

    Citation Envoyé par Calvert
    Une question intéressante est comment sont traitées les collisions et les rapprochements "très proches" qui ne collisionnent pas ?

    Est-ce que ton code est parallélisé ?

  14. #13
    invite179b3610

    Re : simulation problèmes à N corps

    Non malheureusement, javascript ne permet pas encore de faire du multi thread.
    Ca devrait venir...
    C'est sur qu'en code compilé je ferais du CUDA et ça serait mieux

    Quant à ta question (j'avais effectivement oublié) : quand c'est très proche ça ne fusionne pas. Il faut vraiment qu'il y ait collision...

    En fait je sais pas trop quelle serait la physique pour ce genre de phénomène.
    Déjà, je pense qu'il devrait y avoir une énergie à passer pour qu'il y ait fusion, du genre proportionnelle à la masse du système formé des deux corps?

  15. #14
    inviteec0d6e6f

    Re : simulation problèmes à N corps

    Citation Envoyé par Calvert Voir le message
    Je pense que ses plus petits corps sont déjà beaucoup trop gros pour être vraiment sensibles à la pression de radiation de manière notable.
    Tout a fait, je précisais d'ailleurs que c'était pas réaliste.
    Je pensais a quelque chose qui n'affecterait que des corps d'une taille inférieure a "x" (genre taille de la Lune -qui serait le plus petit- par rapport à taille de Jupiter -qui serait le plus gros-) et qui ne se mettrait en œuvre qu'a partir d'un certain temps, afin d'aboutir a un système ne comportant que des gros corps planétaires.
    Pour simuler la création d'un cortège planétaire.
    Évidemment, on ne peut pas attendre des délais réalistes qui se comptent en dizaines ou centaines de millions d'années sur une simulation comme celle-ci, même si cette simulation peut être accélérée considérablement par rapport au temps réel.

    Ça pourrait être une option pour simuler la planéto-genèse.

    @Carcharodon : Pour la pression de radiation, pourquoi pas, et ce serait assez simple à mettre en oeuvre (un force proportionnelle au carré du rayon). Mais finalement, j'aime bien qu'il reste des petits trucs à la fin. Je me dis qu'avec un peu de chance je vais voir se former un satellite de satellite
    Alors, sur ce que j'ai pu observer, je n'ai pas encore vu de mise en orbite de satellite autour de gros corps.
    Si t'y arrives, chapeau !
    Ça doit pas être gagné cette affaire !

    Je vois aussi que le projet évolue très rapidement, chapeau, c'est vraiment impressionnant !

  16. #15
    inviteec0d6e6f

    Re : simulation problèmes à N corps

    Citation Envoyé par SuperLePoulpe Voir le message
    Déjà, je pense qu'il devrait y avoir une énergie à passer pour qu'il y ait fusion, du genre proportionnelle à la masse du système formé des deux corps?
    A mon avis ça doit être compliqué, ça doit dépendre de l'angle d'impact, des vitesses et masses respectives et relatives.
    Ça doit embrouiller sérieusement le calcul et faire fumer les processeurs ce truc là, et je ne sais pas si ça apporterait réellement quelque chose.
    Je trouve ta méthode actuelle très satisfaisante... de mon point de vue.

    Franchement, j'adore ta création !

    Penses peut-être a étudier des options (a choisir par l'utilisateur) du genre de celle que je mentionne pour orienter la simulation vers tel ou tel objectif... ?

    Genre : soit simulation a N corps (en ne touchant presque rien), soit planéto-genèse (en incorporant des processus de "nettoyage" a posteriori).
    Ceci n'est bien sûr qu'une suggestion...

  17. #16
    Calvert

    Re : simulation problèmes à N corps

    Quant à ta question (j'avais effectivement oublié) : quand c'est très proche ça ne fusionne pas. Il faut vraiment qu'il y ait collision...
    Mais tes corps ont une extension spatiale ? Comment est-elle calculée ?
    Sinon, pour que deux points entrent en collision, c'est pas gagné !

    En fait je sais pas trop quelle serait la physique pour ce genre de phénomène.
    Déjà, je pense qu'il devrait y avoir une énergie à passer pour qu'il y ait fusion, du genre proportionnelle à la masse du système formé des deux corps?
    C'est tout le problème des "vraies" simulations sur ce sujet : il faut bien traité les collisions (ce qui implique de parfaitement traité les rapprochements, avec des pas de temps très petits). De plus, il n'y a pas forcément fusion, mais il peut aussi y avoir destruction, avec la création de plusieurs fragments plus petits, etc...
    C'est sans doute très complexe et peu compris.

  18. #17
    inviteec0d6e6f

    Re : simulation problèmes à N corps

    Citation Envoyé par Calvert Voir le message
    C'est tout le problème des "vraies" simulations sur ce sujet : il faut bien traité les collisions (ce qui implique de parfaitement traité les rapprochements, avec des pas de temps très petits). De plus, il n'y a pas forcément fusion, mais il peut aussi y avoir destruction, avec la création de plusieurs fragments plus petits, etc...
    C'est sans doute très complexe et peu compris.
    Et c'est un truc hyper "calculivore" ça.
    Dans l'idéal, une simulation doit quasiment remonter jusqu’à l'échelle atomique pour que le rendu ne s'échappe par trop vite de la réalité.
    Mais le mieux est l'ennemi du bien en la matière.

    Moi je trouve que sa solution est élégante, dans le sens ou elle économise énormément de calcul, qui peut être consacré a autre chose, même si nos bécanes sont de plus en plus performantes.

    Mes FPS sont tout a fait corrects pour l'instant (+ de 100 en permanence, et 200 a partir d'un certain temps, avec un 4 coeurs X 2.4Ghz et une GTX 275 en CG).

  19. #18
    invite179b3610

    Re : simulation problèmes à N corps

    @ calvert : oui je n'ai clairement, ça serait trop couteux en temps de calcul de faire un vrai quelque chose avec possibilité d'éclatement... je pense que javascript rendrait l'âme assez rapidement.

    Mes corps ont une extension spatiale. Elle correspond à une sphère de volume proportionnel à la masse du corps.

  20. #19
    Calvert

    Re : simulation problèmes à N corps

    Mes corps ont une extension spatiale. Elle correspond à une sphère de volume proportionnel à la masse du corps.
    Ok, c'est ça qui m'intéressait ! Merci !

  21. #20
    Gilgamesh
    Modérateur

    Re : simulation problèmes à N corps

    Un truc me tracasse. Normalement, il devrait se produire de temps à autres des éjections de petites masses à la vitesse de libération, ce qui extrairait de l'énergie gravitationnelle au système ("évaporation gravitationnelle") et se traduirait par un racourcissement du demi-grand axe moyen. Or là, quand on laisse aller la simulation, non seulement on ne voit aucun corps éjecté mais l'orbite moyenne s'agrandit. J'aimerais bien savoir comment ça se raisonne... Je conçois assez bien que l'éjection soit un phénomène assez rare (et qu'il faille des dizaines de milliers d'orbites pour avoir la chance d'en observer une) mais pourquoi a contrario l'orbite moyenne s'agrandit ?

    a+
    Dernière modification par Gilgamesh ; 29/06/2011 à 15h42.
    Parcours Etranges

  22. #21
    Calvert

    Re : simulation problèmes à N corps

    Un truc me tracasse. Normalement, il devrait se produire de temps à autres des éjections de petites masses à la vitesse de libération, ce qui extrairait de l'énergie gravitationnelle au système ("évaproration gravitationnelle") et se traduirait par un racourcissement du demi-grand axe moyen. Or là, quand on laisse aller la simulation, non seulement on ne voit aucun corps éjecté mais l'orbite moyenne s'agrandit. J'aimerais bien savoir comment ça se raisonne... Je conçois assez bien que l'éjection soit un phénomène assez rare (et qu'il faille des dizaines de milliers d'orbites pour avoir la chance d'en observer une) mais pourquoi a contrario l'orbite moyenne s'agrandit ?
    Deux points importants ici : en fonction de l'algorithme utilisé pour intégré l'équation du mouvement, il est possible (probable si on n'y a pas apporté attention) que l'énergie totale du système ne soit pas conservée. Ce qui peut poser problème.

    Ensuite, les éjections et autres fantaisies se produisent (je pense) lors d'interaction 2 corps. De nouveau, la précision ici doit dépendre fortement du traitement des grands rapprochement sans collision (en particulier, de l'adaptation du pas de temps). Dans les simulations à N-corps "professionnelles", par exemple, plusieurs pas de temps sont employés au besoin, en fonction de la vitesse des particules. Je ne sais pas comment c'est fait ici.

  23. #22
    Gilgamesh
    Modérateur

    Re : simulation problèmes à N corps

    Merci Calvert, à suivre donc.

    S'il existe une astuce algorithmique simple pour "conserver l'énergie" du système, ce serait déjà intéressant de l'implémenter. Pour traiter les éjections (simulation multi échelles), c'est probablement un autre paire de manche.

    a+
    Parcours Etranges

  24. #23
    Calvert

    Re : simulation problèmes à N corps

    Je ne sais pas, je ne suis pas spécialiste de l'implémentation de tels codes. C'est juste des infos de tête dont je me souviens au gré des séminaires / conférences...

    Mais je sais que dans les simulations d'amas stellaires, par exemple, le traitement des binaires et des rencontre binaires - étoile simple avec gros échange de moment cinétique sont particulièrement difficiles à traiter proprement.

    Edit : on peut peut-être trouver des infos chez "ceux qui font ça", ici, par exemple.

  25. #24
    invite179b3610

    Re : simulation problèmes à N corps

    Citation Envoyé par Gilgamesh Voir le message
    Un truc me tracasse. Normalement, il devrait se produire de temps à autres des éjections de petites masses à la vitesse de libération, ce qui extrairait de l'énergie gravitationnelle au système ("évaproration gravitationnelle") et se traduirait par un racourcissement du demi-grand axe moyen. Or là, quand on laisse aller la simulation, non seulement on ne voit aucun corps éjecté mais l'orbite moyenne s'agrandit. J'aimerais bien savoir comment ça se raisonne... Je conçois assez bien que l'éjection soit un phénomène assez rare (et qu'il faille des dizaines de milliers d'orbites pour avoir la chance d'en observer une) mais pourquoi a contrario l'orbite moyenne s'agrandit ?

    a+
    Bonjour, l'agrandissement de l'orbite moyenne intervient quand on augmente la vitesse. C'était pour éviter de devoir passer trop longtemps à regarder le système évoluer, mais du coup le shéma numérique devient complètement inconsistant...

    Quant aux éjections, et à l'agrandissement du demi-grand axe, c'est vrai que je serai curieux de les observer et je ne comprend pas pourquoi ce n'est pas le cas.

    Je vais y jeter un oeil.

    PS: merci pour le lien NBody Lab

  26. #25
    invite9f80122c

    Re : simulation problèmes à N corps



    Belle simulation

  27. #26
    invite179b3610

    Re : simulation problèmes à N corps

    Bonjour,

    Je n'arrive pas trop à améliorer le comportement. Je pense que je vais la laisser comme ça...

    Google l'a pris dans ses experiments http://www.chromeexperiments.com/
    Peut être grâce à vos bons conseils!
    Mais du coup je peux plus trop changer
    Merci à tous!!
    Je reviendrai vous dire si je fais des mises-à-jour!

    Encore merci, et à bientôt!

  28. #27
    invite60972a28

    Re : simulation problèmes à N corps

    Pour ton problème d’éjection de corps, tu pourrais nous donner la masse totale de l'anneau et la masse du corps central ?

  29. #28
    invite60972a28

    Re : simulation problèmes à N corps

    Coucou

    Cette partie de ton code doit avoir un défaut, car j'ai vu des corps assez grand se refaire centrer sur un corps très petit.


    var d = (position.X - positionOt.X) * (position.X - positionOt.X) + (position.Y - positionOt.Y) * (position.Y - positionOt.Y) + (position.Z - positionOt.Z) * (position.Z - positionOt.Z) ;

    if (d < (masse + masseOt)*(masse + masseOt)) {// on fait grossir les planetes qui vont bien
    var r1 = this.planets[id].masse ;
    var r2 = this.planets[idOt].masse ;
    this.planets[id].masse = Math.pow((r1*r1*r1 + r2*r2*r2), 0.33) ;
    var m1 = this.planets[id].masse ;
    var m2 = this.planets[idOt].masse ;
    var tmp = 1./(m1+m2) ;
    this.planets[id].vitesse.X = tmp * (m1*zde.vitesse.X + m2*this.planets[idOt].vitesse.X) ;
    this.planets[id].vitesse.Y = tmp * (m1*zde.vitesse.Y + m2*this.planets[idOt].vitesse.Y) ;
    this.planets[id].vitesse.Z = tmp * (m1*zde.vitesse.Z + m2*this.planets[idOt].vitesse.Z) ;

    this.planets[id].position.X = tmp * (m1*zde.position.X + m2*this.planets[idOt].position.X) ;
    this.planets[id].position.Y = tmp * (m1*zde.position.Y + m2*this.planets[idOt].position.Y) ;
    this.planets[id].position.Z = tmp * (m1*zde.position.Z + m2*this.planets[idOt].position.Z) ;
    deleteIdx.push(idOt) ;

    Et comme tu ne respectes pas les unités conventionnelles(masse = mètre), je suis à la limite de vouloir t'aider.
    Mais PM moi quand même, et on réglera ça

    Sinon comment marche cette histoire de globules, je fait des simulations également de manière classique, c'est à dire chaque corps attire chaque autre corps (ça me bouffe mon cpu).

    As tu déjà programmé la méthode classique avant ? as tu vus des temps de calcul nettement plus court pour des résultats similaires ?
    Est ce qu'elle s'applique a tout système gravitationnel ?

Discussions similaires

  1. Simulation numérique de problèmes physiques
    Par invitebcbe9678 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 09/04/2011, 17h51
  2. [Simulation PSpice]Simulation d'une résistance variant au cours du temps
    Par invite11ca1f44 dans le forum Électronique
    Réponses: 11
    Dernier message: 24/03/2010, 19h30
  3. [M4] Des problèmes de corps
    Par invite9c9b9968 dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 20/02/2010, 13h56
  4. Réponses: 1
    Dernier message: 30/09/2009, 13h44
  5. Simulation de système à 2 ou 3 corps
    Par philname dans le forum Archives
    Réponses: 7
    Dernier message: 21/06/2008, 16h10