Skip to content

Triaxial Test - Cyclic Consolidated Undrained

Finite Element (FE) representation

For the simulation of consolidated undrained (CU) cyclic triaxial tests we perform a so-called ''single-element-simulation'' and by doing so enforce element test assumptions, i.e. a homogeneous distribution of stress/strain within the test sample. A schematic of the FE representation of the CU test is given below.

triaxCUcyc

  • An axisymmetric solid element with four nodes, linear shape functions for the displacement field and reduced integration is used. To enforce the incompressibility constrained from the undrained conditions (\(tr(\dot{\boldsymbol{\varepsilon}})=0\)), a locally undrained simulation is performed by controlling both the vertical as well as the horizontal displacement enforcing \(\dot{\varepsilon}_v = 0\).
  • Initial stress (\(\sigma_1^0, \sigma_2^0\)) and initial void ratio \(e_0\) or any other initial state variable required by the constitutive model to be calibrated are assigned using *Initial conditions
  • The simulation starts with the loading step. The loading is applied using a special amplitude type called lab-cyclic-stress-strain-control.

Sample numgeo input file

  • First we create the four nodes defining the finite element:

    *Node
    1, 0.0 , 0.00
    2, 0.05, 0.00
    3, 0.05, 0.1
    4, 0.00, 0.10
    

  • We use an axisymmetric four node solid element with reduced integration (only one phase considered)

    *Element, Type = U4-solid-ax-red
    1, 1, 2, 3, 4
    

  • Next, we define some node and element sets for the assignment of boundary conditions, loads and material parameters:

    *Nset, Nset = nall
    1, 2, 3, 4
    *Nset, Nset = nleft
    1, 4
    *Nset, Nset = nright
    2 , 3
    *Nset, Nset = nbottom
    1 , 2
    *Nset, Nset = ntop
    3 , 4
    *Elset, Elset=eall
    1
    

  • In order to assign the material to the element, we first create a solid section. The material name linked to this solid section is arbitrary but must be specified in a later step.

    *Solid Section, elset = eall, material = soil
    

  • Define the material:

    *Material, name = soil, phases = 1
    
    *Mechanical = Sanisand-2
    100,0.934,0.019,0.7,1.25,0.89,0.01,125
    0.05,7.05,0.968,1.1,0.704,3.5,4,600
    
    *Density
    2.65
    

    Note that in this special case no *Hourglass stabilization is required since we will prescribe the displacement at all nodes and thus preventing zero-energy modes.

  • Define the initial conditions of the simulation. In the present case this comprises the definition of the initial (effective) stresses as well as the initial void ratio. The initial stresses will be mandatory in most simulations that you will perform using numgeo. The initial void ratio however is only required for constitutive models incorporating the void ratio as a state variable.

    *Initial conditions, type=stress, geostatic
    eall, 0.0, -294.0,  0.10, -294.0, 1.0, 1.0
    
    *Initial conditions, type=state variables
    eall, void_ratio, 0.808
    

  • Next, we define an amplitude for the cyclic loading. For this we use an amplitude of type lab-cyclic-stress-strain-control. An amplitude specially designed for cyclic triaxial tests, details are given in *Amplitude. This help of this amplitude a signal with a constant rate of \(-10^{-6}\) is created. The direction of the signal is reversed when target stress quantity is reached. In the present example we check against \(q=\sigma_{11}-\sigma_{22}\). The target values are \(q^{max}=114.2\) kPa and \(q^{min}=-114.2\) kPa (symmetric loading). The procedure is continued until 8 load reversals are performed (corresponding to 4 loading cycles). We will combine this amplitude later with a displacement boundary condition.

    *Amplitude, name = loading-signal, Type=lab-cyclic-stress-strain-control
    eall, s11-s22, 114.2, -114.2, -1d-6, 8
    

  • Next we simulate the loading of the soil sample. For this we use a static step. A peculiarity here is that instead of (non-physical) time, we specify the maximum number of increments to be computed, and require that each increment be exactly 1 in size. The gravitational force is set to zero.

    *Step, name = Loading, inc = 10000000
    *Static
    1, 10000000, 0.01, 1
    
    *Solver, simple
    
    *Body force, instant
    eall, grav, 0, 0, -1, 0
    

    As already mentioned, the load is applied by prescribing the displacement. For this we use the previously defined amplitude, which returns a constant value of \(+/-10^{-6}\) with a changing sign (+/-) depending on the stress state of the sample. The simulation strategy thus corresponds to a displacement-controlled simulation with additional stress control, analogous to the procedure in the laboratory tests. In addition to the vertical displacement, the horizontal displacement is also specified to ensure constant volume conditions. The factor 4 is due to the sample geometry of \(h/d=2\). Note that once the maximum number of load reversals is detected by the amplitude (8 in the present case) the simulation is stopped. (The maximum number of increments, here 10000000, will not be achieved)

    *Boundary, increment, amplitude=loading-signal
    ntop, u2, 1
    nright, u1, -0.25
    

    Finally we prescribe the missing boundary conditions at the symmetry axis and the bottom of the sample and specify the print output:

    *Boundary
    nleft, u1, 0.0d0
    nbottom, u2, 0.0d0
    
    *Output, print
    *Frequency = 2
    *element output, elset = eall
    S, E, void_ratio
    
    *End Step
    
    *End Input
    

Validation of simulation approach

For the validation of the simulation approach, a comparison with the simulation results on Toyoura Sand with the SANISAND constitutive model reported in the original paper (Dafalias & Manzari (2004)1) is made. Mahdi Taiebat and Sheng Zeng furthermore contributed simulation results of the same tests as in 1 such that a total of three implementations and simulation strategies could be used to benchmark the approach used in numgeo. The simulation results from Taiebat & Sheng were performed using either the finite element code OpenSees or their in-house constitutive model driver ConModel.

triax_CUcyc

Complete numgeo input file

Example input file for the simulation of a stress controlled cyclic CU triaxial test are shown below.

**=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=
**                                  numgeo                                    
**             Copyright (C) 2022 Jan Machacek, Patrick Staubach              
**=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=

*Node
1, 0.0 , 0.00
2, 0.05, 0.00
3, 0.05, 0.1
4, 0.00, 0.10

*Nset, Nset=nall
1, 2, 3, 4, 5
*Nset, Nset=nleft
1, 4
*Nset, Nset=nright
2 , 3
*Nset, Nset=nbottom
1 , 2
*Nset, Nset=ntop
3 , 4

*Element, type = U4-solid-ax-red
1, 1, 2, 3, 4

*Elset, Elset=eall
1

** ----------------------------------------

*Solid Section, elset = eall, material=soil

** ----------------------------------------

*Material, name = soil, phases = 1

*Mechanical = Sanisand-2
100,0.934,0.019,0.7,1.25,0.89,0.01,125
0.05,7.05,0.968,1.1,0.704,3.5,4,600

*Density
2.65

** ----------------------------------------

*Initial conditions, type=stress, geostatic
eall, 0.0, -294.0,  0.10, -294.0, 1.0, 1.0

*Initial conditions, type=state variables
eall, void_ratio, 0.808

** ----------------------------------------

*Amplitude, name = loading-signal, Type=lab-cyclic-stress-strain-control
eall, s11-s22, 114.2, -114.2, -1d-6, 8

** ----------------------------------------

*Step, name = Loading, inc = 10000000
*Static
1, 10000000, 0.01, 1

*Solver, simple

*Body force, instant
eall, grav, 0, 0, -1, 0

*Boundary, increment, amplitude=loading-signal
ntop, u2, 1
nright, u1, -0.25

*Boundary
nleft, u1, 0.0d0
nbottom, u2, 0.0d0

*Output, print
*Frequency = 2
*element output, elset = eall
S, E, void_ratio

*End Step

*End Input

  1. Y. F. Dafalias and M. T. Manzari, ‘Simple plasticity sand model accounting for fabric change effects’, Journal of Engineering mechanics, vol. 130, no. 6, pp. 622–634, 2004.