Laterally-Loaded Pile Foundation
Example Provided by: Christopher McGann, University of Washington
This article describes the OpenSees implementation of a simple laterally-loaded pile example. The problem is modeled as a beam on a nonlinear Winkler foundation (BNWF), utilizing displacement-based beam elements for the pile and nonlinear spring elements which represent the vertical and lateral response of the surrounding soil.
Provided with this article are the files needed to execute this analysis in OpenSees;
- the main input file, staticBNWFpile.tcl
- three procedures to define the soil constitutive behavior, get_pyParam.tcl, get_tzParam.tcl, and get_qzParam.tcl
- a file to define the pile section behavior, elasticSection.tcl
To run this example, the user must download each of the above files and place them in a single directory. Once this has been done, the user can then type "source staticBNWFpile.tcl" into the interpreter of the OpenSees.exe application to run the analysis. Representative results are presented in this article to verify the correct implementation of this example. Additionally, the pile response obtained from this analysis is compared to a similar analysis conducted using the commercial program LPile (http://www.ensoftinc.com) to provide verification the results of the OpenSees analysis.
Model Description
The BNWF model simulates the laterally-loaded pile problem using displacement-based beam elements to represent the pile and a series of nonlinear springs to represent the soil. The soil springs are generated using zero-length elements assigned separate uniaxial material objects in the lateral and vertical directions. An idealized schematic of the laterally-loaded pile model is provided in Fig. 1.
The pile axis is oriented in the z-coordinate direction, and all of the nodes are initially located on the z-axis (x- and y- coordinates are zero). Node numbering for each set of nodes begins at the bottom of the pile. The model is created with three separate sets of nodes:
- fixed spring nodes (numbers 1-85 in example)
- slave spring nodes (numbers 101-185 in example)
- pile nodes (numbers 201-285 in example)
Geometry and Mesh
The geometry is rather simple in this example. There is only a single layer of cohesionless soil, and the groundwater table is assumed to be well below the tip of the pile. The pile geometry controls the meshing of the problem. The user can specify the length of the pile head (above the ground surface), L1, and the embedded pile length (below the ground surface), L2. The default values in staticBNWFpile.tcl are L1 = 1 m, and L2 = 20 m.
The mesh is defined by the number of elements specified in the pile. The default value in this example is 84 elements (85 nodes). For the default pile geometry, this results in 80 elements over the embedded length and 4 elements above the ground surface. The input file is set up to handle up to 100 nodes. Modifications would need to be made to the node numbering scheme to accommodate a larger number of nodes.
Spring Nodes
The spring nodes are created with three dimensions and three translational degrees-of-freedom (dof). The input file is set up to automatically generate the necessary spring nodes and elements based upon the input geometry (pile head length, $L1, embedded length, $L2, and number of pile elements, $nElePile). Spring nodes are only created over the embedded length of pile.
Since zero-length elements are used for the springs, the two sets of nodes share the same set of locations. One set of spring nodes, the fixed-nodes, are initially fixed in all three dof. The other set of nodes, the slave nodes, are initially fixed in only two dof, and are later given equal dof with the pile nodes.
Spring Constitutive Behavior
The constitutive behavior of the springs is defined such that the springs oriented in the lateral direction represent p-y springs, and the vertically-oriented springs represent t-z and Q-z springs for the pile shaft and tip, respectively. Three procedures are used to properly define the p-y/t-z/Q-z behavior with depth.
Several input soil properties are necessary to define these springs:
- soil unit weight, $gamma
- soil internal friction angle, $phi
- soil shear modulus, $Gsoil
The default values are set at $gamma = 17 kN/m^3, $phi = 36 degrees, and $Gsoil = 150000 kPa.
The procedure get_pyParam.tcl, which defines the p-y springs, has several options which must be selected.
- The first switch, $puSwitch, specifies the variation in ultimate lateral resistance with depth. The default, $puSwitch = 1, uses the recommendations of the American Petroleum Institute (API) (1993). The alternative method is that of Brinch Hansen (1961).
- The second switch, $kSwitch, specifies the variation in initial stiffness with depth. The default, $kSwitch = 1, specifies a linear variation of initial stiffness with depth (API 1993). The alternative uses a modified version of the API stiffness which varies parabolically with depth after Boulanger et al. (2003).
- The presence of groundwater can be accounted for in the initial stiffness using the third switch, $gwtSwitch. Default, $gwtSwitch = 1, is for no groundwater.
The other procedures, get_tzParam.tcl and get_qzParam.tcl, have no input options in this example.
The p-y spring constitutive behavior is obtained using the PySimple1 uniaxial material object. The t-z and Q-z springs are defined using the TzSimple1 and QzSimple1 uniaxial materials, respectively. The main input file is set up to automatically generate the required spring material objects based upon the input geometry and soil properties.
Spring Elements
Zero-length elements are used for the soil springs using the element zeroLength. These elements connect the fixed and slave spring nodes. The the PySimple1 material objects are incorporated in the x-direction (direction of loading), while the TzSimple1, and at the pile tip, the QzSimple1, material objects are incorporated in the z-direction (vertical direction).
Pile Nodes
The pile nodes are created with three dimensions and six degrees-of-freedom (3 translational, 3 rotational). The input file is set up to automatically generate the necessary pile nodes and elements based upon the input geometry. A linear coordinate-transformation object is specified for the orientation of the pile in this example. With the exemption of the uppermost pile head node, the pile nodes are fixed against translation in the y-direction and rotations about the x- and z- axes. The pile head node, where the load is applied, is separated to allow the user to specify a free-head (no rotational fixity) or fixed-head (full rotational fixity) condition at the loading point.
The pile nodes over the embedded length of the pile are use linked with the slave spring nodes using the equalDOF command. The pile nodes are the master nodes in this example. These two sets of nodes share equal degrees-of-freedom in the x- and z- translational directions only.
Pile Constitutive Behavior and Elements
In this example, the pile is given elastic behavior for simplicity. Instead of using the elasticBeamColumn element, this is done using an elastic section objectin conjunction with the displacement-based beam element, dispBeamColumn. This was done to facilitate future incorporation of elastoplastic pile section behavior using fiber models by the user.
The properties of the elastic section for this example are defined in the file, elasticPilesection.tcl. The pile is defined with appropriately computed values for the cross-sectional area and the moments of inertia for its 1 m diameter, and is assigned a modulus of elasticity, E = 25000000, and shear modulus, G = 9615385.
Recorders
Several recorders are defined for this model.
- The displacements at the pile nodes in all three translational dof are recorded for use in extracting the displaced shape of the pile.
- The reaction forces in the p-y springs are recorded for use in visualizing the lateral soil response.
- The element forces in the pile elements are recorded in order to obtain shear and moment diagrams for the pile.
The recorders are set up to only record values at 0.5 second increments of pseudo-time during the analysis to facilitate the use of smaller load steps. This is done with the variable $timeStep.
Loading
This example considers a 3500 kN load applied in the positive x-direction at the head of the pile (uppermost pile node). This is accomplished in the model using a plain pattern with optional time-series parameters. The load increases linearly from 0 kN to 3500 kN over a 10 second increment of pseudo-time (between 10 and 20 seconds) and is then held constant after the loading period. Setting up the loading object in this manner allows for more control over the analysis.
Analysis
The analysis is conducted using the load-controlled integrator with a loading step of 0.05.