Ivo Gasparini

Experimente mit numerischen Simulationen: mein Versuch eines expliziten Solvers für die Steinschlagschutz-Analyse

· Ivo
Steinschlagschutznetz in RBA während des Aufpralls.
Abbildung 1: Steinschlagschutznetz in RBA während des Aufpralls.

📄 RockBarrierAnalytica - Report


Im Rahmen meiner Arbeit an der BFH prüfen wir in der Schweiz verkaufte Steinschlagschutznetzen, um ihre Berechtigung für Bundessubventionen zu überprüfen und eine Qualitätszertifizierung zu erteilen. Steinschlagschutznetzen sind mechanisch komplexe Systeme aufgrund der extremen Dynamik der beteiligten Prozesse und können sich unvorhersagbar verhalten. Um das Verhalten dieser Systeme besser zu verstehen, können numerische Simulationen ein hilfreiches Werkzeug sein. Bestehende kommerzielle Lösungen kommen jedoch oft mit Einschränkungen wie hohen Kosten oder mangelnder Flexibilität.

Daher begab ich mich als Teil eines Semesterarbeit während meines Masterstudiums auf eine (vielleicht unkluge) Reise, um ein numerisches Simulator zu entwickeln, das ich RockBarrierAnalytica (RBA) nannte. Angesichts der extremen Dynamik und des nichtlinearen Verhaltens von Steinschlagschutznetzen schien ein expliziter Solver der geeignetste Ansatz zu sein. Da ich alles mit Punkten diskretisieren wollte, erkannte ich, dass das, was ich tat, eine Art Meshfreie Methode war, die sehr der Discrete Element Method ähnelte. Ich implementierte im Wesentlichen Feder-/Dämpfer-Systeme für alles.

Nachdem ich tief in das Rabbithole der numerischen Simulation gefallen war, fand ich mich dabei wieder, verschiedene Aspekte numerischer Methoden zu erkunden, einschliesslich Zeitintegrationsschemen (wie meinst du, man kann über mehrere Zeitschritte integrieren?), Stabilitätskriterien und Kontaktmechanik. Numerische Stabilität war eine weitere bedeutende Herausforderung, mit der ich mich auseinandersetzen musste.

Das Framework, das ich verwendete (Taichi Lang), ist eine Freude in der Arbeit und wirklich einfach für Python-Programmierer zu erlernen, da es in die Sprache eingebettet ist. Es unterstützt nativ GPU-Beschleunigung durch seinen separaten Compiler, und als Python-Entwickler ist es interessant, explizite Kernel-Aufrufe machen zu müssen und low-level zu denken.

Das Projekt kam letztendlich zu kurz, als ich nach zahlreichen Versuchen erkannte, dass die Modellierung der Physik der gleitenden Interaktion eines Elements entlang eines sich bewegenden Kabels extrem herausfordernd ist (ein Beispiel, oder ein anderes). Dies ist deutlich in Abbildung 1 sichtbar. Ich konnte dieses Problem nicht innerhalb des Projektzeitrahmens lösen, aber ich lernte viel über numerische Simulationen und entwickelte ein tieferes Verständnis für die Komplexitäten, die bei der Analyse von Steinschlagschutzbarrieren beteiligt sind. Der Code ist auf GitHub verfügbar.

Steinschlagschutznetz Setup
Abbildung 2: Steinschlagschutznetz Setup in RBA.