Anoterh Question: How to apply ground motion to several supp
Moderators: silvia, selimgunay, Moderators
Anoterh Question: How to apply ground motion to several supp
Anoterh Question: How to apply ground motion to several supports, such as to the bases of different piers of bridge?
Thanks!
Thanks!
here is an example of that, you can only impose displacement, though:
set GroundFile "H-e12140" ; # ground-motion filenames
# read a PEER strong motion database file, extracts dt from the header and converts the file
# to the format OpenSees expects for Unifform ground motions
set outFile $GMdir$GroundFile.acc; # set variable holding new filename (PEER files have .at2 extension)
set inFile $GMdir$GroundFile.dt2
ReadSMDFile $inFile $outFile dt; # call procedure to convert the ground-motion file
set GMscale [expr $cm*$GMfact]; # data in input file is in cm Unifts -- DISPLACEMENT TH
set dispSeries "Series -dt $dt -filePath $outFile -factor $GMscale"; # time series information
pattern MultipleSupport $IDloadTagA {
set IDgm 100
groundMotion $IDgm Plain -disp $dispSeries
foreach SupNode $iSupNode {
imposedSupportMotion $SupNode $IDdofA $IDgm
}
}; # end pattern
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
here is the rest:
# determine DAMPING parameters from $xDamp --SDOF system, we already have calculated omega
set xDamp 0.02; # modal damping ratio
set alphaM 0; # stiffness-prop. RAYLEIGH damping parameter; D = alphaM*M
set betaK 0; # stiffness proportional damping; +beatK*KCurrent
set betaKcomm [expr 2.*$xDamp/$omega]; # mass-prop. RAYLEIGH damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0; # initial-stiffness proportional damping +beatKinit*Kini
puts betaKcomm$betaKcomm
rayleigh $alphaM $betaK $betaKinit $betaKcomm
# create the analysis
wipeAnalysis
constraints Transformation
numberer Plain
system SparseGeneral -piv; # Create the system of equation storage and solver
test NormDispIncr 1.0e-8 10
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
set Nsteps [expr int($TmaxGround/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]
# if analysis fails, we try some other stuff, performance is slower inside this loop
if {$ok != 0} {
source LibConvergeTime.tcl
}
set endTime [getTime]
puts doneGroundMotion...endTime$endTime
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
here is what I have:
LibConvergeTime.tcl
LibConvergeTime.tcl
# convergeTime.tcl
# ---------------------------------------------------------------------------- set up convergence
# Silvia Mazzoni, FMK, 10 May 2004
# run different analyses to find convergence for Time-driven analysis
# if analysis fails, we try some other stuff
# performance is slower inside this loop
set ok 0;
set maxT $TmaxGround
set controlTime [getTime];
test NormDispIncr 1.0e-8 20 0
while {$controlTime < $maxT && $ok == 0} {
set ok [analyze 1 $DtAnalysis]
set controlTime [getTime]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr 1.0e-8 1000 1
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test NormDispIncr 1.0e-8 20 0
algorithm Newton
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm Newton
}
}
# -------------------------------------------------------------------------------------------------------------------- end of CONVERGENCE
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104