Ivo Gasparini

Sperimentando con simulazioni numeriche: il mio tentativo ad un solver esplicito per la simulazione di reti paramassi

· Ivo
Rete paramassi in RBA durante l'impatto.
Figura 1: Rete paramassi in RBA durante l'impatto.

📄 RockBarrierAnalytica - Report


Come parte del mio lavoro alla BFH, ispezionamo le reti paramassi vendute in Svizzera per verificare la loro idoneità ai sussidi federali e rilasciare una certificazione di qualità. Le reti paramassi sono sistemi meccanicamente complessi a causa dell’estrema dinamicità dei processi coinvolti e possono comportarsi in modo imprevedibile. Per comprendere meglio questi sistemi, le simulazioni numeriche possono essere uno strumento prezioso. Tuttavia, le soluzioni commerciali esistenti spesso presentano limitazioni, come costi elevati o mancanza di flessibilità nella modellazione.

Pertanto, come parte di un progetto studentesco durante i miei studi di master, mi sono imbarcato in un viaggio (forse imprudente) per sviluppare uno strumento di simulazione numerica, che ho chiamato RockBarrierAnalytica (RBA). Data l’estrema dinamicità e il comportamento non lineare delle reti paramassi, un solver esplicito sembrava essere l’approccio più adatto. Poiché volevo discretizzare tutto con punti, ho realizzato che quello che stavo facendo era una sorta di metodo meshfree, che assomigliava molto al Discrete Element Method. Ho essenzialmente implementato sistemi molla/smorzatore per tutto.

Essendo caduto profondamente nella rabbithole della simulazione numerica, mi sono trovato a esplorare vari aspetti dei metodi numerici, inclusi vari schemi di integrazione (ah si può integrare su più step temporali), criteri di stabilità e meccanica dei contatti. La stabilità numerica è stata un’altra sfida incessante.

Il framework che ho utilizzato, Taichi Lang, è un piacere da usare ed è davvero facile da imparare per i programmatori Python poiché è incorporato nel linguaggio. Supporta nativamente l’accelerazione GPU attraverso il suo compiler separato, e come sviluppatore Python, è interessante dover fare chiamate esplicite al kernel e pensare alla programmazione più a basso livello.

Il progetto alla fine è rimasto bloccato quando ho realizzato, dopo numerosi tentativi, che modellare la fisica dello scorrimento di un elemento lungo un cavo in movimento è estremamente difficile (un esempio, o un altro). Questo è chiaramente visibile nella Figura 1. Non sono riuscito a risolvere questo problema entro i tempi del progetto, ma ho imparato molto sulle simulazioni numeriche e ho sviluppato una comprensione più profonda delle complessità delle barriere paramassi. Il codice è disponibile su GitHub.

Setup barriera paramassi
Figura 2: Setup barriera paramassi in RBA.