Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di...

Post on 02-May-2015

213 views 0 download

Transcript of Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di...

Programmazione ad oggetti per la simulazione numerica di strutture

su grande scala dell’Universo

di Daniele Giunchi

Relatore: Prof. Antonio Messina

Simulazione Numerica

• Sistemi con numero elevato di corpi

• Utilizzate in ambito astrofisico, fisica dei plasmi, fluidodinamica, dinamica molecolare…

• Metodi PP, PM, PPPM, AMR, metodi gerarchici

• Algoritmi Barnes-Hut , Fast Multipole Method (FMM)

Metodo Gerarchico

Caratteristiche principali:

• Suddivisione del dominio

• Struttura ad albero a livelli

• Nodo Root e’ il volume iniziale

• Nodi foglia contengono 0 o 1 corpo

Vantaggi e Svantaggi:

• Non sono necessarie condizioni al contorno

• Poco performante per distribuzioni concentrate o

asimmetriche

Algoritmo di Barnes-Hut

1. Costruzione dell’Albero

2. Attraversamento dal fondo per il calcolo dei Centri di Massa

3. Attraversamento da Root per il calcolo delle Forze (per ogni corpo, parametro di tolleranza)

4. Aggiornamento Posizione e Velocita’ di ogni corpo

5. Reiterazione dei punti precedenti

Progettazione Barnes-HutClassi del Sottosistema “Calcolo Forza”:

• Body: e’ il corpo (posizione, velocita’, forza, potenziale...)

• Node: e’ il nodo dell’albero (massa, c.d.m, centro geometrico, dimensione)

• Tree: costruisce l’albero e chiama le procedure per l’attraversamento e il calcolo delle forze

• Walk: collabora con Tree per l’attraversamento

• Force: collabora calcolando la forza tra corpo-corpo o nodo-corpo

Progettazione Barnes-Hut

Diagramma relazionale tra le classi all’interno del sottosistema “Calcolo Forza”:

Fast Multipole Method

1. Costruzione dell’Albero

2. Attraversamento dal fondo per il calcolo dell’espansione di multipolo per ogni nodo

3. Attraversamento da Root per il calcolo delle espansioni interne per ogni nodo

4. Calcolo dei contributi dei nodi e corpi vicini (PP)

5. Calcolo delle Forze e aggiornamento Posizioni e Velocita’ dei corpi

6. Reiterazione dei punti precedenti

Progettazione FMM

Diagramma relazionale tra le classi all’interno del sottosistema “Calcolo Forza FMM”:

Altri Sottosistemi

• Tools : collabora con “Calcolo Forza” per i calcoli piu’ semplici.

• Gestione Tempo: gestisce l’aspetto temporale compreso l’aggiornamento delle velocita’ e delle posizioni, utilizza l’algoritmo Leapfrog.

• Gestione I/O: contiene le classi adibite alle operazioni di Input / Output , dalla scrittura dei files alla lettura degli stessi.

• Simulazione:accetta i parametri introdotti dall’utente e genera le coordinate dei corpi, attraverso tecniche standard utilizzate nella simulazione.

GUI : wxWindows

• Libreria di classi e procedure utili per la costruzione dell’ interfaccia grafica (GUI)

• Libreria free multipiattaforma (Windows, Linux, Mac…)

• Consente oltretutto di costruire grafici bidimensionali

www.wxwindows.org

3D : OpenGL

• Librerie per la visualizzazione 3D di oggetti

• Consente l’utilizzo di procedure come la traslazione e la rotazione di oggetti

• Libreria free e multipiattaforma

www.opengl.org

Conclusioni

Sviluppi possibili:

• Parallelizzazione del codice (MPI , OpenMP)

• Aggiunta di Sottosistemi basati su altri Algoritmi di calcolo

• Aggiunta di sottosistemi per la stima dei tempi e delle risorse

• Funzionalita’ basate su OpenGL