FLAC3D Modeling • Introduction

FLAC3D Features


FLAC3D offers a wide range of capabilities to solve complex problems in mechanics, and especially in geomechanics. Like FLAC, FLAC3D embodies special numerical representations for the mechanical response of geologic materials. The program has fifteen basic built-in material models: the “null” model; three elasticity models (isotropic, transversely isotropic, and orthotropic elasticity); and eleven plasticity models (Drucker-Prager, Mohr-Coulomb, strain-hardening/softening, ubiquitous-joint, bilinear strain-hardening/softening ubiquitous-joint, double-yield, modified Cam-clay, cap-yield, elastic plastic (hyperbolic type) for soils, Hoek-Brown, and modified Hoek-Brown). These models are described in detail in the section Constitutive Models. Each zone in a FLAC3D grid may have a different material model or property, and a continuous gradient or statistical distribution of any property may be specified.

Additionally, an interface (or slip-plane) model is available to represent distinct interfaces between two or more portions of the grid. The interfaces are planes upon which slip and/or separation are allowed, thereby simulating the presence of faults, joints or frictional boundaries. The interface model is described in the section Interfaces.

Structures that interact with the surrounding rock or soil, such as tunnel liners, piles, sheet piles, cables, rock bolts or geotextiles, may be modeled with the structural element logic in FLAC3D. It is possible to either examine the stabilizing effects of supported excavations, or to study the effects of soil or rock instability on surface structures. The different types of structural elements are described in Structural Elements.

A factor of safety can be calculated automatically for any FLAC3D model using a compatible material model. The calculation is based on a “strength reduction technique” that performs a series of simulations while changing the strength properties to determine the condition at which an unstable state exists. A factor of safety that corresponds to the point of instability is found, and the critical failure surface is located in the model. The factor-of-safety algorithm is described in the Factor of Safety section.

FLAC3D also contains a powerful built-in programming language, FISH, that enables the user to define new variables and functions. FISH offers a unique capability to users who wish to tailor analyses to suit their specific needs. For example, FISH permits the following:

  • user-prescribed property variations in the grid (e.g., nonlinear increase in modulus with depth);
  • plotting and printing of user-defined variables (i.e., custom-designed plots);
  • implementation of special grid generators;
  • servo control of numerical tests;
  • specification of unusual boundary conditions;
  • variations in time and space; and
  • automation of parameter studies.

An introduction to FISH is given in Tutorial: Working with FISH. See the section FISH Scripting Reference for a detailed reference to the FISH language.

The program contains extensive graphics facilities for generating plots of virtually any problem variable. Three-dimensional graphics rendering is provided in high-resolution video modes. Plotting features include hidden surface plots, surface contour plots, and vector plots. Plotted variables can be viewed in front of, behind, or on an arbitrary cross-section plane through the model. Interactive tools for model visualization are described in The Plot Pane.

Optional Features

Four optional features (for dynamic analysis, thermal analysis, modeling creep-material behavior, and C++ plugins) are available as separate modules that can be included in FLAC3D at an additional cost per module.

Dynamic analysis can be performed with FLAC by using the optional dynamic-calculation module. User-specified acceleration, velocity, or stress waves can be input directly to the model, as either an exterior boundary condition or an interior excitation to the model. FLAC3D contains absorbing and free-field boundary conditions to simulate the effect of an infinite elastic medium surrounding the model. The dynamic calculation can be coupled to the groundwater flow model; the level of coupling, including dynamic pore-pressure generation (liquefaction), is discussed in Modeling Physical Processes and Interactions. The dynamic analysis capability is described in Dynamic Analysis.

There is a thermal analysis option available as a special module in FLAC3D. This model simulates the transient flux of heat in materials and the subsequent development of thermally induced stresses. The thermal model can be run independently or coupled to the mechanical-stress calculation or pore-pressure calculation, either static or dynamic. (The coupling interactions are described in Modeling Physical Processes and Interactions.) The thermal analysis capability is described in Thermal Analysis.

There are optional material models available that simulate time-dependent (creep) material behavior (all creep models are described in Creep Constitutive Models in 3DEC and FLAC3D).

With the C++ plugin feature, user-defined constitutive models and FISH intrinsics can be written in C++ and compiled as DLL (dynamic link library) files that can be loaded whenever needed. Microsoft Visual C++ Version 10.0 (Microsoft Visual Studio 2010) is used to compile the DLL files. The procedure to write new constitutive models is described in Writing New Constitutive Models. The procedure to write new |fish| intrinsics is described in :ref:linktoc++plugins. previous line needs a link to Section 4 from old FISH vol, which is currently awol

Modeling Physical Processes and Interactions

The default calculation mode in FLAC3D is for static mechanical analysis. Alternatively, a groundwater flow analysis or a heat-transfer analysis can be performed independent of the mechanical calculation. Both the groundwater flow and thermal models may be coupled to the mechanical stress model and to each other. Because the full equations of motion are used in FLAC, the coupling mechanisms operate in dynamic analyses as well as static analyses.

The coupling mechanisms are divided into three types of interaction: mechanical and groundwater flow; mechanical and thermal; and thermal and groundwater flow. The level of interaction modeled in FLAC3D for each type is described below.

Mechanical-Groundwater Flow Coupling — Several types of fluid/solid interaction can be specified in FLAC3D. One type of interaction is consolidation, in which the slow dissipation of pore pressure causes displacements to occur in the solid (e.g., soil). Two mechanical effects are at work in this case: 1) the fluid in a zone reacts to mechanical volume changes by a change in the pore pressure; and 2) the pore-pressure change causes changes in the effective stress that affect the response of the solid (e.g., a reduction in effective stress may induce plastic yield). Coupling between fluid and solid due to deformable grains can also be specified.

FLAC3D can calculate pore-pressure effects, with or without pore-pressure dissipation, simply by setting the flow calculation on or off. Also, dynamic pore-pressure generation (e.g., related to liquefaction) can be modeled by accounting for irreversible volume strain in the constitutive model. This is done with two different built-in constitutive models: the “Finn” model, and the “Byrne” model. Both models are provided with the dynamic option.

By default, porosity and permeability are assumed constant. However, these properties can be made a function of volumetric strain via a FISH function. As a consequence, two-way coupling of mechanical stress and groundwater flow can be modeled with FLAC3D.

Other types of interaction, such as capillary, electrical, or chemical forces between particles of a partially saturated material, are not modeled directly by FLAC3D. But some of the effects may be included by providing suitable fish functions. Similarly, a FISH function may be used to vary the local fluid modulus as a function of other quantities such as pressure or time.

Thermal-Mechanical Coupling — The thermal-mechanical coupling in FLAC3D is one-way: temperature change may induce a mechanical stress change as a function of the thermal-expansion coefficient. Mechanical changes in the body, however, do not result in temperature change or changes to thermal properties. Additionally, mechanical properties can be made a function of temperature change, since FISH permits access to both temperatures and properties.

Thermal-Groundwater Flow Coupling — The thermal calculation may be coupled to the groundwater flow calculation by making pore pressure a function of temperature change. Volumetric strain can arise from thermal expansion of both the fluid and the grains within a saturated matrix. Pore pressure change results from this volumetric strain, as well as from mechanical volumetric strain. Groundwater flow can also influence heat transfer; an advection model that takes the transport of heat by convection into account is provided. The advection model can also simulate temperature-dependent fluid density and thermal advection in the fluid.

As with mechanical properties, groundwater properties can be made a function of temperature change by accessing temperature and property values via FISH.


Byrne, P. “A Cyclic Shear-Volume Coupling and Pore-Pressure Model for Sand,” in Proceedings: Second International Conference on Recent Advances in Geotechnical Earthquake Engineering and Soil Dynamics (St. Louis, Missouri, March, 1991), Paper No. 1.24, 47-55 (1991).

New Features in Version 7.0

  • Faster Solutions
  • Multi-threaded FISH
  • New Constitutive Models
  • Software Integration
  • UI Improvements
  • And more…

New Features in Version 6.0

Summary of Updates from Version 5.0

FLAC3D 6.0 contains many improvements; the new features are summarized in the following sections. Existing data files created for Version 5.0 will not operate as before. FLAC3D 6.0 will not be able to restore files saved by previous versions. For conversion of data files from version 5.0, in the version 6.0 documentation see the topics on Data File conversion and the Command and FISH mapping pages.

Mesh Generation

  • Building Blocks


    A new interactive structured mesh generation tool, the Building Blocks Pane, has been added to further increase the options available for mesh generation in FLAC3D. Building Blocks is akin to a 3D version of the Extruder Pane. The following are among the list of features supported:

    • Use geometric surfaces (imported from CAD or otherwise) as background data.
    • Snapping points to geometric surfaces, edges, and nodes.
    • Draping selected faces and edge control points on curved geometric surfaces.
    • Easy selection of nodes, edge, faces, and blocks.
    • Arbitrary transformations of selected objects, including translation, rotation, and scaling.
    • Per edge control of zone discretization and distribution.
    • Automatic propagation of zone quantity and distribution to preserve connectivity.
    • Per-block zone multiplier, with automatic attach conditions generated across boundaries.
    • Blocks may be hidden temporarily for visualization.
    • Blocks may be split to generate more surfaces for manipulation.
    • Blocks may be copied and pasted, both within and between sets.
    • Library of predefined shapes and configurations, either to serve as a starting point or to cut and paste into your model.
    • Automatic zone size specification based on total number of zones or zone edge size.
    • The Extruder can send its description to Building Blocks for 3D modifications to a primarily 2D layout.
    • An initial Building Blocks representation can be automatically generated, given a starting closed geometric volume.
    • Building Blocks can be imported from a FLAC3D mesh, allowing a crude volume decomposition to be created automatically by a third-party program (or Griddle) and then customized and detailed interactively.
  • Importing Meshes

    In addition to importing FLAC3D grid files, FLAC3D can now directly import mesh files in the ANSYS and ABAQUS formats. This allows the use of any number of third party mesh generation programs that can export their results in one of those formats.

  • Oct-tree and Densified Meshes

    In the past, it has been difficult and time-consuming to create interfaces along faults in a mesh created using an oct-tree strategy and densification. The zone separate by-face command has been updated to allow clean separation of partially connected surfaces. In addition, the zone attach by-face command has been improved to more reliably connect the resulting grid. Finally, the zone validate command has been added to assist in detecting and visualizing areas that still may have not been correctly connected.

Interactive Modeling

A new interactive model manipulation pane has been created, called the Model Pane. This allows you to interactively view, select, name, and apply operations to zones and zone faces. As we continue to work on FLAC3D, more and more interactive tools will be created to support more stages of model creation.

Every change to the the model state done in this way is emitted as a command and is stored in the State Record, which can be used to create a data file for later recreation or parameterization of a base version created interactively.


Structural Elements

The structural element logic in FLAC3D has particularly benefited from the improvements to the command syntax; it now uses the same conventions and keywords as the rest of the code. In addition, many options have been added to make the creation of structural supports easier. These include:

  • Proper cable pre-tensioning can now be done with simple commands, rather than requiring FISH.
  • The ability to create both 1D (cables, piles, beams) and 2D (shells, liners, geogrids) from geometric and CAD data. See, for example, the structure cable import command.
  • The ability to separate an internal zone surface and install liners between them in one operation. See the structure liner create by-zone-face command.
  • The ability to automatically attach cables created to liner nodes. See the structure cable create command.
  • Model pane features can be used to easily select complex curved surfaces on which to place structural reinforcement.

New Constitutive Models

In addition to ongoing incremental improvements to the behavior and response of existing constitutive models, the following new models are available in FLAC3D 6.0:

Plus the ability to create your own constitutive behavior through C++ User-Defined-Models is easier than ever, with Visual Studio templates provided to get you started. As always, the source for all built in constitutive models is provided both for verification of implementation behavior and to serve as a basis for user modifications and extensions.

Commands and Scripting

The command syntax of FLAC3D has been updated for consistency and clarity. All commands attempt to conform to the standard pattern of NOUN - VERB - OPTION - MODIFIERS - RANGE. Commands have keywords using a new hyphenated syntax that allows the full command to be documented and listed for ease of understanding, but still allows abbreviation for those who do not want to type the entire word(s). Care has been taken to ensure that the same keyword is used consistently for the same concept throughout the code, making it much easier to transfer knowledge gained from one area of the code to another.

A new FISH intrinsic naming convention has also been implemented. This greatly increases the clarity of function names and allows the editor to automatically highlight both correct and incorrect intrinsic names as you type.

To assist users with data files and FISH they would like to contine to use, there is a conversion utility built into the FLAC3D 6.0 editor. This uses a heuristic to guess if a data file uses old 5.0 syntax and automatically prompts the user if they would like it to be converted to 6.0 syntax. This conversion can also be activated manually.

Many new types have also been added to FISH, including Boolean, Tensor, Matrix, and an Associative Array or Map. It is also much easier now to create custom C++ FISH intrinsics using the plugin option by creating a project from a Visual Studio template.

FLAC3D also features the addition of a new, much more powerful built-in editor. Features such as line numbers, code-folding, improved searching, and improved syntax highlighting are now available.

PFC Module Available

Itasca is moving toward a common platform where all of its software methods—currently sold as separate codes (FLAC3D, PFC, and so on)—can be loaded into a common system at run time. Starting with FLAC3D 6.0, a compatible version of PFC can be loaded at run time directly into FLAC3D, allowing direct coupling between balls and zones or structural elements. Preliminary direct coupling support has already been built in.


Interactive Help

  • On-screen Help

    The entire documentation set is now available on-screen in a Help file. This permits users to rapidly search and explore content, review and copy examples, and makes additional integrated help facilities possible.

  • Inline Help

    By pressing Ctrl+Spacebar, a new inline help facility is activated that reminds you of the options available and helps you build a command interactively.


    When working in a data file or at the command prompt, for instant help at any time, pressing F1 will open FLAC3D Help to the full documentation for the command or keyword at the cursor position.

Further Additions and Updates

This is far from a complete list of additions and improvements. Some of what has not been described above includes:

  • Faster initial conditions

    The zone initialize-stresses command has been added, which automatically calculates initial approximations to the vertical stresses due to gravity even with irregular geometry and varying densities. The horizontal stresses may also be initialized to a ratio of the vertical. Other options are available.

  • Update save/restore system

    Save files (while incompatible with 5.0) are now using a new format that should allow for backward compatibility with future versions of FLAC3D.

  • Automatic Zone Excavation Relaxation

    The zone relax command has been added to automatically “zonk” excavations and keep spurious inertial effects from increasing the damage seen. The effects of the zones are gradually reduced over time, using a multiplier that reduces from 1.0 to 0.0. The precise shape of the relaxation curve is controllable by the user but defaults to a servo based on the current mechanical force ratio. When the reduction factor reaches 0.0, the zones are automatically set to NULL and the apply condition is removed.

  • Faster Dynamic Simulations

    When large size or stiffness differences are present in a model, the dynamic multi-stepping option has been much improved. Depending on the model, this can result in much faster dynamic simulations.

  • Dynamic Input Wizard

    This tool pre-processes input signals and outputs a table that can be imported for dynamic analyses. It can do frequency filtering and baseline correction using a variety of methods and export the resulting data.

  • Updated APPLY logic

    Apply boundary conditions can now use local (per gridpoint, face, or zone) FISH multipliers. Local systems are now resolved automatically when multiple constraints are placed on gridpoints. It is no longer necessary to specify the plane manually when applying normal velocity conditions on non-Cartesian aligned surfaces.

  • Westergaard Hydrodynamic approximation

    The Westergaard approximation for fluid boundaries in a dynamic simulation has been built directly into FLAC3D as an applied boundary condition.

  • Results Files

    FLAC3D can now export Results files; see the model results command. Much smaller than save files, these are intended for post-processing and analysis only. The user has full control over what aspects of the model are included. They (and save files) can also be used in combination with the Generate Movie Frames dialog to automatically produce movie frames of a model.

  • Visualization

    • The plot item interface has been improved, with drag/drop and cut/paste support added.
    • Zone plot items have been optimized and multi-threaded, so they should generate and respond much faster.
    • Plot views (camera settings) can now be named and saved for later recovery and reference.
    • All of the attributes for plot items have been streamlined, so only valid options are displayed at any time.
    • The command syntax associated with plots has also been updated; plot item control switch keywords have been modified to be similar in layout and structure to the attributes seen interactively.
    • The export data file option from plot windows has been improved and made more reliable. The resulting data files are now formatted for readability and can be edited for custom scripting.
  • User Interface improvements

    • Improved Control Panel with greater flexibility.
    • A new FISH browser control set displays the name and current value of all FISH symbols in the model.
    • Better support for floating panes, including the option to embed local version of toolbars and the control panel.
  • License verification enhancements

    • Ability to select a specific license from a server with multiple valid licenses.
    • The licensing system scans all available keys for one that matchs both the code and the options in use.
    • Much better messaging and feedback when licensing errors occur.
    • Multiple separate licenses can now be included on one USB key.