## how to attach soil springs to the nodes of a pile and raft??

A forum dedicated to users with questions regarding soil materials and elements.

forum currently locked

Moderator: Moderators

shankartayal
Posts: 7
Joined: Tue Feb 08, 2011 1:25 am
Location: Bhubaneswar, India
Contact:

### how to attach soil springs to the nodes of a pile and raft??

I am working on a soil pile interaction analysis. I have done the modeling of a raft pile foundation and a 3d superstructure resting on it. Now i want to attach soil springs to the nodes of the piles and raft but i am not able to find how to do that.
Here is the code i wrote fore the modeling of pile and superstructure now how can i attach soil spring to the nodes of the piles

#wiping out all previous declarations
wipe;
#define model dmensions and numbers of degree of freedoms per node
model basic -ndm 3 -ndf 6
#make output directory
file mkdir output;
#material definition for raft
nDMaterial ElasticIsotropic 1 2000 .25
#material definition for the reinforced concrete pile section
#pile section is assumed to be circular
#there are 4 steel bars put longitudinally across the pile at equal angular spacing
uniaxialMaterial Concrete01 2 -15.0 0.002 -13.0 0.06
uniaxialMaterial Steel01 3 250 100000 0.01
#pile section definition
section Fiber 1 {
patch circ 2 4 4 0 0 0.0 150.0 0 360
layer circ 3 4 615.0 0.0 0.0 100.0 0 360
}
#defining torsional stiffness for the pile section
uniaxialMaterial Elastic 4 2000
#aggregating the section for flexural as well as torsional stiffness
section Aggregator 2 4 T -section 1
#section Elastic 2 2000 70650 397406250 397406250 800 794812500
##meshing of raft supported over the piles
set eleArgs "1"
set element bbarBrick
block3D 5 5 1 1 1 \$element \$eleArgs {
1 -2500 -2500 0
2 2500 -2500 0
3 2500 2500 0
4 -2500 2500 0
5 -2500 -2500 300
6 2500 -2500 300
7 2500 2500 300
8 -2500 2500 300
}
#first pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+80] -500 -500 [expr -1000*\$a]
}
#second pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+90] 500 -500 [expr -1000*\$a]
}
#third pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+100] -500 500 [expr -1000*\$a]
}
#forth pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+110] 500 500 [expr -1000*\$a]
}
#superstructur nodes definition
node 121 -1500 -1500 3000
node 122 1500 -1500 3000
node 123 -1500 1500 3000
node 124 1500 1500 3000

#transformation matrix
geomTransf Linear 1 -1 0 0
geomTransf Linear 2 0 1 0
geomTransf Linear 3 0 0 1
#boundary conditions for nodes
for { set a 1 } { \$a <= 120 } { incr a } {
fix \$a 1 1 1 1 1 1
}
# superstructure modelling
element elasticBeamColumn 101 44 121 9000 30000 12000 675000000 675000000 1350000000 1
element elasticBeamColumn 102 47 122 9000 30000 12000 1350000000 675000000 1350000000 1
element elasticBeamColumn 103 62 123 9000 30000 12000 1350000000 675000000 1350000000 1
element elasticBeamColumn 104 65 124 9000 30000 12000 1350000000 675000000 1350000000 1
element elasticBeamColumn 105 121 122 9000 30000 12000 1350000000 675000000 1350000000 2
element elasticBeamColumn 106 121 123 9000 30000 12000 1350000000 675000000 1350000000 3
element elasticBeamColumn 107 122 124 9000 30000 12000 1350000000 675000000 1350000000 3
element elasticBeamColumn 108 123 124 9000 30000 12000 1350000000 675000000 1350000000 2
# pile modelling
element elasticBeamColumn 111 15 81 2 1
element elasticBeamColumn 121 16 91 2 1
element elasticBeamColumn 131 21 101 2 1
element elasticBeamColumn 141 22 111 2 1
for {set l 0} { \$l <= 3 } { incr l } {
for { set k 1 } { \$k <= 9 } { incr k } {
element elasticBeamColumn [ expr 111+(10*\$l)+\$k ] [ expr 80+(10*\$l)+\$k ] [ expr 81+(10*\$l)+\$k ] 2 1
}
}
#taking nodes and elements information as output
for { set i 1 } { \$i <= 124} { incr i } {
print output/nodes.txt -node \$i
}
for { set i 1 } { \$i <= 200} { incr i } {
print output/elements.txt -ele \$i
}
Shankar Tayal
School of Infrastructure
Indian Institute of Technology, Bhubaneswar
INDIA

fmk
Posts: 5866
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

### Re: how to attach soil springs to the nodes of a pile and ra

use the equalDOF command .. here is an example i suggest you look at.
[url]
http://opensees.berkeley.edu/wiki/index ... Foundation
[/url]

shankartayal
Posts: 7
Joined: Tue Feb 08, 2011 1:25 am
Location: Bhubaneswar, India
Contact:

### Re: how to attach soil springs to the nodes of a pile and ra

thanx for your kind help fmk
i did the same but still i am getting some error in analysis
here is my code

#wiping out all previous declarations
wipe;
#spring nodes created with ndm 3 and ndf 3
model basic -ndm 3 -ndf 3
file mkdir output;
#horizontal soil spring nodes of pile 1
for { set a 1 } { \$a <= 10} { incr a } {
#slave nodes
node [expr \$a+200] -500 -500 [expr -1000*\$a]
#fixed nodes
node [expr \$a+240] -500 -500 [expr -1000*\$a]
}
#horizontal soil spring nodes of pile 2
for { set a 1 } { \$a <= 10} { incr a } {
#slave nodes
node [expr \$a+210] 500 -500 [expr -1000*\$a]
#fixed nodes
node [expr \$a+250] 500 -500 [expr -1000*\$a]
}
#horizontal soil spring nodes of pile 3
for { set a 1 } { \$a <= 10} { incr a } {
#slave nodes
node [expr \$a+220] -500 500 [expr -1000*\$a]
#fixed nodes
node [expr \$a+260] -500 500 [expr -1000*\$a]
}
#horizontal soil spring nodes of pile 4
for { set a 1 } { \$a <= 10} { incr a } {
#slave nodes
node [expr \$a+230] 500 500 [expr -1000*\$a]
#fixed nodes
node [expr \$a+270] 500 500 [expr -1000*\$a]
}
#vertical soil spring nodes for lower portion of the raft
for { set j 1 } { \$j <= 6 } { incr j } {
for { set i 1 } { \$i <= 6 } { incr i } {
#slave nodes
node [expr 300+6*(\$j-1)+\$i] [expr -2500+1000*(\$i-1)] [expr -2500+1000*(\$j-1)] 0
#fixed nodes
node [expr 340+6*(\$j-1)+\$i] [expr -2500+1000*(\$i-1)] [expr -2500+1000*(\$j-1)] 0
}
}
#soil spring nodes for the upper portion of raft for corner nodes
for { set a 1 } { \$a <= 6} { incr a } {
#slave nodes
node [expr \$a+380] 2500 [expr -2500+1000*(\$a-1)] 300
#fixed nodes
node [expr \$a+400] 2500 [expr -2500+1000*(\$a-1)] 300
}
for { set a 1 } { \$a <= 6} { incr a } {
#slave nodes
node [expr \$a+390] -2500 [expr -2500+1000*(\$a-1)] 300
#fixed nodes
node [expr \$a+410] -2500 [expr -2500+1000*(\$a-1)] 300
}

#constranints on soil spring nodes coneected with piles
for { set a 201 } { \$a <= 240 } { incr a } {
fix \$a 0 1 1
}
for { set a 241 } { \$a <= 280 } { incr a } {
fix \$a 1 1 1
}
#raft spring nodes
for { set a 301 } { \$a <= 336 } { incr a } {
fix \$a 1 1 0
}
for { set a 341 } { \$a <= 376 } { incr a } {
fix \$a 1 1 1
}
#soil spring nodes coneected with piles
for { set a 381 } { \$a <= 400 } { incr a } {
fix \$a 0 1 1
}
for { set a 401 } { \$a <= 420 } { incr a } {
fix \$a 1 1 1
}

#soil material definition
uniaxialMaterial PySimple1 5 2 10 0.005 0.0 0.0
uniaxialMaterial TzSimple1 6 2 10 0.005 0.0 0.0
uniaxialMaterial QzSimple1 7 2 10 0.005 0.0 0.0

#zerolength elements definition
#zerolength elements at 4 pile tips
element zeroLength 210 210 250 -mat 5 7 -dir 1 3
element zeroLength 220 220 260 -mat 5 7 -dir 1 3
element zeroLength 230 230 270 -mat 5 7 -dir 1 3
element zeroLength 240 240 280 -mat 5 7 -dir 1 3
#other elments of the 4 piles
for { set b 1 } { \$b <= 4 } { incr b } {
for { set a 1 } { \$a <= 9 } { incr a } {
element zeroLength [expr 200+\$a+10*(\$b-1)] [expr 200+\$a+10*(\$b-1)] [expr 240+\$a+10*(\$b-1)] -mat 5 6 -dir 1 3
}
}
#zerolength elements under the slab
for { set a 1 } { \$a <= 14 } { incr a } {
element zeroLength [expr 240+\$a] [expr 300+\$a] [expr 340+\$a] -mat 5 7 -dir 1 3
}
for { set a 17 } { \$a <= 20 } { incr a } {
element zeroLength [expr 240+\$a] [expr 300+\$a] [expr 340+\$a] -mat 5 7 -dir 1 3
}
for { set a 23 } { \$a <= 36 } { incr a } {
element zeroLength [expr 240+\$a] [expr 300+\$a] [expr 340+\$a] -mat 5 7 -dir 1 3
}
#zerolength elements for corners of the raft
for { set a 1 } { \$a <= 6 } { incr a } {
element zeroLength [expr 280+\$a] [expr 380+\$a] [expr 400+\$a] -mat 5 6 -dir 1 3
}
for { set a 1 } { \$a <= 6 } { incr a } {
element zeroLength [expr 290+\$a] [expr 390+\$a] [expr 410+\$a] -mat 5 6 -dir 1 3
}

#Create Pile nodes
model basic -ndm 3 -ndf 6
#first pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+80] -500 -500 [expr -1000*\$a]
}
#second pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+90] 500 -500 [expr -1000*\$a]
}
#third pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+100] -500 500 [expr -1000*\$a]
}
#forth pile nodes
for { set a 1 } { \$a <= 10} { incr a } {
node [expr \$a+110] 500 500 [expr -1000*\$a]
}
#superstructur nodes definition
node 121 -1500 -1500 3300
node 122 1500 -1500 3300
node 123 -1500 1500 3300
node 124 1500 1500 3300
#boundary conditions for pile and raft nodes
#raft nodes constraints
for { set a 1 } { \$a <= 72 } { incr a } {
fix \$a 0 1 0 1 0 1
}
#pile nodes constraints
for { set b 1 } { \$b <= 4 } { incr b } {
for { set a 81 } { \$a <= 90 } { incr a } {
fix [expr \$a+10*(\$b-1)] 0 1 0 1 0 1
}
}
#equal dof between pile nodes and soil nodes
for { set b 1 } { \$b <= 4 } { incr b } {
for { set a 1 } { \$a <= 10 } { incr a } {
equalDOF [expr 80+\$a+10*(\$b-1)] [expr 200+\$a+10*(\$b-1)] 1 3
}
}
for { set a 1 } { \$a <= 14 } { incr a } {
equalDOF [expr 0+\$a] [expr 300+\$a] 1 3
}
for { set a 17 } { \$a <= 20 } { incr a } {
equalDOF [expr 0+\$a] [expr 300+\$a] 1 3
}
for { set a 23 } { \$a <= 36 } { incr a } {
equalDOF [expr 0+\$a] [expr 300+\$a] 1 3
}
for { set a 1 } { \$a <= 6 } { incr a } {
equalDOF [expr 6*\$a] [expr 380+\$a] 1 3
}
for { set a 1 } { \$a <= 6 } { incr a } {
equalDOF [expr 1+6*(\$a-1)] [expr 390+\$a] 1 3
}

#raft material definition for raft
nDMaterial ElasticIsotropic 1 2000 .25

#material definition for the reinforced concrete pile section
#pile section is assumed to be circular
#there are 4 steel bars put longitudinally across the pile at equal angular spacing
uniaxialMaterial Concrete01 2 -15.0 0.002 -13.0 0.06
uniaxialMaterial Steel01 3 250 100000 0.01
#pile section definition
section Fiber 1 {
patch circ 2 4 4 0 0 0.0 150.0 0 360
layer circ 3 4 615.0 0.0 0.0 100.0 0 360
}
#defining torsional stiffness for the pile section
uniaxialMaterial Elastic 4 2000
#aggregating the section for flexural as well as torsional stiffness
section Aggregator 2 4 T -section 1
#meshing of raft supported over the piles
set eleArgs "1"
set element bbarBrick
block3D 5 5 1 1 1 \$element \$eleArgs {
1 -2500 -2500 0
2 2500 -2500 0
3 2500 2500 0
4 -2500 2500 0
5 -2500 -2500 300
6 2500 -2500 300
7 2500 2500 300
8 -2500 2500 300
}

#transformation matrix
geomTransf Linear 1 -1 0 0
geomTransf Linear 2 0 1 0
geomTransf Linear 3 0 0 1

# superstructure modelling
element elasticBeamColumn 101 44 121 9000 30000 12000 675000000 675000000 1350000000 1
element elasticBeamColumn 102 47 122 9000 30000 12000 1350000000 675000000 1350000000 1
element elasticBeamColumn 103 62 123 9000 30000 12000 1350000000 675000000 1350000000 1
element elasticBeamColumn 104 65 124 9000 30000 12000 1350000000 675000000 1350000000 1
element elasticBeamColumn 105 121 122 9000 30000 12000 1350000000 675000000 1350000000 2
element elasticBeamColumn 106 121 123 9000 30000 12000 1350000000 675000000 1350000000 3
element elasticBeamColumn 107 122 124 9000 30000 12000 1350000000 675000000 1350000000 3
element elasticBeamColumn 108 123 124 9000 30000 12000 1350000000 675000000 1350000000 2
# pile modelling
element elasticBeamColumn 111 15 81 2 1
element elasticBeamColumn 121 16 91 2 1
element elasticBeamColumn 131 21 101 2 1
element elasticBeamColumn 141 22 111 2 1
for {set l 0} { \$l <= 3 } { incr l } {
for { set k 1 } { \$k <= 9 } { incr k } {
element elasticBeamColumn [ expr 111+(10*\$l)+\$k ] [ expr 80+(10*\$l)+\$k ] [ expr 81+(10*\$l)+\$k ] 2 1
}
}

#taking nodes and elements information as output
for { set i 1 } { \$i <= 420} { incr i } {
print output/nodes.txt -node \$i
}
for { set i 1 } { \$i <= 300} { incr i } {
print output/elements.txt -ele \$i
}

#defining recorders
recorder Node -file output/pileDisp.out -time -nodeRange 81 120 -dof 1 3 5 -dT 0.5 disp
recorder display "model" 0 0 1000 800 -wipe
prp 10000 6000 1000
vup 0 0 1
display 2 3 100
#some load application on superstructure nodes
pattern Plain 1 Linear {
load 121 20000 0 0 0 0 0
}
#analysis strategies definition
numberer RCM
system SparseGeneral
constraints Transformation
test NormDispIncr 1e-5 20
algorithm Newton
analysis Static
analyze 600
wipe;

I rechecked it many times but i couldn't make it