Skip to main content
Version: 3.4.8 (unreleased)

How to run a Discrete Element Model triaxial test

A triaxial test squeezes a column of cemented rock along its length while its sides are held at a constant confining stress. The highest axial stress it reaches is its strength at that confinement. Repeat the test at a few confinements and the peaks give the rock's failure envelope — its cohesion and friction angle, the numbers a Discrete Element Model (DEM) is calibrated against.

This walk-through runs one test from an empty box to a peak stress, then shows how to repeat it and turn the peaks into an envelope. It stands on its own: you do not need the earlier steps of this tutorial, and every property it touches is covered in full in the DEM user guide.

The workflow​

1. Build the specimen ──────── size the box and the particles
2. Densify ─────────────────── grow the particles into contact
3. Cement ──────────────────── bond the pack into rock
4. Set up the test ─────────── confining stress, strain rate, max strain
5. Consolidate and shear ───── run it, and watch the DEM Test chart
6. Repeat and fit ──────────── more confinements, then the envelope

What you need before you start​

The DFN licence featureThe Discrete Element Model node only appears in the Interpretation tree with it. See Feature availability.
A Vulkan 3D view (for the GPU)The GPU solver runs on the 3D view's graphics device. With no Vulkan 3D view open, VRGS runs the test on the CPU and says so in the Messages panel.
A project in metresThe sizes below assume the project's units are metres.

Step 1 — Build the specimen​

  1. In the Interpretation tree, right-click Discrete Element Model and choose New. VRGS creates a model and fills it straight away with the default pack, which is sized for an outcrop rather than a laboratory. The next steps resize it.

  2. Select the model and set these in the Properties panel:

    GroupPropertyValueWhy
    Model DimensionsX dimension, Y dimension0.05A 50 mm square cross-section
    Model DimensionsZ dimension0.1Twice as tall as it is wide, the usual laboratory proportion
    ElementsMinimum Size / Maximum Size0.001 / 0.002Particle radii of 1–2 mm, about fifteen particles across the specimen
    ElementsInitial Elements5000About a third of the box, which random placement can reach
    DE VolumeUse GravityoffA few kilopascals of self-weight is only noise against a confining stress of hundreds
    DE VolumeGPU SolveronOptional, and much faster on large models
  3. Right-click the model and choose Simulation › Reset. The pack is rebuilt at the new size. If the box cannot hold every particle, the Messages panel says how many were placed and why.

Tick Show Domain Box under Display Options to see the walls the test will drive.

Why this size

Nothing in the physics needs a laboratory-sized specimen. A DEM strength is a stress, and the number of timesteps a test takes does not change with scale. What matters is the number of particles across the specimen: around fifteen is enough for a first look, and more gives smoother curves at a cost in time.

Step 2 — Grow the particles into contact​

A freshly placed pack is loose. The particles went in at random positions and barely touch, and cement can only bond particles that touch.

Right-click the model and choose Elements › Grow Elements. Each particle expands into the gap to its nearest neighbour, so the pack becomes dense without adding particles. Current Porosity falls as it does.

Growing instead of settling

The DEM user guide suggests letting a pack settle under gravity before cementing. For a triaxial specimen, growing is the quicker route: the test's consolidation stage compacts the specimen under the confining stress anyway, and settling a small pack under gravity takes a great many timesteps.

Step 3 — Cement the pack​

  1. Optionally, set Strength Scatter in the Cement group to 0.2. Real rock is heterogeneous, and scattered bond strengths let failure start as diffuse cracking that then localises into a shear band, rather than one clean break.
  2. Right-click the model and choose Elements › Cement Model.

The Messages panel reports how many bonds were installed. If it reports 0 bonds, the particles are not touching: run Grow Elements again and cement again. Cementing a second time replaces the bonds rather than adding to them.

The default cement — Tensile Strength 1,000,000 Pa, Cohesion 2,000,000 Pa and Friction Angle 30° — is a reasonable weak rock to start with. Leave it as it is for the first test.

Step 4 — Set up the test​

Everything in this step is in the Loading group. Set it all before you change Mode: the test is laid out from these values the moment Mode is set, so a value changed afterwards does not apply until the next test.

PropertyValueNotes
AxisZThe platen travels along the specimen's long axis. The top face moves and the base stays put
Confining Stress (Pa)5000000.5 MPa. Start low; higher confinements come in step 6
Max Strain0.055 % shortening, enough to see the peak and the fall after it
Strain Rate (1/s)see below
Servo Alpha0.5Leave it unless consolidation will not settle
Sample Interval (steps)100One row of history, and one point on the chart, every hundred steps

Strain Rate. Once Confining Stress is set, read Suggested Strain Rate (1/s) further down the group and type that value into Strain Rate. It keeps the test quasi-static with a tenfold margin: slow enough that the specimen stays in equilibrium as it is squeezed, so what you measure is a strength rather than an impact. Select the model again if the suggested value has not refreshed.

A faster first look

Anything up to ten times the suggested rate still keeps the Inertial Number below 10⁻³, the usual limit for a quasi-static test. For a first look, twice the suggested rate halves the run time. For a result you intend to keep, use the suggested rate.

Step 5 — Consolidate and shear​

  1. Set Mode to Triaxial. The test is laid out, Stage reads consolidate, and the DEM Test tab opens beside the Properties panel.
  2. Right-click the model and choose Simulation › Start/Stop.

Consolidation. All six faces move in, each under servo control, until each holds the confining stress. The stage ends once the assembly is in equilibrium — Unbalanced Force Ratio below 0.01 and every face within 1 % of its target, for ten samples in a row — and Stage changes to shear. Watch Lateral Stress climb to the confining stress. A loose pack takes longer, because no face moves faster than the strain rate would move it.

Shearing. The top face now advances at the strain rate, the base holds still, and the four sides keep holding the confining stress. On the chart:

  • Axial stress and deviator stress (axial minus lateral) climb, level off, and fall as the specimen fails. Deviator stress starts near zero, because consolidation left the axial and lateral stresses equal.
  • Lateral stress stays flat at the confining stress.
  • Volumetric strain rises while the specimen compacts, then falls past the peak. That fall is dilatancy: the specimen bulking as it breaks.
  • Broken Bonds, in the Cement group, climbs through the peak. That population of broken bonds is the fracture.

The test ends at Max Strain. Every face stops where it is, Stage goes blank, and the specimen is held as it finished. Choose Simulation › Start/Stop to stop the run.

Reading the result. Peak Stress (Pa) is the highest axial stress reached: the specimen's strength at a confinement of 0.5 MPa. Note it down with the confining stress.

Check that the rate held

While the shear stage runs, Inertial Number should stay below 10⁻³ and Unbalanced Force Ratio below about 0.01. If either climbs well above that, the test ran too fast and the peak is a dynamic response rather than a strength. Halve Strain Rate and repeat the test on a fresh specimen.

Step 6 — Keep the result, repeat, and fit the envelope​

  1. Choose Simulation › Export Test History... and save the CSV. It has one row per sample: time, strains, the stress on every face, the averaged stress tensor, the bonds broken in tension and in shear, and both diagnostics.
  2. Set Mode back to Off. The test ends and the box is put back.

The broken bonds are a fracture network in their own right: Elements › Export Fractures to DFN turns them into fractures with a dip and azimuth.

The specimen is now broken, so each further confinement needs a fresh one. For each of, say, 1, 2 and 4 MPa:

  1. Choose Simulation › Reset to rebuild the pack.
  2. Choose Elements › Grow Elements, then Elements › Cement Model.
  3. Set Confining Stress, then Strain Rate from the new Suggested Strain Rate — it changes with confinement. Set Mode to Triaxial and choose Simulation › Start/Stop.
  4. Export the history and note the peak.

The point at zero confinement comes from an unconfined test: set Mode to Compression instead of Triaxial. Compression removes the four side walls, and its Peak Stress is the unconfined compressive strength (UCS).

Fitting the envelope. Plot each peak axial stress σ₁ against its confining stress σ₃. For a rock that follows Mohr–Coulomb, the points fall on a straight line whose intercept is the UCS and whose slope m gives the friction angle φ and cohesion c:

σ₁ = UCS + m · σ₃

sin φ = (m − 1) / (m + 1)
c = UCS · (1 − sin φ) / (2 · cos φ)

Compare that envelope with the rock's laboratory envelope, adjust the cement's Tensile Strength, Cohesion and Friction Angle, and test again. That loop is how a DEM is calibrated to a real rock, and a calibrated model is what makes the fractures it predicts worth reading.

If something goes wrong​

What you seeWhat to do
Cement Model reports 0 bondsThe particles are not touching. Run Grow Elements, then cement again
Cement Model or Grow Elements says the model is runningStop the simulation first. Neither works on a running model
Stage stays at consolidateThe faces are still closing on a loose pack, or the servo is overshooting. Give it longer; if Lateral Stress swings above and below the target, lower Servo Alpha to 0.3
The same test gives a different curve at a different strain rateThe test is too fast. Check Inertial Number and lower Strain Rate
No peak before the test endsRaise Max Strain and test a fresh specimen
The Messages panel says the GPU solver needs a Vulkan 3D viewOpen a 3D view before starting, or run on the CPU: the test gives the same curve either way

See also​

  • DEM user guide — every property, the other loading modes, and reading damage
  • Building a DFN — generating, conditioning and validating a Discrete Fracture Network