Laterally Loaded Pile
Problem Statement
Note
To view this project in FLAC3D, use the menu command . Choose “Structure/Pile/LaterallylLoaded” and select “LaterallyLoaded.f3prj” to load. The main data files used are shown at the end of this example. The remaining data files can be found in the project.
A vertical pile is subjected to a lateral displacement at its top. The pile is pushed in one direction, then the loading is reversed and the pile is pushed in the opposite direction. This loading cycle is performed for the case of no normal gap present, and then for 100% of the gap effective. The results demonstrate the response of the pile structural elements to lateral loading both with and without the effect of a gap between the pile and the medium. The top node of the pile is marked with the group name Top.
In the FLAC3D data file, the pile (composed of 8 pile elements) is created in the center of
the soil block such that the top pile node is one meter above the soil surface (see Figure 1). We wish to apply to the top node a constant lateral velocity of 1 × 10-8 that will move the node along the diagonal of the soil block. This direction is described by a vector of (1,1,0) in the global system. We specify this nodal velocity condition with the structure node initialize velocity
(0.707e-8,0.707e-8,0) range group 'Top' command.
We must also specify the appropriate velocity-fixity condition at this node with the
structure node fix
command, which requires specification of fixity directions in the
node-local system, not the global system. Because the top node is used by a pile element, its
node-local system will be oriented such that the x-axis is aligned with the pile axis,
and the yz-axes lie in the pile cross-sectional plane. In our model, the node-local
system of the top node is oriented such that the x-axis points in the negative global
z-direction, the y-axis points in the positive global y-direction, and
the z-axis points in the positive global x-direction. The orientation of the
node-local system can be visualized with the “Pile” plot item by setting the “System” attribute
to “Node”.
Note that this orientation is set automatically at the start of a set of cycles, or when the
model cycle
0 command is executed. Therefore, we fix the lateral velocity to
remain constant with the commands
struct node fix velocity-y range group 'Top' ; fix velocities in lateral plane, top node
struct node fix velocity-z range group 'Top'
We wish to monitor the applied load acting at the top node and plot this value versus the displacement of the top node. If the loading is applied in a quasi-static fashion, then the applied load acting at the top node will equal the shear force acting at the top end of the top pile element. The shear forces are expressed in the pile element coordinate system (see Pile Sign Conventions). In order to obtain the shear force acting in the diagonal direction in which the load is being applied, we must rotate the y-axis of the pile element system such that it lies along this diagonal using the direction-y property.
The applied lateral load can then be monitored with the structure pile history
command:
struct pile history name='force' force-y position (5.5,5.5,12) ; shear force at top
The x- and y-components of the applied displacement can be monitored with
separate structure node history
commands; however, we wish to monitor the lateral
displacement occurring along the diagonal. To do this, we use the FISH function
lateralDisp, which accesses the x- and y-components of the displacement
using the struct.node.disp.global
function.
For this problem, the cohesion and friction of the normal coupling spring are set to 0.01 MN/m
and zero, respectively. The no-gap case is run by specifying coupling-gap-normal
off in the structure pile property
command. The full-gap case is run by
specifying coupling-gap-normal on. Figure 2
shows the normal load at the pile top versus displacement for the no-gap case, and Figure 3 shows the results for the full-gap case. During the lateral
loading, the limiting normal force is the same for both cases. However, the normal load versus
displacement histories are different. In the model with a full gap, it is necessary to close the
gap before the force with opposite direction is generated. The pile is unloaded when it returns
to its initial position.
Additional information about the system behavior can be learned by studying the model at the end of the first stage of loading, when the initial applied displacement is 0.4 mm. At this stage, the upper portion of the pile is compressing the soil in the (1,1,0) direction, while the lower portion of the pile is compressing the soil in the minus (1,1,0) direction. The plots of nodal displacement, bending moment in the pile, and stress and yield state of the normal coupling springs (see Figure 4 and Figure 5) confirm this loading mode and indicate that the normal coupling springs above and below the load-reversal point are yielding. The normal stress is zero over the top element, because the top node is above the soil surface. From Figure 4 it can be seen that the normal stress at the yielding nodes equals 3.185 kPa. This equals normal cohesion, \(c_s\), divided by perimeter, \(p\), as it should. The pile responses can also be accessed via FISH.
Data File
LaterallyLoaded.f3dat
model new
model largestrain off
model title "Laterally loaded pile"
; Create zones
zone create brick size 8 8 8 edge=11
zone face skin ; Label model boundaries
; Assign material model and properties
zone cmodel assign elastic
zone prop bulk=5e9 shear=1e9 density=2000
; Boundary conditions
zone face apply velocity-normal 0 range group 'East' or 'West'
zone face apply velocity-normal 0 range group 'North' or 'South'
zone face apply velocity-normal 0 range group 'Bottom'
; Initial conditions
model gravity 10
zone initialize-stresses ratio 0.6,0.4
model solve ratio-local 1e-4 ; Should be instant
; =======================================================
; Create a pile in the center of the soil block
struct pile create by-line (5.5,5.5,12.0) (5.5,5.5,4.0) segments=8
struct node group 'Top' range position-z 12 ; Tag top node
struct pile property young=8.0e10 poisson=0.30 cross-sectional-area=0.7854 ...
moi-polar=9.82e-2 moi-y=4.91e-2 moi-z=4.91e-2 ...
perimeter=3.14 ...
coupling-stiffness-shear=1.3e11 coupling-cohesion-shear=1.0e10 coupling-friction-shear=0.0 ...
coupling-stiffness-normal=1.3e09 coupling-cohesion-normal=1.0e04 coupling-friction-normal=0.0 ...
coupling-gap-normal=off ...
direction-y=(1,1,0) ; so that shear force Fy corresponds with diagonal direction
; =======================================================
; Fish function to find lateral displacement of top node
fish define lateralDisp
global topNode
if type.name(topNode) == 'integer' then
topNode = struct.node.near(5.5,5.5,12)
endif
local disp = struct.node.disp.global(topNode)
lateralDisp = math.sqrt(disp(1)^2 + disp(2)^2) * math.sgn(disp(1))
end
; =======================================================
struct pile history name='force' force-y position (5.5,5.5,12) ; shear force at top
fish history name='disp' @lateralDisp ; lateral displacement
; =======================================================
struct damping combined-local
struct node fix velocity-y range group 'Top' ; fix velocities in lateral plane, top node
struct node fix velocity-z range group 'Top'
; move (+) diag-dir
struct node initialize velocity (0,0.707e-8,0.707e-8) local range group 'Top'
model save 'Initial'
; =======================================================
; Run no-gap case
; =======================================================
model cycle 40000 ; disp of +4e-4
model save 'NoGap-1'
; move (-) diag-dir
struct node initialize velocity (0,-0.707e-8,-0.707e-8) local range group 'Top'
model cycle 80000 ; disp of -8e-4
model save 'NoGap-2'
; move (+) diag-dir
struct node initialize velocity (0,0.707e-8,.707e-8) local range group 'Top'
model cycle 40000 ; disp of +4e-4
model save 'NoGap-Final'
; =======================================================
; Run full-gap case
; =======================================================
model restore 'Initial'
struct pile property coupling-gap-normal on
model cycle 40000 ; disp of +4e-4
model save 'FullGap-1'
; move (-) diag-dir
struct node initialize velocity (0,-0.707e-8,-0.707e-8) local range group 'Top'
model cycle 80000 ; disp of -8e-4
model save 'FullGap-2'
; move (+) diag-dir
struct node initialize velocity (0,0.707e-8,.707e-8) local range group 'Top'
model cycle 40000 ; disp of +4e-4
model save 'FullGap-Final'
Was this helpful? ... | PFC 6.0 © 2019, Itasca | Updated: Nov 19, 2021 |