Powerful Scripting

PYTHON

The Python programming language is embedded inside FLAC3D. Python is a general purpose programming language with good support for scientific and numerical programming. Python has been extended to allow models to be manipulated from Python programs. The Python modules NumPy, SciPy, and Pyside are included with FLAC3D for scientific computing, science and engineering tools (optimization interpolation, integration, etc.), and customizing the user interface, respectively.

With FLAC3D 9, Python has been updated to version 3.10.5 to let you work with the latest available modules.

LEARN MORE

FISH

FISH is an embedded programming language that enables the user to interact with and manipulate models, defining new variables and functions as needed. These functions may be used to extend, add to, or control the program.

FLAC3D 9 includes the latest version of FISH and updated documentation for working with multithreaded FISH splitting and operators.

MULTITHREADED FISH

If you are modeling using FISH, be sure to use splitting rather than loops and use operators in order to best utilize your multithreaded computer hardware and minimize your modeling time.

For example, taking the FLAC3D Hoek-Brown Slope example in the documentation, rather than using a constant value for the Hoek-Brown constitutive model property constant-sci, let's assign a value to each zone using a pseudo-random uniform distribution within 30 ±10 MPa, to provide a degree of rock strength variability across the model as shown below.

Slope model showing the value of the Hoek-Brown intact rock strength property after a uniform distribution has been assigned using loops, splitting, or operators.

A timing test was run five times for each of the FISH functions above by calling the time.clock intrinsic function at the start and end of the function and calculating the difference. The following figure shows the average time required for each approach discussed above (in hundredths of a second) for a model with 228,000 zones. The test was performed on an i9 CPU (3.7 GHz) with 64 GB RAM and 10 cores (20 logical processors).

Time (in hundredths of a second) required for each approach discussed above.

While any of the methods reviewed above are effectively instantaneous, the performance will become more important for very large models with millions or tens of millions of objects (zones, blocks, etc.) and/or if such functions are being called during cycling (i.e., each step). As such, a method (operators) that is over 260,000 times faster than another (loop while) becomes highly desirable.

MORE INFORMATION


Latest News
  • Now Available from ITASCA: Innovative Machine Learning Tool for FLAC3D/FLAC2D V9.2 Experience the Future of Geotechnical Modeling with ITASCA Software V9.2: Introducing Machine Learning Models...
    Read More
  • Experience the Future of Geotechnical Modeling with ITASCA Software V9.2 Experience the Future of Geotechnical Modeling with ITASCA Software V9.2: Introducing Machine Learning Models and...
    Read More
  • Thank You to our Summer Interns ITASCA Minneapolis is lucky to have welcomed nine amazing and dedicated summer interns in our...
    Read More

Upcoming Events
29 Oct
Getting Started with 3DEC
Objectives of the training: Understand the 3DEC numerical approach and the types of problems it can solveKnow how to manipulate the 3DE... Read More
27 Oct
Geothermal Rising
The Geothermal Rising Conference is the geothermal industry’s flagship annual conference, reflecting the global nature of the geotherma... Read More
5 Nov
Python in Itasca Software
This course provides an overview of the Python programming language in Itasca software.The course covers major applications of Python t... Read More