Hi I am university of Toronto student and I am trying to build a 3D soil model for future earthquake analyses. I have tried building a simple soil 3D model fixed at one end and applied 2 unit loads at the other end. However, when I compare the results from Opensees from my hand calculations and other programs I don't get the same answer. Can someone help me with this attached below is my code in opensees, the expected answer is around 4.3*10-4 but I am currently getting 3.29*10-4.
wipe
model BasicBuilder -ndm 3 -ndf 3
#-----------------------------------------------------------------------------------------
# 1. DEFINE ANALYSIS PARAMETERS
#-----------------------------------------------------------------------------------------
wipe
set soilThick 1.0
#---MATERIAL PROPERTIES
# soil mass density (Mg/m^3)
set rho 1.6
# soil shear wave velocity (m/s)
set Vs 201.5
# soil shear modulus (kPa)
set G 60000.0
# poisson's ratio of soil
set nu 0.0
# soil elastic modulus (kPa)
set E 150000.0
# number of elements in each direction
set nElemX 2
set nElemY 1
set nElemZ 1
set nElemx(1) 1
set nElemx(2) 1
set nElemy(1) 1
set nElemz(1) 1
set sElemx(1) 1.0
set sElemx(2) 1.0
set sElemy(1) 1.0
set sElemz(1) 1.0
set numLayers $nElemY
# number of nodes in horizontal direction
set nTotalnodesH [expr ($nElemZ+1)* ($nElemX+1)]
# number of nodes in vertical direction in each layer
set nNodeT 0
for {set k 1} {$k <= $numLayers} {incr k 1} {
set nNodeY($k) [expr $nTotalnodesH*$nElemy($k)]
puts "number of nodes in layer $k: $nNodeY($k)"
set nNodeT [expr $nNodeT + $nNodeY($k)]
}
set surface [expr $numLayers + 1]
set nNodeY($surface) [expr $nTotalnodesH * 1]
puts "number of nodes on surface: $nNodeY($surface)"
set nNodeT [expr $nNodeT + $nNodeY($surface)]
puts "total number of nodes: $nNodeT"
set yCoord 0.0
set xCoord 0.0
set zCoord 0.0
set count 1
for {set k 1} {$k <= 2} {incr k 1} {
node $count 0.0 $yCoord 0.0
node [expr $count+1] [expr $xCoord+1] $yCoord $zCoord
node [expr $count+2] [expr $xCoord+2] $yCoord $zCoord
node [expr $count+3] $xCoord $yCoord [expr $zCoord+1]
node [expr $count+4] [expr $xCoord+1] $yCoord [expr $zCoord+1]
node [expr $count+5] [expr $xCoord+2] $yCoord [expr $zCoord+1]
set yCoord [expr $yCoord + $sElemy(1)]
set count [expr $count + $nNodeY(1)]
}
#define soil material
nDMaterial ElasticIsotropic 1 $E $nu $rho;
for {set q 4} {$q <=5} {incr q 1} {
element stdBrick $q $q [expr $q+1] [expr $q-2] [expr $q-3] [expr $q+6] [expr $q+7] [expr $q+4] [expr $q+3] 1
}
fix 1 1 1 1
fix 4 1 1 1
fix 7 1 1 1
fix 10 1 1 1
# create a Linear TimeSeries with a tag of 1
timeSeries Linear 1
pattern Plain 1 1 {
# Create the nodal load - command: load nodeID xForce yForce
load 12 0 -1 0
load 9 0 -1 0
}
## Create the system of equation
system BandSPD
#
numberer Plain
#
## Create the constraint handler, a Plain handler is used as homo constraints
constraints Transformation
#
## Create the integration scheme, the LoadControl scheme using steps of 1.0
integrator LoadControl 1.0
#
## Create the solution algorithm, a Linear algorithm is created
algorithm Linear
#
## create the analysis object
analysis Static
# create a Recorder object for the nodal displacements at node 9
recorder Node -file example.out -time -node 9 -dof 1 2 3 disp
analyze 1
puts "node 9 displacement: [nodeDisp 9]"
print node 9
puts "node 12 displacement: [nodeDisp 12]"
print node 12
puts "node 1 displacement: [nodeDisp 1]"
print node 1
source DisplayPlane.tcl; # Including procedure
source DisplayModel3D.tcl;
DisplayModel3D NodeNumbers 20 20 20 1200 800; ## options: ModeShape , NodeNumbers , #DeformedShape
wipe;
Simple 3D soil cantilever model.
Moderators: silvia, selimgunay, Moderators