FISH is a powerful scripting language that can be used to manipulate model components, parameterize models, control model runs, create/calculate new model outputs, monitor results, and post-process model runs. Many new capabilities and tools have been added to UDEC to facilitate working with FISH.
Updated FISH Scripting Syntax (GUI/GIIC)
As with the commands, FISH scripting has also been improved to make function syntax clearer, more consistent, intuitive, and, therefore, easier to use. The syntax uses a structured reference for objects to assign properties or invoke functions and is similar to modern languages such as C++ and Visual Basic. For example, below you can see an example of the same FISH function in UDEC 6 (left) and in UDEC 7 (right). The UDEC 7 version was created using the built-in conversion tool under the UDEC 7 Edit menu.
FISH Global Symbols Control Set (GUI)
The FISH Global Symbols control set displays and updates (including while cycling) the value/state of all global FISH variables and functions. Display is read-only. The tabular display (shown below) lists the symbol name, its current value, its type, and whether it is a function and its number of arguments (F(#)). A right-click on an item in the Name or Value column allows copying the cell data to the Windows clipboard.
Enhanced FISH (GUI/GIIC)
New Data Types
In addition to the previous data types (integer, floating-point, string, and pointers), FISH variables now include several new data types:
- Boolean: Either a value of true or false.
- Vector: 2D or 3D vector of floating-point types.
- Array: A collection of FISH variables with specified dimensionality.
- Matrix: Matrix of numeric values with specified dimensionality.
- Tensor: A symmetric tensor (e.g., stress and strain).
- Map: An associative array with string or number key and any FISH variable as value.
- Structure: A structure may contain multiple FISH variables.
New and expanded data type functions have also been added (e.g., built-in functions to inverse or multiply matrices).
FISH Zone Metrics Functions
Get one of the metrics of the zone shape (0 - 1, where 1 is ideal) for quality check (ratio of the inscribed radius to the circumscribed radius, minimum ratio of the distance of vertex to the opposing edge divided by the length of the opposing edge length, and ratio of the shortest edge length divided by the longest edge length).
FISH Email Functions
Compose and send email messages using data files and FISH functions (e.g., send notification emails upon completion of notable tasks, include file attachments such as exported bitmaps to see your results).
Email account settings provided with this command may also be specified in the “Email” section of the “Tools/Options” dialog.
Other Enhancements ...
- FISH variables can now be specified as either local (to a particular FISH function) or global (UDEC 6 convention).
- More efficient looping using the loop foreach function to allow iterating through all objects inside a given container (e.g., zones, blocks, DFNs, user-defined list of scalar data, etc.).
- Inline FISH permits snippets of FISH scripting to be inserted within commands in lieu of FISH variables.
- FISH functions to create boundary conditions.
- FISH functions for boundary reaction forces.
- Working with ground support (structural elements) in UDEC is now easier with defined headers to travel the data structure rather than memory offsets.