Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di...
-
Upload
elena-angeli -
Category
Documents
-
view
213 -
download
0
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