10.07.2015 Views

Scarica il pdf con la mia tesi - Parallel Programming Laboratory

Scarica il pdf con la mia tesi - Parallel Programming Laboratory

Scarica il pdf con la mia tesi - Parallel Programming Laboratory

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4 Gli algoritmi ut<strong>il</strong>izzati Cap. 2dove G è <strong>la</strong> costante di gravitazione universale G = 6.672 −8 cm 3 g·s 2 , m 1 e m 2 sonole masse dei due corpi, r 12 è <strong>il</strong> vettore che <strong>con</strong>giunge <strong>la</strong> particel<strong>la</strong> 1 <strong>con</strong> <strong>la</strong> particel<strong>la</strong> 2e F 1 è <strong>la</strong> forza agente sul<strong>la</strong> particel<strong>la</strong> 1.Un in<strong>con</strong>veniente di tale forza che non ne permette l’ut<strong>il</strong>izzo pratico in una simu<strong>la</strong>zionereale è che ogni particel<strong>la</strong> interagisce <strong>con</strong> tutte le altre dando origine a O(N 2 )interazioni, una complessità troppo elevata: quando <strong>il</strong> numero di particelle arriva aqualche m<strong>il</strong>ione le interazioni richieste sono dell’ordine di 10 12 !2.2.1 Algoritmo di Barnes-HutA questo punto si necessita di una qualche semplificazione nel<strong>la</strong> quantità di calcolida eseguire a discapito, ovviamente, dell’accuratezza delle forze stesse. Tale semplificazionepuò essere data dall’uso di strutture ad albero che si basano sul seguente<strong>con</strong>cetto:Per <strong>il</strong> calcolo delle forze cui è soggetto un corpo nello spazio possiamoraggruppare un insieme di particelle lontane dal corpo stesso nel lorocentro di massa.che può essere espresso matematicamente nel seguente modo:F i = G∑j≠im i · m j|r ij | 3 r i j ≈ G m i · M|r i,cm | 3 r i,cm (2.2)dove M è <strong>la</strong> somma delle masse raggruppate insieme e r i,cm è <strong>il</strong> vettore <strong>con</strong>giungente<strong>la</strong> particel<strong>la</strong> in esame <strong>con</strong> <strong>il</strong> centro di massa del raggruppamento.Questo ci permette di creare un albero in cui lo spazio totale viene diviso ricorsivamentein blocchi di particelle vicine, associati ai nodi interni, fino ad arrivare allefoglie in cui c’è una so<strong>la</strong> particel<strong>la</strong>. Associando poi ad ogni nodo un insieme di datisufficienti a descrivere in buona approssimazione <strong>il</strong> gruppo di particelle che esso<strong>con</strong>tiene, possiamo calco<strong>la</strong>re una so<strong>la</strong> interazione tra <strong>il</strong> nodo e una particel<strong>la</strong> lontanaanziché tante interazioni tra tutte le particelle del nodo e <strong>la</strong> particel<strong>la</strong> lontana: questo èl’algoritmo di Barnes-Hut.In Figura 2.1 e ripresa da [Favaretto, 6] si può vedere un esempio del<strong>la</strong> creazionedi un albero ut<strong>il</strong>izzato per l’algoritmo approssimato.In partico<strong>la</strong>re un insieme di dati sufficienti <strong>con</strong>tiene tipicamente <strong>la</strong> massa totaledelle particelle nel nodo, <strong>il</strong> centro di massa <strong>con</strong> re<strong>la</strong>tiva velocità e <strong>il</strong> baricentro, unalista di tutte le particelle <strong>con</strong>tenute e una espansione del quadrupolo.La complessità computazionale del<strong>la</strong> costruzione di un tale albero, qui chiamatooct-tree, si può dimostrare essere O(N lgN) per una distribuzione abbastanza uniformedelle particelle (vedi [Favaretto, 6, pp. 19-20] per maggiori dettagli).2.2.2 Apertura dell’alberoUn problema da gestire in tale algoritmo è <strong>il</strong> seguente: quando si può <strong>con</strong>siderarevalida l’approssimazione data dall’albero e quando invece è necessario espandere <strong>il</strong>nodo?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!