Background
Solidity is an open-source, general-purpose finite-element and discrete-element solid mechanics code developed in the Department of Earth Science and Engineering. It solves highly non-linear problems in both continuum and discontinuous domains. Its capabilities include fracture and fragmentation without pre-seeding, finite-strain and large-deformation constitutive models including elastoplasticity, thermal fields, parallelisation, and fast contact detection and interaction algorithms.
From an applied engineering perspective, it has been used for a range of applications, including coastal defence, rock avalanche modelling or rock drilling modelling, but also in other, radically different fields, like modelling artery wall under blood pressure or the design og COVID-19 masks.
Our Contribution
We developed a graphical user interface for Solidity using PySide, enabling users to set up simulations, manage geometry, materials and conditions, and run the solver.
The GUI was extended to support parameter sweeps and batch runs, including generating input files for each sweep value and running independent jobs in parallel. Users can also save and reuse materials and conditions across sessions. It has some built in CAD capabilities, but also allows for loading geometry files created externally, which allow for way more complex structures to be simulated.
We improved reliability and distribution by addressing cross-platform Docker image loading, creating build workflows for the GUI and open-source solver, and adding configuration for open-source and proprietary solver backends.
Outcomes
The GUI gives researchers a more accessible way to prepare and run Solidity simulations. Parameter sweeps, batch processing and reusable materials and conditions reduce repetitive setup work and support larger simulation workflows. The distribution and configuration work provides a foundation for making the GUI and open-source solver available across platforms.