3D modeling of stress controlled simple shear test

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
sadeghihabib
Posts: 5
Joined: Tue Jan 30, 2018 1:24 am
Contact:

3D modeling of stress controlled simple shear test

Post by sadeghihabib » Sat Feb 24, 2018 3:29 am

Dear All
I have been modeling 3D undrained cyclic simple shear test in the last month
I am using Dafalias Manzari 2004 constitutive model and before modeling 3D cyclic simple shear test, i modelled 2 centrifuge tests and they yielded really good results, but unfortunately when i model this test, the results of pore pressure and shear strains are not ok, I think there is something wrong with the 3D brick elements in opensees that it does not yield good results,
Below is my Tcl scipt, I wish someone could tell what is wrong with the stress controlled load application in SSPbrickUP elements. and help me get my model fine.
Thanks!

wipe

# ------------------------ #
# Test Specific parameters #
# ------------------------ #
# Confinement Stress

set Atop [expr 1.0*1.0]
set Aside [expr 1.0*1.0]

set Pl 200.0 ; #kPa
set Fl [expr $Pl*$Aside/4] ; #Lateral element surface unit force(kN) (positive)
set nFl [expr -1*$Fl] ; #Lateral element surface unit force(kN) (negative)

set Pv 200.0 ; #kPa
set Fv [expr $Pv*$Atop/4] ; #vertical element surface unit force(kPa) (from bottom to top dir) (positive)
set nFv [expr -1*$Fv] ; #vertical element surface unit force(kPa) (from top to bottom dir) (negative)


# Permeablity
set perm 1.0e-10
# Initial void ratio
set vR 0.8

# Rayleigh damping parameter
set damp 0.1
set omega1 0.0157
set omega2 64.123
set a1 [expr 2.0*$damp/($omega1+$omega2)]
set a0 [expr $a1*$omega1*$omega2]

# HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
# HHHHHHHHHHHHHHHHHHHHHHHHHHHCreate ModelHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
# HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

# Create a 3D model with 4 Degrees of Freedom
model BasicBuilder -ndm 3 -ndf 4

# Create nodes
node 1 1.0 0.0 0.0
node 2 1.0 1.0 0.0
node 3 0.0 1.0 0.0
node 4 0.0 0.0 0.0
node 5 1.0 0.0 1.0
node 6 1.0 1.0 1.0
node 7 0.0 1.0 1.0
node 8 0.0 0.0 1.0

# Create Fixities
fix 1 0 1 1 1
fix 2 0 0 1 1
fix 3 1 0 1 1
fix 4 1 1 1 1
fix 5 0 0 0 1
fix 6 0 0 0 1
fix 7 0 0 0 1
fix 8 0 0 0 1


#equalDOF 5 6 1 2 3 4
#equalDOF 5 8 1 2 3 4
#equalDOF 8 7 1 2 3 4



# Create material
# ManzariDafalias tag G0 nu e_init Mc c lambda_c e0 ksi P_atm m h0 ch nb A0 nd z_max cz Den
nDMaterial ManzariDafalias 1 125 0.05 $vR 1.25 0.712 0.019 0.934 0.7 100 0.01 7.05 0.968 1.1 0.704 3.5 4 600 1.42

# Create element
# SSPbrickUP tag i j k l m n p q matTag fBulk fDen k1 k2 k3 void alpha <b1 b2 b3>
element SSPbrickUP 1 1 2 3 4 5 6 7 8 1 2.2e6 1.0 $perm $perm $perm $vR 1.5e-9

# Create recorders
recorder Node -file disp.out -time -nodeRange 1 8 -dof 1 2 3 disp
recorder Node -file press.out -time -nodeRange 1 8 -dof 4 vel
recorder Element -file stress.out -time stress
recorder Element -file strain.out -time strain
recorder Element -file alpha.out -time alpha
recorder Element -file fabric.out -time fabric


# Create analysis
constraints Penalty 1.0e18 1.0e18
test NormDispIncr 1.0e-5 20 1
algorithm Newton
numberer RCM
system BandGeneral
integrator Newmark 0.5 0.25
rayleigh $a0 0. $a1 0.0
analysis VariableTransient

# Apply confinement pressure

pattern Plain 1 {Series -time {0 10000 1e10} -values {0 1 1} -factor 1} {
load 1 $nFl 0.0 0.0 0.0
load 2 $nFl $nFl 0.0 0.0
load 3 0.0 $nFl 0.0 0.0
load 4 0.0 0.0 0.0 0.0
load 5 $nFl $Fl $nFv 0.0
load 6 $nFl $nFl $nFv 0.0
load 7 $Fl $nFl $nFv 0.0
load 8 $Fl $Fl $nFv 0.0
}

analyze 100 100

# Let the model rest and waves damp out
analyze 50 100

# Close drainage valves
for {set x 1} {$x<9} {incr x} {
remove sp $x 4
}
analyze 50 100

# Apply undrained cyclic shear loading

set CSRx 0.159
set MaxTowx [expr $CSRx*$Pv]
set MaxShearForcex [expr $MaxTowx*$Atop/4]
set periodx 4.0
timeSeries Trig 20 0.0 20.0 2.0 -factor $MaxShearForcex

pattern Plain 2 20 {

load 5 1.0 0.0 0.0 0.0
load 6 1.0 0.0 0.0 0.0
load 7 1.0 0.0 0.0 0.0
load 8 1.0 0.0 0.0 0.0

}

set CSRy 0.159
set MaxTowy [expr $CSRy*$Pv]
set MaxShearForcey [expr $MaxTowy*$Atop/4]
set periody 4.0
timeSeries Trig 30 0.0 20.0 2.0 -factor $MaxShearForcey

pattern Plain 3 30 {

load 5 0.0 1.0 0.0 0.0
load 6 0.0 1.0 0.0 0.0
load 7 0.0 1.0 0.0 0.0
load 8 0.0 1.0 0.0 0.0

}


# Set number and length of (pseudo)time steps
set dtDyn 0.00100
set analT 20.0000
set incnum [expr floor($analT/$dtDyn)]

puts "Start analysis"
set startT [clock seconds]

for {set numIncr 1} {$numIncr <= $incnum } {incr numIncr 1} {
puts "##### Seismic excitation step : $numIncr #####";
set OK [analyze 1 $dtDyn [expr $dtDyn/100.0] $dtDyn 20]
if {$OK != 0} {
error " ### analysis Faild ### "
}
}


set endT [clock seconds]
puts "loading analysis execution time: [expr $endT-$startT] seconds."

wipe
Habibollah Sadeghi
MSc Student of Geotechnical Engineering
Sharif University of technology
Tehran, Iran

Post Reply