Improved Commands and FISH

The revised command and FISH syntax is the first overhaul of the command system since 3DEC was first released in 1988. The new syntax addresses the many inconsistencies and cryptic syntax that crept in over 30 years. In Version 7, all commands and FISH functions follow the pattern: NOUN-VERB-OPTIONS-MODIFIERS-RANGE (for example, BLOCK APPLY VELOCITY RANGE POSITION-X 0 10). As in version 5.2, it is not necessary to type out the entire word. This new system has the following advantages.

  • It is clear what is being operated on with every command (blocks, faces, gridpoints, etc.).
  • The commands and FISH are as similar as possible (and in many cases the same) as FLAC3D 7 and UDEC 7 to make it easier for users to switch between programs.
  • The new system allows for coupling models between FLAC3D, PFC, and 3DEC.
  • The new system allows for parallel software development. For example, the use of FLAC3D structural elements is already built in to 3DEC 7.
  • Normalization of the syntax allows integrating command and FISH reference documentation with the code (described below).

Documentation Support and Help

To make it easier for experienced users to start using version 7, the following support is provided.


Program documentation provides lists that map 5.2 commands to 7.0 commands (see 3DEC 5.2 to 7.0 Command Mapping). A few examples are shown below.

CONFIG dynamic --> model configuration dynamic
CYCLE --> model cycle
FIX xvel --> block fix velocity-x
GENERATE --> block zone generate
INITIALIZE xdisplacement --> block gridpoint initialize displacement-x
ZONE density --> block zone property density

Similar maps relating 5.2 FISH to 7.0 FISH (see 3DEC 5.2 to 7.0 FISH Mapping) are provided. There will not necessarily be a direct mapping of old to new function arguments nor of return types. 3DEC 7.0 takes advantage, on occasion, of the new types available in FISH (tensors, matrices, etc.) to streamline FISH intrinsics. A few examples are shown below.

b_area --> block.area
z_state -->
urand --> math.random.uniform
code_majorversion --> version.code.major
udv_create --> data.vector.create
face_nx --> block.face.normal.x

Enhanced Documentation and Help

  • Contextual help: Press F1 when your cursor is over a command or FISH function to access the reference documentation for the item.
  • Intelligent command completion (inline help). Use Ctrl+Space while typing a command to see and insert the next keyword from a list of those possible at the current cursor position.

Automatic Conversion Tool

An automatic file conversion tool called "3DEC Command Conversion..." is available on the Edit menu.

Before doing the conversion, a back-up copy of the file will be made in a folder called “pre-conversion” in the same directory as the data file. The data file will be converted on-disk and then reloaded into the text editor.

There are cases where the conversion tool cannot translate a version 5.2 command to version 7.0. In these cases, the problematic portion of the command in question will be surrounded by “%%” symbols in the data file and highlighted in orange. When available, explanatory information will appear, commented and also highlighted in orange. These commands require manual editing to complete conversion. TIP: place the cursor in the line with problem command and press F1 to directly access help for that command.

Two examples are demonstrated in the following video.

Latest News
  • ARMA 2022 Student Design Competition Congratulations to the winners of the American Rock Mechanics Association's (ARMA) 2022 Student Design Competition....
    Read More
  • International Slope Stability 2022 Itasca is proud to be a Diamond sponsor of Slope Stability 2022 (October 17-21 |...
    Read More
  • Software Benchmark Tests To help with your hardware configuration decisions, Itasca has created an online benchmark speed test...
    Read More