FISH Scripting in PFC

FISH is an embedded scripting language that enables the user to interact with and manipulate PFC models, defining new variables and functions as needed. These functions may be used to extend PFC's usefulness or add user-defined features. For example, new variables may be plotted or printed, special particle generators may be implemented, virtual servo controls may be applied to perform a numerical lab test, unusual distributions of properties may be specified and parametric studies may be automated.

FISH was developed in response to users who wanted to do things with Itasca software that were either difficult or impossible with existing program structures. Rather than incorporate many new and specialized features into PFC, FISH was provided so that users could write functions to perform custom analyzes. FISH functions may range from a few lines of code to a multitude of complex data files containing hundreds of lines of code.

FISH programs are simply embedded in a normal PFC data file: lines following the word "define" are processed as a FISH function; the function terminates when the word "end" is encountered. Functions may invoke other functions, which may invoke others, and so on. The order in which functions are defined does not matter, so long as they are all defined before they are used (e.g., invoked by a PFC command). Since the compiled form of a FISH function is stored in PFC's memory space, the "save" command saves the function and the current values of associated variables.

In the following simple example, a FISH function uses the loop structure to execute the loop body while the test condition is true; otherwise, control passes to the next line after the endloop statement.

define sum_even(n)
local s = 0
local i = 0
loop while i <= n
s += i
i +=2
endloop
sum_even = s
end
[s2 = sum_even(10)]
list @s2

With n=10, the end result of the sum is 30.

A much more advanced example of FISH scripting, particles float down a channel with a given velocity and fall into a mixing drum with rotating paddles. FISH scripting is used to apply additional forces (vertical buoyancy), based on an imaginary water level, to each particle to better simulate the system.


Neuesten Nachrichten
  • ITASCA Information Day We are happy to announce that this year we can finally offer an Itasca Information...
    Weiterlesen
  • Itasca Software now Available for Linux Version 7 or greater of Itasca software (FLAC3D, 3DEC, PFC3D, and PFC2D) are now operable...
    Weiterlesen
  • Itasca Celebrates 40 Years Itasca is celebrating 40 years of solving geomechanical and hydrogeological challenges through engineering and computer...
    Weiterlesen

Kommende Veranstaltungen
13 Mär
3DEC In-Person Introductory course
Live in-person introductory training course in Minneapolis, Minnesota. This course provides an overview of the capabilities and feature... Weiterlesen
16 Mär
Online Live Training : Python in Itasca Software
This course provides an overview of the Python programming language in Itasca software. The course covers major applications of Python ... Weiterlesen
27 Mär
FLAC3D In-Person Introductory Course
Live in-person introductory training course. This 3-day course provides general feature training addressing basic concepts and recommen... Weiterlesen