Ivo Gasparini

Tinkering with numerical simulations: my attempt at an explicit solver for rockfall barrier analysis

· Ivo
Rockfall barrier in RBA during impact.
Figure 1: Rockfall barrier in RBA during impact.

📄 RockBarrierAnalytica - Report


As part of my work at BFH, we inspect rockfall barriers sold in Switzerland to check their eligibility for federal subsidies and issue quality certifications. Rockfall barriers are mechanically complex systems due to the extreme dynamics of the processes involved and can behave unpredictably. To better understand the behavior of these systems, numerical simulations can be a powerful tool. However, existing commercial software solutions often come with limitations, such as high costs or lack of modeling flexibility.

Therefore, as part of a student project during my master’s studies, I embarked on a (perhaps imprudent) journey to develop a numerical simulation tool, which I named RockBarrierAnalytica (RBA). Given the extreme dynamics and non-linear behavior of rockfall barriers, an explicit solver seemed to be the most suitable approach. Since I wanted to discretize everything with points, I realized what I was doing was a sort of meshfree method, which seemed a lot like the Discrete Element Method. I essentially implemented spring/damper dashpot systems for everything.

Having fallen deep into the numerical simulation rabbit hole, I found myself exploring various aspects of numerical methods, including time integration schemes (what do you mean you can integrate over multiple time steps?), stability criteria, and contact mechanics. Numerical stability was another significant challenge I had to deal with.

The framework I used, Taichi Lang, is a pleasure to work with and is really easy to pick up for Python programmers since it’s embedded within the language. It natively supports GPU acceleration through its separate compiler, and as a Python developer, it’s interesting to have to make explicit kernel calls and think about programming in a more low-level way.

The project ultimately fell short as I realized, after numerous trials, that modeling the physics of the sliding interaction of a node along a moving cable is extremely challenging (an example, or another). This is clearly visible in Figure 1. I wasn’t able to address this issue within the project timeframe, but I learned a great deal about numerical simulations and developed a deeper understanding of the complexities involved in rockfall barrier analysis. The code is available on GitHub.

Rockfall barrier setup
Figure 2: Rockfall barrier setup in RBA.