About Base sliding

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

Moderators: silvia, selimgunay, Moderators

Post Reply
shiro
Posts: 59
Joined: Tue May 26, 2020 1:19 am

About Base sliding

Post by shiro » Thu Sep 03, 2020 8:55 pm

I am working on the MDOF model for basic sliding.

It is a two-story building with a sliding layer at the bottom to create a three-mass system.

The Coulomb friction coefficient was set to 0.4 using the flatSliderBearing element model.

The unit is kN, m, and sec. Since sliding is from 0.01mm, kinit=200kN*0.4/0.01mm=8,000,000kn/m.

Since the acceleration waveform is gal, multiply it by 0.01 to make it in m units.

I wrote and executed the following code.
However, when the slip amount exceeded 1 m, the stress was not transmitted to Nodes 3 and 4,
and the stress, velocity, and acceleration at NODE2 and element1 of the sliding layer were all zero.

If you understand the cause, I would appreciate it if you could let me know.


# ------------------------------
# Start of model generation
# ------------------------------
# Create ModelBuilder (with two-dimensions and 3 DOF/node)

# All the units are in kN, m, sec

model BasicBuilder -ndm 2 -ndf 3

source DisplayModel2D.tcl; # procedure for displaying a 2D perspective of model
source DisplayPlane.tcl; # procedure for displaying a plane in a model

source units.tcl;


set GMdir "./GMfiles/"; # ground-motion file directory


#####################################################################
# Define Analysis Type #
######################################################################

# Define type of analysis: "pushover" = pushover; "dynamic" = dynamic

set analysisType "dynamic";

#set analysisType "cyclic";

#set analysisType "pushover";

#set analysisType "static";

if {$analysisType == "static"} {
set dataDir Concentrated-Static-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
if {$analysisType == "pushover"} {
set dataDir Concentrated-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
if {$analysisType == "cyclic"} {
set dataDir Concentrated-Cyclic-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
if {$analysisType == "dynamic"} {
set dataDir Concentrated-Dynamic-Output; # name of output folder
file mkdir $dataDir; # create output folder
}


# Define geometry for model
# -------------------------
set g 9.81 ; # m/sec2

set P1 [expr 20.4*$g] ; # kN
set P2 [expr 10.2*$g] ; # kN
set P3 [expr 10.2*$g] ; # kN

set mass1 [expr $P1/$g] ; # ton
set mass2 [expr $P2/$g] ; # ton
set mass3 [expr $P3/$g] ; # ton

node 1 0.0 0.0
node 2 0.0 0.0 -mass $mass1 0.0 0.0
node 3 0.0 0.0 -mass $mass2 0.0 0.0
node 4 0.0 0.0 -mass $mass3 0.0 0.0

fix 1 1 1 1
fix 2 0 1 1
fix 3 0 1 1
fix 4 0 1 1

# Define material models
# ----------------------

set kv 80000.0

uniaxialMaterial Elastic 1 $kv

uniaxialMaterial Elastic 2 0.0

# Define friction model for FP elements
# -------------------------------------
# frictionModel Coulomb tag mu

frictionModel Coulomb 10 0.4

# Define material models

# Physical and mechanical characteristics of SWP :

set F0 118.64827 ;# kN
set FI 23.72965 ;# kN
set DU 0.1369 ;# m
set S0 10270.74 ;# kN/m
set R1 0.058
set R2 -0.050
set R3 1.00
set R4 0.020
set alph 0.60
set bet 1.10

# material ID

set matID 3

uniaxialMaterial SAWS $matID $F0 $FI $DU $S0 $R1 $R2 $R3 $R4 $alph $bet


## Materials

set F0 118.64827 ;# kN
set FI 23.72965 ;# kN
set DU 0.1369 ;# m
set S0 10270.74 ;# kN/m
set R1 0.058
set R2 -0.050
set R3 1.00
set R4 0.020
set alph 0.60
set bet 1.10

# material ID

set matID2 4

uniaxialMaterial SAWS $matID2 $F0 $FI $DU $S0 $R1 $R2 $R3 $R4 $alph $bet

# Define geometric transformations
# --------------------------------
# geomTransf type tag
geomTransf Linear 1


# Define elements
# ---------------

element flatSliderBearing 1 1 2 10 8000000.0 -P 1 -Mz 2 -orient 0. 1. 0. 1. 0. 0.;

element zeroLength 2 2 3 -mat 3 -dir 1

element zeroLength 3 3 4 -mat 4 -dir 1


# ------------------------------
# End of model generation
# ------------------------------

# ------------------------------
# Start of analysis generation
# ------------------------------
# create the system of equation
system BandGeneral
# create the DOF numberer
numberer Plain
# create the constraint handler
constraints Plain
# create the convergence test
test NormDispIncr 1.0e-12 10
# create the integration scheme
integrator LoadControl 0.1
# create the solution algorithm
algorithm Newton
# create the analysis object
analysis Static
# ------------------------------
# End of analysis generation
# ------------------------------

# ------------------------------
# Perform the gravity analysis
# ------------------------------
# perform the gravity load analysis, requires 10 steps to reach the load level
#analyze 10
#puts "\nGravity load analysis completed";

# set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
remove recorders


# ------------------------------
# Start of recorder generation
# ------------------------------
# create a Recorder object for the nodal displacements at node 2
recorder Node -file $dataDir/Node_Disp.out -time -node 3 4 -dof 1 disp
recorder Element -file $dataDir/Elmt_Force.out -time -ele 2 3 localForce
recorder Element -file $dataDir/Elmt_localForce.out -time -ele 2 3 localForce
recorder Node -file $dataDir/Vbase.out -time -node 1 -dof 1 reaction;

recorder Node -file $dataDir/Node_Vel.out -time -node 3 4 -dof 1 vel
recorder Node -file $dataDir/Node_Acc.out -time -node 3 4 -dof 1 accel
recorder Node -file $dataDir/Node_AbsAcc.out -timeSeries 3 4 -time -node 1 2 3 4 -dof 1 accel

recorder Element -file $dataDir/Elmt_Frc.out -time -ele 1 force
recorder Element -file $dataDir/Elmt_Def.out -time -ele 1 basicDeformation
recorder Element -file $dataDir/Elmt_N.out -time -ele 1 frictionModel normalForce
recorder Element -file $dataDir/Elmt_Vel.out -time -ele 1 frictionModel vel
recorder Element -file $dataDir/Elmt_Ff.out -time -ele 1 frictionModel frictionForce
recorder Element -file $dataDir/Elmt_COF.out -time -ele 1 frictionModel COF


set Tol 1e-8;


#######################################################################################
# #
# Analysis Section #
# #
#######################################################################################

######################################################################
# Time History/Dynamic Analysis #
######################################################################

if {$analysisType == "dynamic"} {
puts "Running dynamic analysis..."

set maxNumIter 100;
set printFlag 0;
set NewmarkGamma 0.5;
set NewmarkBeta 0.25;
set TestType EnergyIncr;

set algorithmType NewtonLineSearch;

# source in procedures
source ReadSMDfile.tcl; # procedure for reading GM file and converting it to proper format


# Uniform Earthquake ground motion (uniform acceleration input at all support nodes)
set GMdirection 1; # ground-motion direction

set GMfile "BCJ-L2" ; # ground-motion filenames

set GMfact [expr 0.01 * 1.0]; # ground-motion scaling factor

# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 120.00 *$sec]; # maximum duration of ground-motion analysis

# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator


# display deformed shape:
set ViewScale 5;
DisplayModel2D DeformedShape $ViewScale ; # display deformed shape, the scaling factor needs to be adjusted for each model


# ------------ define & apply damping
# RAYLEIGH damping parameters, Where to put M/K-prop damping, switches (http://opensees.berkeley.edu/OpenSees/m ... l/1099.htm)
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # damping ratio
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;
set nEigenI 1; # mode 1
set nEigenJ 3; # mode 3

set lambdaN [eigen -fullGenLapack [expr $nEigenJ]]
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping

# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Uniform Earthquake excitation
set IDloadTag 400; # for uniformSupport excitation
# Uniform EXCITATION: acceleration input
set inFile $GMdir$GMfile.at2
set outFile $GMdir$GMfile.g3; # set variable holding new filename (PEER files have .at2/dt2 extension)
ReadSMDFile $inFile $outFile dt; # call procedure to convert the ground-motion file
#set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts -- ACCELERATION TH

set GMfatt [expr 1.0*$GMfact]; # data in input file is in gal Unifts -- ACCELERATION TH

set AccelSeries "Series -dt $dt -filePath $outFile -factor $GMfatt"; # time series information
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ; # create Unifform excitation

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful

if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
# test NormDispIncr $Tol 1000 0

test NormDispIncr $Tol 4000 0

algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
# algorithm Broyden 8

algorithm Broyden 500

set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}

}
}; # end if ok !0

puts "Ground Motion Done. End Time: [getTime]"

};

selimgunay
Posts: 913
Joined: Mon Sep 09, 2013 8:50 pm
Location: University of California, Berkeley

Re: About Base sliding

Post by selimgunay » Thu Sep 03, 2020 9:40 pm

You have 120 sec of analysis time, what is the ground motion duration? At some point, the free vibration probably stops also and you don't see any accelerations.

shiro
Posts: 59
Joined: Tue May 26, 2020 1:19 am

Re: About Base sliding

Post by shiro » Fri Sep 04, 2020 4:03 am

Dear selimgunay

Thank you for your prompt reply.

I changed the seismic motion to H-E12140.AT2 of 50 seconds and calculated it, but the same result was obtained.

selimgunay
Posts: 913
Joined: Mon Sep 09, 2013 8:50 pm
Location: University of California, Berkeley

Re: About Base sliding

Post by selimgunay » Fri Sep 04, 2020 6:02 am

Did you change the TmaxAnalysis in

set TmaxAnalysis [expr 120.00 *$sec];

shiro
Posts: 59
Joined: Tue May 26, 2020 1:19 am

Re: About Base sliding

Post by shiro » Fri Sep 04, 2020 10:52 am

Dear selimgunay

I changed bellow,but the same result was obtained.

set GMfile "H-e12140" ; # ground-motion filenames
set GMfact 1.0; # ground-motion scaling factor

set TmaxAnalysis [expr 50.00 *$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec

set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts -- ACCELERATION TH

selimgunay
Posts: 913
Joined: Mon Sep 09, 2013 8:50 pm
Location: University of California, Berkeley

Re: About Base sliding

Post by selimgunay » Fri Sep 04, 2020 11:05 am

Then it may be related to the SAWS material constitutive model. Could you try increasing the slope R2 to see if the response will become zero at a smaller displacement?

shiro
Posts: 59
Joined: Tue May 26, 2020 1:19 am

Re: About Base sliding

Post by shiro » Fri Sep 04, 2020 1:31 pm

Dear selimgunay

Thank you for reply.

I try increasing the slope R2 -0.07,-0.1,-1.1 and -0.01,but the same result was obtained.

selimgunay
Posts: 913
Joined: Mon Sep 09, 2013 8:50 pm
Location: University of California, Berkeley

Re: About Base sliding

Post by selimgunay » Fri Sep 04, 2020 5:02 pm

Then it should be related to the flatSliderBearing element. Maybe you can try a zerolength element to check if it is due to the element.

shiro
Posts: 59
Joined: Tue May 26, 2020 1:19 am

Re: About Base sliding

Post by shiro » Fri Sep 04, 2020 8:54 pm

Dear selimgunay

Thank you for reply.

I changed the bottom sliding layer to a zerolength element as follows.

The correct resilience characteristics were obtained.


#element flatSliderBearing 1 1 2 10 80000.0 -P 1 -Mz 2 -orient 0. 1. 0. 1. 0. 0.;

element zeroLength 1 1 2 -mat 3 -dir 1

Post Reply