Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Foundation p-y springs/stiffness variation in 1D FEA

Status
Not open for further replies.

LRJ

Civil/Environmental
Feb 28, 2016
269
Hi everyone! This is my first post here, so I hope it's a good one!

I am looking to write a 1D FEA program to perform laterally loaded pile analyses and I wanted to know how best to incorporate the foundation p-y springs. I've got a working 1D FEA spreadsheet which allows variable stiffness at each node of the beam (or, in this case, against the pile) and I am using this as a basis for my work. I suspect the p-y springs need to be linked to the stiffness somehow, but I'm not sure how.

[EDIT: Sorry, for those not accustomed to soil modelling, the load-displacement response of a soil element is defined by its lateral load (p)-displacement (y) curves. So the resistance will vary depending on how much displacement has taken place]

I've tried linking the load-deflection p-y values and turned on iterative calculations, but this creates problems, particularly when there are a large number of elements (inevitably one iteration will create an error and then destroy the whole global stiffness matrix irrevocably). Excel's iterative calculations don't seem to create a workable solution.

Is there a way of incorporating displacement-dependency on the soil stiffness (supposing I am right that the stiffness is what is controlling this)?

And yes, before anyone says anything, I realise there are better programs out there to do this (e.g. MATLAB), but I wanted something easily portable that others could more readily pick up and understand.

Cheers for any help and advice.

Kind regards,

LRJ.
 
Replies continue below

Recommended for you

You have an excellent spreadsheet that already does that (it's a link to the website of a member of this forum, so full credit goes to him, of course):

I've developed my own just for elasto-platic behaviour, that you can find on the following link (fully open source as well, use it and modify it as you wish):
The VBA code is more or less well documented within the code itself (as I have the attention span of a fish in a bowl...), so you can get an idea of what the program is doing.
I first started with an elastic version and then upgraded it for the EP version. You can get the elastic spreadsheet on the following link:

Most of the time, for the projects I'm involved in, I can't get geotechnical information that is sufficiently accurate for the generation of a full set of site-specific non-linear curves. In this way, I normally use just an elasto-plastic analysis, with stiffnesses and limits on passive pressures estimated from the results of the site and lab investigations. This tends to produce acceptable results and compare quite well with the laterally loaded pile test results within the area which I operate.

Hope it helps.

ASC
 
Thanks a lot for those - I'll check them out and see if I can get to grips with how to implement them in my spreadsheet. For my own benefit I'd like to implement them.

Out of interest, who is the person who developed LatPile on this board?

I've got a good book called 'Programming the Finite Element Method' - I'm sure many of you have heard of it as it seems to be commonly cited - and it is what I'm using as a basis. However, I imagine there must be some additional things that could be implemented, so it'd be good to see what else is out there.

Cheers,

LRJ.
 
Out of interest, who is the person who developed LatPile on this board?

That's me.

Feel free to ask if you have any questions.

Have a look around the blog as well. You might be interested in the frame analysis spreadsheets (which use a lot of stuff from the 'Programming the Finite Element Method' book).


Doug Jenkins
Interactive Design Services
 
Hi IDS,

Firstly, great spreadsheet! Am I right in thinking the LatPilePY spreadsheet is the most up to date version/most alike to what I am trying to create?

I have a few questions after having a quick look:
[ol 1]
[li]How have you incorporated the p-y springs into the code? How does the stiffness-deflection-stiffness iteration work? A flow chart might be useful, but I appreciate that might be asking too much.[/li]
[li]I noticed there were some weighting values in one of the subroutines. Where did those numbers come from? Do you have a reference? Is it somewhere in the 'Programming the Finite Element Method' book?[/li]
[li]Similarly, where did you get the method for concrete and steel post-yield behaviour from?[/li]
[li]Would you ever recommend not using 6 integration points? From my (limited) understanding of FEM, I was led to believe that more integration points lead to greater accuracy.[/li]
[/ol]

That's all the questions I could think of for now. Maybe I'll have more the further I delve into it...

Cheers,

LRJ.
 
Firstly, great spreadsheet! Am I right in thinking the LatPilePY spreadsheet is the most up to date version/most alike to what I am trying to create?

The download link is the latest version (1.04). At the bottom of the post there are links to more recent posts.

1.How have you incorporated the p-y springs into the code? How does the stiffness-deflection-stiffness iteration work? A flow chart might be useful, but I appreciate that might be asking too much.

After each iteration the array of node deflections (YA) is passed to the PY_624 function, that returns an array of spring stiffness values, PYA:
PYA = PY_624(SoilTabs, YA, Loads, PYCurveA, KOption)
The values in PYA are then copied to the third column of the FSA array, which is used in the BoEF routine.
It would be nice to document these things more thoroughly, but I'm afraid that other things have priority at the moment.

2.I noticed there were some weighting values in one of the subroutines. Where did those numbers come from? Do you have a reference? Is it somewhere in the 'Programming the Finite Element Method' book?

Yes, the weights are generated in the sample subroutine, which is called by the BoEF routine, which (if I recall correctly) is pretty well a direct translation of the Fortran code in the Smith and Griffiths book. The weights come from the book, but they are standard Gauss integration values avaialable from many sources on the Web.

3.Similarly, where did you get the method for concrete and steel post-yield behaviour from?

The reinforced concrete stiffness calculations come from my own routines to be found in the "RC Design Functions" spreadsheet, which is documented elsewhere on the blog. The Downloads by category is probably the best place to look. Note that the calculation is for non-linear behaviour after concrete cracking, it does not take account of reinforcing steel yielding. For steel sections it assumes elastic behaviour, based on the EI value.

4.Would you ever recommend not using 6 integration points? From my (limited) understanding of FEM, I was led to believe that more integration points lead to greater accuracy.

I would have to remind myself how the BoEF routine works, but from a quick look it seems to applying the integration, using six points, to each element of the pile, so that's actually a much higher level of precision than typically used in frame analysis, which uses a cubic shape function. The precision would be much higher than is available for materials properties, so I don't see any benefit in increasing the number of integration points






Doug Jenkins
Interactive Design Services
 
Thanks for the answers. That's a great help.

Regarding integration points, I was aluding to when (if ever) it would be more appropriate to use less integration points? As I say, my understanding was that more is better, so 6 is always the better option rather than two.
 
Hi again. I've got some code working now - LatPilePY was very useful as an example - and I just have one issue remaining regarding the implementation of p-y curves.

Basically I want to be able to have two springs at a single node (to model soil layer changes) and wondered how best to implement this as in my current code I would need to apply a small offset to prevent the element lengths being 0.

My current thinking is that I should just skip elements with zero length and apply the same displacement, etc. as the adjacent node (i.e. the node at the same depth). I think I would need to think carefully about what soil reaction/stiffness to use at this depth though - would it be an average? Has anyone else implemented such things?
 
LRJ - you could apply a single spring with the average stiffness of the two layers, but I really think that's getting over refined. I'd just apply the stiffness of the softer layer.

Doug Jenkins
Interactive Design Services
 
I'm not sure if an average of the springs is always appropriate given that the form of the p-y curves can differ considerably between layers. Applying the 'softer' spring may also not be conservative in all cases, e.g. fatigue limit state (FLS) load cases.

Having the second spring at a small offset is usually not a problem, though if the offset is very small then this can cause anomalies (I guess because the element length is a divisor in the stiffness matrix, so small element lengths result in large values in the stiffness matrix?). I'd just like an elegant solution. It'd also serve as a good basis if I wanted to add a base shear spring to my model.

I'm not sure of the best way to go about this. I have seen other software implement 'double nodes', though I'm not sure how that was done. I just wondered if anyone else had done this.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor