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

12
Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dell’Universo di Daniele Giunchi Relatore: Prof. Antonio Messina

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

Page 1: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

Programmazione ad oggetti per la simulazione numerica di strutture

su grande scala dell’Universo

di Daniele Giunchi

Relatore: Prof. Antonio Messina

Page 2: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso 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)

Page 3: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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

Page 4: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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

Page 5: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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

Page 6: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

Progettazione Barnes-Hut

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

Page 7: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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

Page 8: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

Progettazione FMM

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

Page 9: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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.

Page 10: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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

Page 11: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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

Page 12: Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.

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