The FISHscripting language is now multi-threaded, resulting in much faster execution of functions. To take full advantage of multi-threaded FISH, a new LIST data type, SPLITTING syntax, and OPERATORS have been added.
FISH Lists
Lists are one-dimensional arrays of general FISH values. They differ from matrices in that each index can hold any valid FISH type (including another list). They differ from arrays in that they are passed by value, and they can only be of one dimension. You can iterate through all the elements of a list using the loop foreach statement. The access operator -> can be applied to lists permitting the retrieval/assignment of an element, returning another list
aa = list.sequence(1,'a',3.1,4,math.pi)
Makes a 5 element list.
bb = a(3)
bb = '3.1'
cc(2) = 'c'
cc = list.seq(1,'c',3.1,4,'b',math.pi)
dd = list.seq( (1,2,3) , (4,5,6) )
Make a 2 element list of vectors.
ee = dd -> y
The list ee is now a list of only the y-components of the vectors in dd or the list {2,5}.
ee -> z / 2
The z-components of the vectors in ee have been cut in half or the list (1, 2.5}.
Splitting
FISH splitting allows a function,
operator, or library call to be executed repeatedly on each element of
an aggregate type (a list, an array, a container of objects, etc). Splitting is executed on all available threads. Splitting can be used as an alternative to loop statements to perform actions on many object in a very clear and concise manner.
In order to make a split call, give the split operator ‘::’ prefix to
one or more arguments of the function, operator, or library call. For example, to reduce the elastic shear modulus of an elastic model:
zone create brick point 0 (0,0,0) point 1 (10,0,0) point 2 (0,10,0) point 3 (0,0,10) size (10,10,10) zone cmodel assign elastic zone property bulk 2e9 shear 6e8 [zone.prop(::zone.list,'shear') *= 0.5 ;no loops!
Itasca has announced the release of FLAC2D v9 Itasca has announced the release of FLAC2D v9, revolutionizing the way we analyze and predict... Read More
6th Itasca Symposium on Applied Numerical Modeling The next Itasca Symposium will take place June 3 - 6, 2024, in Toronto, Canada.... Read More
Itasca International Inc. announces the Selection of its New CEO Itasca International Inc. announces the Selection of its New CEO ... Read More
Upcoming Events
23Sep
Getting Started with FLAC2D/FLAC3D
This training is an introduction to continuous modeling with FLAC2D and FLAC3D. At the end of the course, participants will master the ...
Read More
14Oct
Getting Started with 3DEC
Live Online Introductory Training Course.
October 14-15, 2025...
Read More