OpenSees implementation of a single pile embedded in a continuum soil domain is described here. The codes are generic and can be modified for various soil domain dimensions, pile depth and soil layers. The file is capable of analyzing seismic response of a single pile system both in dry and saturated soils where liquefaction can be modeled.
Note that the model is symmetric about the direction perpendicular to the direction of shaking. Therefore, in order to speed up the analysis execution time, half of the model is analyzed. Figure 1 below shows typical finite element mesh that the code can generate. Please also read the article about base boundary condition. The feature for switching into either rigid base or compliant base boundary conditions is available in the code.
To record outputs, it is important to understand how the nodes and elements have been numbered in the code. The numbering starts from 1 at (x=0, y=0,z=0) and increases with an increment of 1 in direction +Z, then when it reaches the maximum node/element, it increments in direction +Y and finally in direction +X till last node/element is reached.
Details of numerical model validation have been presented in Chapter 6 of my Ph.D. thesis (available here) and my Journal Paper “Dynamic behavior of pile foundations under cyclic loading in liquefiable soils” (available here).
To download Tcl file for dry soil condition, click here: soilPileContinuum_Dry
To download Tcl file for saturated soil condition, click here: soilPileContinuum_Saturated
Please review the notes, presented in the beginning of the code, carefully. I tried to put enough information for your use. Write comments below if you have any questions.
4 thoughts on “Continuum model of a single pile under seismic loading – TCL file”
Dear Amin,
1. I saw That you consider pore water bulk modulus 41771094.402673 but I checked some references and It was 2.2e6 would you please help how did you calculate it and why is that?
2.I saw in your coding rhos [expr 1.8-1] not only for dry soil but also for saturated soil and you use it in Ndmaterial but in the definition of ndmaterial rho should be saturated rho, and also in some of your other codes you did it, whould you please explain me?
Best regards
Nasser
Hi Nasser,
Sorry for this later reply. My apologies I have been super slammed with work over the past months. So regarding your questions. Thanks for informing of these bugs in the code. I revised the models and uploaded to my website. If you’re still interested please check out the revised models above. Regarding Bf=41771094.402673 that the bulk modulus of water in “lb/ft^2” the tcl code is based on metric system and I forgot to convert this to metric is well. Regarding your second question, I acknowledge your comment. I revised the code to avoid any confusion.
Dear Amin,
I appreciate you for reading my message and replying to me, I have downloaded your new code, if possible explain me about the choice of soil damping, apparently in coding the damping ratio is considered about 5%. Why is it taken 5%? The other question that comes to my mind is how to do the modal analyze to get the Rayleigh damping coefficients on 1-Dry soil and 2-saturated soils
If you had time I would appreciate it.
Best regards
Nasser
Nasser,
I generally use Rayleigh damping to damp out high frequency noises in the analysis results. Please note that the models that I have uploaded in this post is just an example models and you would need to make some changes per the conditions of the problem in hand. In dry soils I think you don’t need Rayleigh damping because the numerical damping that is introduced to the model by Newmark method or similar methods are sufficient to damp out noises. In saturated soils when there is liquefaction, I have had few cases that without Rayleigh damping some noises generate in time history of acceleration so I had to introduce 1 to 2% Rayleigh damping to get rid of noises. You need to run a few scenarios and see how much damping you need to eliminate noises. Regarding the periods that should be used to calculate Rayleigh parameters please see this post.