What's New in UDEC 6.0

Multithreading

The evolution of hardware in recent years has focused not on building faster processors, but on adding more computation cores. In order to take advantage of multiple cores, the main calculation loops in UDEC have been modified to run on multiple threads. The multithreading has been implemented in the following calculations:

  • Zone stress/strain calculations;
  • Contact force/displacement calculations; and
  • Fluid-flow calculations.

The multithreading in the stress/strain calculation is organized based on the blocks. All of the zones in each of the blocks are assigned a thread. This optimizes the calculation for models that have many blocks and many zones. A model with only a single block containing many zones will not execute in multiple threads. The multithreading for the contacts is organized based on the individual contacts. The calculations for each contact will occur on a single thread. The fluid-flow logic contains loops for domains and contacts. This is organized based on each domain, and on each contact. So the calculations for each domain and each contact will occur in a separate thread. The efficiency that can be obtained through multithreading is not 100%. Many calculations are outside the multi-thread loops, and there is overhead in setting up the threads. Also, there are more cores in the CPUs than memory data paths. This can result in the CPUs becoming memory-bound as they wait to access memory. Currently, the speed increase in a UDEC 6.0 (compared to UDEC 5.0) model with many blocks and zones can be expected to be two to three times faster on a 4-core CPU with hyper-threading (8 computational units).

The speed increase will vary depending on what the model is currently spending the most time doing and can vary significantly as can be seen in the following chart.

The calculations in the multithreading have been designed to be deterministic. This means that you will get the same result each time the same data file is executed. This feature can be turned off with SET deterministic off. Turning deterministic off will result in a speed increase of approximately 10%.

64-bit Version

A 64-bit compatible version of UDEC 6.0 has been developed. This version eliminates the memory limitations imposed by a 32-bit Windows operating system. The models can now be much larger, and are limited only by the physical memory in the computer. The 64-bit version should execute at about the same speed as the 32-bit version.

Algorithm Improvements

There are other speed increases in UDEC 6.0 that have been achieved through improvements in the way that some calculations occur.

  • A new join logic has been implemented; it is used in places where the gridpoints between joined blocks match. The old algorithm used a special stiff contact with infinite strength. This is still used if the gridpoints do not match between blocks. However, the new algorithm removes the use of any contact logic; the gridpoints are slaved together. This means that there is no force displacement calculation occurring between the points, and there is no relative movement. This calculation is much faster than the old, stiff contact-based method. Models with the slaved gridpoint may have a higher mechanical timestep, and may come into equilibrium in fewer steps than with the old method.
  • An optional method for calculating the transient compressible fluid-flow timestep has been added. The default method is to base the timestep on the lowest domain area and the highest actual contact aperture. For most models, this is overly conservative. The new option invoked by SET fluid dt type = 3 changes the calculation to consider the domain area and the aperture for each contact. This usually results in a much higher fluid timestep.
  • The far-field fluid boundary calculation has been modified to be much faster, resulting in a 10× speed increase in the UDEC example problem that uses this feature.

Improvements to the Graphical User Interface

There have been a number of improvements to the graphical user interface.

  • Data-based history labels. Previously, the labels used in history plots were tied to the plot item. If you loaded a save file that had a history of the same number but was of a different quantity, the label did not change. This has been changed to a system where the history label is tied to the data. If the data changes, so does the label.
  • The UDEC 6.0 GUI now allows the placement of supports, which are strut-like structural elements.
  • The option to use the inside and outside keywords when using TABLE ranges has been added.
  • The ability to use command-line data files inside the GUI has been improved.
  • The ability to delete structural elements inside the GUI has been added. This makes it easier to simulated staged excavation and support of tunnels.

New Commands

New commands have been added to enable the following.

  • Color-scaled joint parameters plotting; line thickness-scaled plotting is still available.
  • By default fluid flow is calculated for all joints; but flow can now be restricted to joints for which contacts have failed.
  • In addition to adding a thermal source to an entire block, thermal sources can now be created at any range of gridpoints.
  • In addition to Voronoi polygons, Delaunay triangles can now be used to create triangular blocks.

Easier Software Installation

When UDEC is started for the first time, a dialog requesting permission to copy the data files and other user resources to your documents folder will appear. This is done to avoid operating system permission conflicts when attempting to open files in the “C:\Program Files” folder. It is recommended that you allow UDEC to copy example files to your “MyDocuments\itasca\udec600” folder. This can also be done at any time by clicking on Help in the main menu and selecting Copy Application Data.

Constitutive Model Templates

Microsoft Visual Studio 2010 constitutive model templates are now available to assist in creating new constitutive models for users with the CPP UDM (User-Defined Model) option.