Modernizing Titan2D, a Parallel AMR Geophysical Flow Code to Support Multiple Rheologies and Extendability
Nikolay A. Simakov, Renette L. Jones-Ivey, Ali Akhavan-Safaei, Hossein, Aghakhani, Matthew D. Jones, Abani K. Patra

TL;DR
This paper details the modernization of the Titan2D geophysical flow simulation code, enhancing its flexibility, performance, and extendability through code refactoring, improved data structures, and parallelization techniques.
Contribution
The work introduces a modular Python interface, merges multiple material models, and significantly improves performance and memory efficiency of Titan2D.
Findings
Achieved 8-9 times performance improvement in serial execution.
Enhanced code extendability with a new Python interface and merged material models.
Optimized data storage and parallelization for better computational efficiency.
Abstract
In this work, we report on strategies and results of our initial approach for modernization of Titan2D code. Titan2D is a geophysical mass flow simulation code designed for modeling of volcanic flows, debris avalanches and landslides over a realistic terrain model. It solves an underlying hyperbolic system of partial differential equations using parallel adaptive mesh Godunov scheme. The following work was done during code refactoring and modernization. To facilitate user input two level python interface was developed. Such design permits large changes in C++ and Python low-level while maintaining stable high-level interface exposed to the end user. Multiple diverged forks implementing different material models were merged back together. Data storage layout was changed from a linked list of structures to a structure of arrays representation for better memory access and in preparation…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
