Skip to content
Snippets Groups Projects
Commit 560473fa authored by paul.albuquer's avatar paul.albuquer
Browse files

Edit cours_22.md

parent 6c48041d
No related branches found
No related tags found
No related merge requests found
Pipeline #39541 passed
...@@ -482,7 +482,7 @@ rien iteration_temporelle(étoiles, dt) ...@@ -482,7 +482,7 @@ rien iteration_temporelle(étoiles, dt)
\footnotesize \footnotesize
* Si temps pour $N=1$ on calcule en $1\mu s$: * Si le temps pour $N=1$ est environ $1\mu s$, on a:
+--------+-------+-------+-----------+ +--------+-------+-------+-----------+
| N | N^2 | t [s] | t [réel] | | N | N^2 | t [s] | t [réel] |
...@@ -493,7 +493,7 @@ rien iteration_temporelle(étoiles, dt) ...@@ -493,7 +493,7 @@ rien iteration_temporelle(étoiles, dt)
+--------+-------+-------+-----------+ +--------+-------+-------+-----------+
| 10^6 | 10^12 | 1e+6 | ~11j | | 10^6 | 10^12 | 1e+6 | ~11j |
+--------+-------+-------+-----------+ +--------+-------+-------+-----------+
| 10^9 | 10^18 | 1e+12 | ~30k ans | | 10^9 | 10^18 | 1e+12 | ~30K ans |
+--------+-------+-------+-----------+ +--------+-------+-------+-----------+
| 10^11 | 10^22 | 1e+16 | ~300M ans | | 10^11 | 10^22 | 1e+16 | ~300M ans |
+--------+-------+-------+-----------+ +--------+-------+-------+-----------+
...@@ -504,7 +504,7 @@ rien iteration_temporelle(étoiles, dt) ...@@ -504,7 +504,7 @@ rien iteration_temporelle(étoiles, dt)
# Question # Question
## Comment faire mieux, des idées? ## Comment faire mieux? Des idées?
. . . . . .
...@@ -588,7 +588,7 @@ rien iteration_temporelle(étoiles, dt) ...@@ -588,7 +588,7 @@ rien iteration_temporelle(étoiles, dt)
![](figs/nbody_qt_withtree.png) ![](figs/nbody_qt_withtree.png)
* On omet les nœuds vides pour éviter la surcharge. * On omet les nœuds vides pour alléger la représentation.
* La numérotation est: * La numérotation est:
* 0: ID * 0: ID
* 1: SD * 1: SD
...@@ -814,8 +814,8 @@ rien insertion_etoile(arbre, e) ...@@ -814,8 +814,8 @@ rien insertion_etoile(arbre, e)
* L'arbre est rempli: comment on calcule la force sur le corps 1? * L'arbre est rempli: comment on calcule la force sur le corps 1?
* Parcours de l'arbre: * Parcours de l'arbre:
* si la distance entre 1 et le centre de masse est suffisante, on utilise la masse totale et centre de masse pour calculer la force. * Si la distance entre 1 et le centre de masse est suffisante, on utilise la masse totale et centre de masse pour calculer la force.
* sinon, on continue le parcours * Sinon on continue le parcours.
# Calcul de la force # Calcul de la force
...@@ -831,7 +831,7 @@ rien insertion_etoile(arbre, e) ...@@ -831,7 +831,7 @@ rien insertion_etoile(arbre, e)
![](figs/force_2.png) ![](figs/force_2.png)
* Le cadrant SG ne contient `5` corps. * Le cadrant SG contient `5` corps.
# Calcul de la force # Calcul de la force
...@@ -854,7 +854,7 @@ rien insertion_etoile(arbre, e) ...@@ -854,7 +854,7 @@ rien insertion_etoile(arbre, e)
# Critère $\theta$ # Critère $\theta$
* On compare $d=||\vec x_1-\vec x_{cm}||$ avec $s$ la taille du quadrant. * On compare $d=||\vec x_1-\vec x_{cm}||$ avec $s$ la taille du quadrant.
* Le domain est assez éloigné si * Le domaine est assez éloigné si
$$ $$
\frac{s}{d}<\theta, \frac{s}{d}<\theta,
...@@ -873,7 +873,7 @@ rien insertion_etoile(arbre, e) ...@@ -873,7 +873,7 @@ rien insertion_etoile(arbre, e)
![](figs/force_4.png) ![](figs/force_4.png)
* Ici $d<2s$, domaine rejeté. * Ici $d<2s$, domaine rejeté.
* ON descend dans l'arbre. * On descend dans l'arbre.
# Calcul de la force # Calcul de la force
...@@ -898,7 +898,7 @@ rien insertion_etoile(arbre, e) ...@@ -898,7 +898,7 @@ rien insertion_etoile(arbre, e)
Pour calculer la force sur un corps `c`, on parcourt l'arbre en commençant par la racine: Pour calculer la force sur un corps `c`, on parcourt l'arbre en commençant par la racine:
* Si le nœud `n` est une feuille et n'est pas `c`, on ajoute la force dûe à `n` sur `c`; * Si le nœud `n` est une feuille et n'est pas `c`, on ajoute la force dûe à `n` sur `c`;
* Sinon si $s/d<\theta$, on traite `n` comme une feuille et on ajoute la force dûe à `n` sur `c`; * Sinon, si $s/d<\theta$, on traite `n` comme une feuille et on ajoute la force dûe à `n` sur `c`;
* Sinon on continue sur les enfants récursivement. * Sinon on continue sur les enfants récursivement.
...@@ -915,7 +915,7 @@ Pour calculer la force sur un corps `c`, on parcourt l'arbre en commençant par ...@@ -915,7 +915,7 @@ Pour calculer la force sur un corps `c`, on parcourt l'arbre en commençant par
. . . . . .
* Et oui! $d>2s$ on peut remplacer les étoiles par leur centre de masse! * Et oui! $d>2s$, donc on peut remplacer les étoiles par leur centre de masse!
# Algorithme du calcul de force # Algorithme du calcul de force
...@@ -928,7 +928,8 @@ rien maj_force_sur_etoile(arbre, e, theta) ...@@ -928,7 +928,8 @@ rien maj_force_sur_etoile(arbre, e, theta)
si est_vide(arbre) si est_vide(arbre)
retourne retourne
si est_feuille(arbre) && contient_etoile(arbre) && dans_le_quadrant(arbre.q, e.x) si est_feuille(arbre) && contient_etoile(arbre)
&& dans_le_quadrant(arbre.q, e.x)
maj_force(e, arbre.e) maj_force(e, arbre.e)
sinon si noeud_assez_loin(arbre, e, theta) sinon si noeud_assez_loin(arbre, e, theta)
maj_force(e, arbre.sup_etoile) maj_force(e, arbre.sup_etoile)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment