We are very proud to unveil pyIrazu, a Python module that was developed to interface with Irazu! The goal of pyIrazu is to provide Irazu users a means of manipulating and running input files without relying on the user interface. With pyIrazu, operations such as changing, adding, and/or removing material property sets can be done with just a few lines of code.
The true power of pyIrazu is the ability to automate laborious tasks such as performing factor of safety (FoS) assessments, calibrating material properties, or sensitivity analyses. Using the Visualization Toolkit (VTK) Python module, model results can be automatically processed and form a feedback loop for a search algorithm. With this tool, users are no longer required to manually go through the modelling workflow, freeing up their time and effort for more important tasks.
pyIrazu in action
In slope design, one of the important numerical assessments is slope stability, where typically the strength reduction factor (SRF) approach is utilized to assess the FoS. In this approach, the strength parameters are reduced by a given factor. Upon applying the SRF, we may observe either slope stability or failure. The SRF that alters the behaviour of the slope from stable to unstable (to a specified tolerance) can be assumed to be the FoS. Mathematically, the slope stability can be described as a function of the SRF such that:
f(SRF) = -1 for a stable slope or 1 for an unstable slope,
where f is a value that represents the stability of the slope, and the FoS = SRF when f(SRF) ~ 0. With pyIrazu, we can implement customized algorithms that can use this mathematical description of slope stability to automate the FoS search process. An approach implemented using pyIrazu uses a two-stage process where runs are created from a base project to:
- identify a narrow search bracket using a run with a linearly-time-varying SRF, then
- determine the FoS using multiple runs where the SRF is applied instantaneously.
The time-varying SRF is applied to both cohesion (c) and friction (φ) parameters by calculating c’ = c / SRF and tan(φ’) = tan(φ) / SRF. The stability is assessed by testing whether the total kinetic energy exceeds a threshold energy value appropriate for the scale of the slope.
The first stage generates and executes a run with pyIrazu using a wide search bracket initially set between SRF = 0.2 to 5. This linearly time-varies the SRF from 0.2 to 5 to gradually weaken the slope and identify a first approximation of the FoS. A narrow search bracket can be estimated by using a bracket between 0.4 to 1.5 times the value of the ‘presumed FoS’, or by using previous experience. The second stage uses a function that accepts an SRF, generates the run with an instantaneous drop to the SRF strengths using pyIrazu, executes the run, then determines a value representing the slope stability according to the definition of f(SRF). The “bisect” optimization algorithm from the third-party Python package SciPy uses the f(SRF) function to automatically and sequentially find the root of f(SRF) (i.e., the FoS of the slope).
The outlined pyIrazu script was directly applied to the slope model described in Cheng et al. (2007). In the initial run (i.e., with the wide search bracket), the strength of the rock was gradually reduced over time and a first approximation of the FoS was 2.71. Then, the narrow SRF search bracket was defined and the search algorithm continually iterates, in this case 11 times in total, until it converges to a FoS of 1.38 matching the one reported in Cheng et al. (2007).
Closing
This is only one example of the power of pyIrazu. How would you use it and for which applications? Get in touch with us to request pyIrazu!
Reference
Y.M. Cheng, T. Lansivaara, and W.B. Wei (2007). Two-dimensional slope stability analysis by limit equilibrium and strength reduction methods. Computers and Geotechnics, 34(3), 137-150. https://doi.org/10.1016/j.compgeo.2006.10.011