Skip to content
Snippets Groups Projects
Verified Commit 723dc0a5 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

added last slides of BH but without pseudo code

parent 5134b98b
No related branches found
No related tags found
No related merge requests found
......@@ -776,5 +776,59 @@ rien insertion_etoile(arbre, e)
![](figs/force_6.png)
* Les noeuds sont des feuilles, ils sont acceptés.
* Les noeuds sont des feuilles, on calcule la force.
* On ajoute la force qu'ils exercent sur `1`.
# Algorithme pour le calcul de la force
Pour calculer la force sur un corps `c`, on parcourt l'arbre en commençant par la racine:
* Si le noeud `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 on continue sur les enfants récursivement.
## Cotinuous notre exemple précédent!
# Calcul de la force
## Calcul de la force sur `1`
![](figs/force_7.png)
* Il y a deux corps dans le quadrant vert.
* Quel est le critère pour remplacer les étoiles par leur centre de masse?
. . .
* Et oui! $d>2s$ on peut remplacer les étoiles par leur centre de masse!
# Algorithme du calcul de force
## Écrire le psuedo-code du calcul de la force
```C
rien maj_force_sur_etoile(arbre, e, theta)
si est_vide(arbre) ou !existe(e)
retourne
if (!n || !p) {
return;
}
// if the node is a leaf and contains a particle which and the particle is not
// in the bounding box of the node (this means that we are at a particle on
// a different leaf).
if (node_is_leaf(n) && !node_is_empty(n) && !is_inside(n->b, p->pos)) {
update_acceleration(p, n->p);
}
// else if the node is far enough of the particle
else if (node_is_far_enough(n, p, theta)) {
update_acceleration(p, n->super_p);
}
else { // else just update the acceleration recurively
for (int i = 0; i < 4; ++i) {
update_acceleration_from_node_on_particle(n->children[i], p, theta);
}
}
}
```
slides/figs/force_7.png

129 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment