Perché è interessante
Le simulazioni ad Elementi Discreti si sono dimostrate negli ultimi decenni uno strumento potente per simulare svariati fenomeni, dalla rappresentazione particellare del continuo per cogliere meccanismi di frattura alle applicazioni industriali per tramogge, nastri trasportatori e altri macchinari in ambito minerario, farmaceutico, ecc. Il nostro gruppo di ricerca utilizza questo metodo principalmente per la generazione di provini di calcestruzzo sui quali eseguire analisi ad Elementi Finiti in meso-scala. Entrare direttamente nel codice permette di interfacciarsi con molteplici problemi difficili da interpretare e risolvere quando si è utenti finali, quali gli algoritmi di contatto o la stabilizzazione delle equazioni del moto. Un altro aspetto interessante è la possibilità di poter migliorare le performance del proprio codice, sia dal punto di vista algoritmico che informatico, al fine di lanciare le proprie simulazioni su un server di calcolo in maniera efficiente. La tesi è incentrata sullo sviluppo del codice di calcolo in C++, abbinato a simulazioni per testare quanto implementato: si viene affiancati nelle prime fasi di installazione dell’ambiente di programmazione, per poi arrivare a fine tesi autonomi nel gestire e modificare il codice.
Cosa farai
- Implementare particelle superquadriche (sfere, ellissoidi, ecc.) e cluster di esse assieme ad algoritmi di contatto specializzati, sui quali eseguire benchmark per stimare l'efficienza del calcolo.
- Implementare e calibrare contatti tangenziali e forze viscose del fluido cementizio, andando a modificare lo schema di integrazione per stabilizzare la simulazione.
- Implementare particelle concave tramite scomposizione in cluster di particelle convesse.
- Gestire e semplificare una libreria STL di inerti, da mesh complesse (ottenute con tomografia industriale) a particelle semplificate, al fine di eseguire analisi efficienti ma realistiche.
- Sono ben accette proposte degli studenti per sviluppi non menzionati qui.
Prerequisiti
- Buona predisposizione al lavoro al computer.
- Conoscenze di base di programmazione (in MATLAB o qualsiasi altro linguaggio): non indispensabili, ma utili per accelerare le prime fasi.
Strumenti
- Ambiente di sviluppo integrato per software di ricerca in C++.
- Librerie scientifiche moderne quali Visualization Toolkit (VTK), Intel Math Kernel Library (MKL) e altre.
- Software di grafica 3D (consigliato Rhinoceros), per manipolare geometrie inerti (solo certi temi).
- Un cluster di calcolo (HPC - High Performance Computing), per lanciare le simulazioni in modo efficiente.
Relatore
Prof. Gianluca Mazzucco · gianluca.mazzucco@unipd.it

