Python is a general-purpose programming language with good support for scientific and numerical programming. The Python programming language is embedded inside FLAC3D and extended to allow FLAC3D models to be manipulated from Python programs.
Itasca's own scripting language, FISH, continues to be supported and developed.
Python in FLAC3D's has the advantage of being faster, easy to use, and has additional functionality. Control FLAC3D entirely using Python data files and/or using the enhanced interactive IPython console built right into FLAC3D. IPython provides a powerful set of tools, such as:
- GUI-based script shell;
- interactive data visualization;
- comprehensive object introspection;
- Python script parallel processing; and
- robust error handling.
Create custom publication quality figures using matplotlib, a Python 2D plotting library that produces figures in a variety of hardcopy formats and interactive environments across platforms. Plot types include lines, bars, pie, polar, statistical, contours, fields, and a large number of specialty charts.
Use NumPy for scientific computing with Python for:
- a powerful N-dimensional array object;
- sophisticated (broadcasting) functions;
- tools for integrating C/C++ and Fortran code;
useful linear algebra, Fourier transform, and random number capabilities; and database integration.
Science & Engineering
Advanced, customizable calculations are available via SciPy which
builds on the NumPy array object. SciPy contains modules for
optimization, linear algebra, integration, interpolation, special
functions, FFT, signal and image processing, ODE solvers, and other
tasks common in science and engineering.
User Interface Customization
Pyside provides Python bindings for the Qt library that is used by the FLAC3D user interface (UI). With PySide, users can modify, manipulate or extend the FLAC3D UI, create and control custom UI panes, including labels, text boxes, pane docking, and command buttons. Streamline your modeling of complex problems by creating custom applications with dedicated user dialogs to input parameters and post-process simulation results.
FISH vs. Python Scripting
The FISH programming environment is still available. Python has the advantage of being faster, easy to use, and has additional functionality. However, an important difference between the Python and FISH programming environments is that the Python state is not connected to the model state or saved in the save files.
- When a
model restorecommand is given the FISH programming state is cleared or restored. The Python state is not affected by the
model restorecommands and the Python state is not saved in save files.
- Giving the command
python-reset-state falsechanges this behavior so the Python state is not cleared by the
The following webinar outlines working with Python in FLAC3D.