groundmotion and uniformexitation.
Moderators: silvia, selimgunay, Moderators
groundmotion and uniformexitation.
Hi, If I apply " grounmotion " to base nodes with displacement history, should I get the same drift, if I apply uniformexitation with sequence Aceleration (displacement history derived twice) ?
thanks you.
thanks you.
-
- Posts: 112
- Joined: Thu Jun 27, 2013 11:45 am
- Location: Seattle, WA
Re: groundmotion and uniformexitation.
My understanding is that, when you use uniform excitation command, your displacement recordings will be relative. Whereas, when you use multi-support command (to input displacements), your recordings will be absolute values. Both these commands are essentially the same, and you only need to compare apples by apples.
It is very important to be mindful of the boundary conditions ("fix" command) you might have assigned to the nodes. If a node is fixed against horizontal translation and then you impose a displacement on it to simulate movement, the node will actually only be displaced 1/2 of the displacement that you input. This is because the program recognizes that the node is supposed to be fixed, so it imposes the average of the displacement you input.
In my studies, I was never able to apply movements to base of my model and recover accelerations at base! It always turned out noisy. I suggest you using accelerations with uniform excitation command.
Bests,
SK
It is very important to be mindful of the boundary conditions ("fix" command) you might have assigned to the nodes. If a node is fixed against horizontal translation and then you impose a displacement on it to simulate movement, the node will actually only be displaced 1/2 of the displacement that you input. This is because the program recognizes that the node is supposed to be fixed, so it imposes the average of the displacement you input.
In my studies, I was never able to apply movements to base of my model and recover accelerations at base! It always turned out noisy. I suggest you using accelerations with uniform excitation command.
Bests,
SK
---
PhD, EIT, Geotechnical Engineer
Condon-Johnson & Associates INC
PhD, EIT, Geotechnical Engineer
Condon-Johnson & Associates INC
Re: groundmotion and uniformexitation.
thanks for your answer , if I multiply x2 the displacement basal input, with fix base nodes 1 1 1, I get a very similar drift that uniform exitation , but not the same.
uniform exitation: https://www.youtube.com/watch?v=2AH8k8zqVcQ
ground motion: https://www.youtube.com/watch?v=rOtBhW1woSg
uniform exitation: https://www.youtube.com/watch?v=2AH8k8zqVcQ
ground motion: https://www.youtube.com/watch?v=rOtBhW1woSg
Re: groundmotion and uniformexitation.
if you do it correctly you will get the same drift
-
- Posts: 15
- Joined: Tue Apr 07, 2015 10:17 pm
- Location: Kyoto University
Re: groundmotion and uniformexitation.
Dear Mr. kcorproro
Would you like to send me your model file..., because I have tried to make comparison between Uniform Excitation and Multiple Support Excitation, but the response of each relative displacement and acceleration did not equal. Thank you
Sincerely yours
Would you like to send me your model file..., because I have tried to make comparison between Uniform Excitation and Multiple Support Excitation, but the response of each relative displacement and acceleration did not equal. Thank you
Sincerely yours
-
- Posts: 15
- Joined: Tue Apr 07, 2015 10:17 pm
- Location: Kyoto University
Re: groundmotion and uniformexitation.
Dear All
Here My comparison;
#Uniform Excitation:
# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic sine-wave input analysis
# Silvia Mazzoni, 2006
# execute this file after you have built the model, and after you apply gravity
#
# Uniform Sine-Wave ground motion (uniform acceleration input at all support nodes)
source recorders2.tcl
recorder display "Displaced shape2" 40 40 500 500 -wipe
prp 200. 50. 1;
vup 0 1 0;
vpn 0 0 1;
display 11 5 10
# recorder plot RD_NS.out "RD_NS.out" 40 40 500 500 -columns 1 2 -wipe
# display 3 5 100
recorder plot 4_dsp.out " 4_dsp.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot 4_acc.out " 4_acc.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot DispOut.dat " DispOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 12 5 40
recorder plot AccOut.dat " AccOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 13 5 40
set GMdirection 1; # ground-motion direction
set GMSineAccAmpl [expr 1]; # sine ground-motion acceleration amplitude (this is the support motion, not the free-node motion)
set TPeriodSine [expr 0.5*$sec]; # period of input sine wave
set DurationSine [expr 3.*$sec]; # duration of input sine wave
# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 10. *$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec
# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Sine-Wave excitation
set IDloadTag 400; # for uniformSupport excitation
set DtGround [expr 0.005*$sec]; # time-step Dt for input grond motion
set omegaSine [expr 2*$PI/$TPeriodSine];
set vel0 [expr $GMSineAccAmpl*(-1)/$omegaSine];
set AccelSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineAccAmpl "
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries -vel0 $vel0
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful
set DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set AccOut [open AccOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
#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]
# puts "hallo"
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 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
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
set dsp2 [nodeDisp 2 1]
set dsp4 [nodeDisp 4 1]
set acc2 [nodeAccel 2 1]
set acc4 [nodeAccel 4 1]
# set dsp3 [nodeDisp 3 1]
set dsprel4 [expr $dsp4-$dsp2]
set accrel4 [expr $acc4-$acc2]
puts $DispOut "$controlTime $dsprel4"
puts $AccOut "$controlTime $accrel4"
# puts "$controlTime $dsprel4"
# puts "$controlTime $accrel4"
}
#}; # end if ok !0
close $DispOut
close $AccOut
puts "Ground Motion Done. End Time: [getTime]"
#The Multiple Support Excitation----------------------------------------
# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic sine-wave input analysis -- multiple-support excitation
# Silvia Mazzoni, 2006
# execute this file after you have built the model, and after you apply gravity
#
source recorders2.tcl
recorder display "Displaced shape2" 40 40 500 500 -wipe
prp 200. 50. 1;
vup 0 1 0;
vpn 0 0 1;
display 11 5 10
# recorder plot RD_NS.out "RD_NS.out" 40 40 500 500 -columns 1 2 -wipe
# display 3 5 100
recorder plot 4_dsp.out " 4_dsp.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot 4_acc.out " 4_acc.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot DispOut.dat " DispOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 12 5 40
recorder plot AccOut.dat " AccOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 13 5 40
# MultipleSupport SineWave ground motion (different displacement input at spec'd support nodes) -- two nodes here
# Sine Input:
set iSupportNode "1 2"; # support nodes where ground motions are input, for multiple-support excitation
set iGMdirection "1 1"; # ground-motion direction -- for each support node
set iTPeriodSine "[expr 0.5*$sec] [expr 0.5*$sec] "; # period of input sine wave
set iDurationSine "[expr 3.*$sec] [expr 3.*$sec] "; # duration of input sine wave
set iGMSineDispAmpl "[expr 1/(2*3.1415/0.5)**2] [expr 1/(2*3.1415/0.5)**2]"; # sine ground-motion displacement amplitude (this is the support motion, not the free-node motion)
set iGMSineAccelAmpl "[expr 1] [expr 1]"; # sine ground-motion displacement amplitude (this is the support motion, not the free-node motion)
# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 10. *$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec
# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
# define damping
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Multiple-Support Earthquake excitation
set IDloadTag 400;
set IDgmSeries 500; # for multipleSupport Excitation
set DtGround [expr 0.005*$sec]; # time-step Dt for input grond motion
# multiple-support excitation: displacement input at individual nodes
pattern MultipleSupport $IDloadTag {
foreach SupportNode $iSupportNode GMdirection $iGMdirection GMSineDispAmpl $iGMSineDispAmpl GMSineAccelAmpl $iGMSineAccelAmpl TPeriodSine $iTPeriodSine DurationSine $iDurationSine {
set IDgmSeries [expr $IDgmSeries +1]
set DispSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineDispAmpl"
set AccelSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineAccelAmpl"
groundMotion $IDgmSeries Plain -disp $DispSeries ;# -accel $AccelSeries
imposedMotion $SupportNode $GMdirection $IDgmSeries
}; # end foreach
}; # end pattern
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 DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set AccOut [open AccOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
# puts "hallo"
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 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
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
set dsp2 [nodeDisp 2 1]
set dsp4 [nodeDisp 4 1]
set acc2 [nodeAccel 2 1]
set acc4 [nodeAccel 4 1]
# set dsp3 [nodeDisp 3 1]
set dsprel4 [expr $dsp4-$dsp2]
set accrel4 [expr $acc4-$acc2]
puts $DispOut "$controlTime $dsprel4"
puts $AccOut "$controlTime $accrel4"
# puts "$controlTime $dsprel4"
# puts "$controlTime $accrel4"
}
#}; # end if ok !0
close $DispOut
close $AccOut
puts "Ground Motion Done. End Time: [getTime]"
Thank you for the attention
Here My comparison;
#Uniform Excitation:
# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic sine-wave input analysis
# Silvia Mazzoni, 2006
# execute this file after you have built the model, and after you apply gravity
#
# Uniform Sine-Wave ground motion (uniform acceleration input at all support nodes)
source recorders2.tcl
recorder display "Displaced shape2" 40 40 500 500 -wipe
prp 200. 50. 1;
vup 0 1 0;
vpn 0 0 1;
display 11 5 10
# recorder plot RD_NS.out "RD_NS.out" 40 40 500 500 -columns 1 2 -wipe
# display 3 5 100
recorder plot 4_dsp.out " 4_dsp.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot 4_acc.out " 4_acc.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot DispOut.dat " DispOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 12 5 40
recorder plot AccOut.dat " AccOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 13 5 40
set GMdirection 1; # ground-motion direction
set GMSineAccAmpl [expr 1]; # sine ground-motion acceleration amplitude (this is the support motion, not the free-node motion)
set TPeriodSine [expr 0.5*$sec]; # period of input sine wave
set DurationSine [expr 3.*$sec]; # duration of input sine wave
# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 10. *$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec
# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Sine-Wave excitation
set IDloadTag 400; # for uniformSupport excitation
set DtGround [expr 0.005*$sec]; # time-step Dt for input grond motion
set omegaSine [expr 2*$PI/$TPeriodSine];
set vel0 [expr $GMSineAccAmpl*(-1)/$omegaSine];
set AccelSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineAccAmpl "
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries -vel0 $vel0
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful
set DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set AccOut [open AccOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
#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]
# puts "hallo"
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 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
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
set dsp2 [nodeDisp 2 1]
set dsp4 [nodeDisp 4 1]
set acc2 [nodeAccel 2 1]
set acc4 [nodeAccel 4 1]
# set dsp3 [nodeDisp 3 1]
set dsprel4 [expr $dsp4-$dsp2]
set accrel4 [expr $acc4-$acc2]
puts $DispOut "$controlTime $dsprel4"
puts $AccOut "$controlTime $accrel4"
# puts "$controlTime $dsprel4"
# puts "$controlTime $accrel4"
}
#}; # end if ok !0
close $DispOut
close $AccOut
puts "Ground Motion Done. End Time: [getTime]"
#The Multiple Support Excitation----------------------------------------
# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic sine-wave input analysis -- multiple-support excitation
# Silvia Mazzoni, 2006
# execute this file after you have built the model, and after you apply gravity
#
source recorders2.tcl
recorder display "Displaced shape2" 40 40 500 500 -wipe
prp 200. 50. 1;
vup 0 1 0;
vpn 0 0 1;
display 11 5 10
# recorder plot RD_NS.out "RD_NS.out" 40 40 500 500 -columns 1 2 -wipe
# display 3 5 100
recorder plot 4_dsp.out " 4_dsp.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot 4_acc.out " 4_acc.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot DispOut.dat " DispOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 12 5 40
recorder plot AccOut.dat " AccOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 13 5 40
# MultipleSupport SineWave ground motion (different displacement input at spec'd support nodes) -- two nodes here
# Sine Input:
set iSupportNode "1 2"; # support nodes where ground motions are input, for multiple-support excitation
set iGMdirection "1 1"; # ground-motion direction -- for each support node
set iTPeriodSine "[expr 0.5*$sec] [expr 0.5*$sec] "; # period of input sine wave
set iDurationSine "[expr 3.*$sec] [expr 3.*$sec] "; # duration of input sine wave
set iGMSineDispAmpl "[expr 1/(2*3.1415/0.5)**2] [expr 1/(2*3.1415/0.5)**2]"; # sine ground-motion displacement amplitude (this is the support motion, not the free-node motion)
set iGMSineAccelAmpl "[expr 1] [expr 1]"; # sine ground-motion displacement amplitude (this is the support motion, not the free-node motion)
# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 10. *$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec
# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
# define damping
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Multiple-Support Earthquake excitation
set IDloadTag 400;
set IDgmSeries 500; # for multipleSupport Excitation
set DtGround [expr 0.005*$sec]; # time-step Dt for input grond motion
# multiple-support excitation: displacement input at individual nodes
pattern MultipleSupport $IDloadTag {
foreach SupportNode $iSupportNode GMdirection $iGMdirection GMSineDispAmpl $iGMSineDispAmpl GMSineAccelAmpl $iGMSineAccelAmpl TPeriodSine $iTPeriodSine DurationSine $iDurationSine {
set IDgmSeries [expr $IDgmSeries +1]
set DispSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineDispAmpl"
set AccelSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineAccelAmpl"
groundMotion $IDgmSeries Plain -disp $DispSeries ;# -accel $AccelSeries
imposedMotion $SupportNode $GMdirection $IDgmSeries
}; # end foreach
}; # end pattern
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 DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set AccOut [open AccOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
# puts "hallo"
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 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
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
set dsp2 [nodeDisp 2 1]
set dsp4 [nodeDisp 4 1]
set acc2 [nodeAccel 2 1]
set acc4 [nodeAccel 4 1]
# set dsp3 [nodeDisp 3 1]
set dsprel4 [expr $dsp4-$dsp2]
set accrel4 [expr $acc4-$acc2]
puts $DispOut "$controlTime $dsprel4"
puts $AccOut "$controlTime $accrel4"
# puts "$controlTime $dsprel4"
# puts "$controlTime $accrel4"
}
#}; # end if ok !0
close $DispOut
close $AccOut
puts "Ground Motion Done. End Time: [getTime]"
Thank you for the attention
-
- Posts: 58
- Joined: Tue Dec 13, 2016 7:14 am
- Location: University of Tlemcen-Algeria
Re: groundmotion and uniformexitation.
Dear Sir ;
I would be very grateful if you could answer.
I tried to validate the example 1DOF, the results of the displacements for analysis Transient are the same as that of the static analysis. Therefore, probably the execution does not pass to the transient analysis.
The code is as follows:
source DOFGravity.tcl
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
# Define nodal mass in terms of axial load on columns
set g 386.4
# nodal masses:
mass 2 5.18 0. 0.; # node#, Mx My Mz, Mass=Weight/g.
# Set the rayleigh damping factors for nodes & elements
rayleigh 0.0 0.0 0.0 0.000625
# define ground motion parameters
set patternID 2; # load pattern ID
set GMdirection 1; # ground motion direction (1 = x)
set GMfile "NR94cnp.tcl"; # ground motion filename
set dt 0.01; # timestep of input GM file
set Scalefact 1.0; # ground motion scaling factor
set TotalNumberOfSteps 2495; # number of steps in ground motion
set GMtime [expr $dt*$TotalNumberOfSteps + 10.0]; # total time of ground motion + 10 sec of free vibration
# define the acceleration series for the ground motion
# syntax: "Series -dt $timestep_of_record -filePath $filename_with_acc_history -factor $scale_record_by_this_amount
set accelSeries "Series -dt $dt -filePath $GMfile -factor [expr $Scalefact*$g]";
# create load pattern: apply acceleration to all fixed nodes with UniformExcitation
# command: pattern UniformExcitation $patternID $GMdir -accel $timeSeriesID
pattern UniformExcitation $patternID $GMdirection -accel $accelSeries;
# define dynamic analysis parameters
set dt_analysis 0.001; # timestep of analysis
#------------OUTPUT RECORDER---------------------
# Create a recorder to monitor nodal displacements
recorder Node -time -file disp.out -node 2 -dof 2 disp
#Create recorders to monitor section forces and deformations
#at the base of the left column
recorder Element -time -file elelsecForce.out -ele 1 section 1 force
recorder Element -time -file elelsecDef.out -ele 1 section 1 deformation
#-----------ANALYSIS------------------------------
wipeAnalysis;
# destroy all components of the Analysis object, i.e. any objects created with system, numberer, constraints, integrator, algorithm, and analysis commands
constraints Plain; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize band-widt(optimization)
system UmfPack; # how to store and solve the system of equations in the analysis
test NormDispIncr 1.0e-8 50; # type of convergence criteria with tolerance, max iterations
algorithm NewtonLineSearch; # use NewtonLineSearch solution algorithm: updates tangent stiffness at every iteration and introduces line search to the Newton-Raphson algorithm to solve the nonlinear residual equation. Line search increases the effectiveness of the Newton method
integrator Newmark 0.5 0.25; # uses Newmark's average acceleration method to compute the time history
analysis Transient; # type of analysis: transient or static
set NumSteps [expr round(($GMtime + 0.0)/$dt_analysis)]; # number of steps in analysis
# perform the dynamic analysis and display whether analysis was successful
set ok [analyze $NumSteps $dt_analysis]; # ok = 0 if analysis was completed
if {$ok == 0} {
puts "Dynamic analysis complete";
} else {
puts "Dynamic analysis did not converge";
}
# output time at end of analysis
set currentTime [getTime]; # get current analysis time (after dynamic analysis)
puts "The current time is: $currentTime";
wipe all;
}
wipe all;
Pending your reply, I thank you very much.
I would be very grateful if you could answer.
I tried to validate the example 1DOF, the results of the displacements for analysis Transient are the same as that of the static analysis. Therefore, probably the execution does not pass to the transient analysis.
The code is as follows:
source DOFGravity.tcl
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
# Define nodal mass in terms of axial load on columns
set g 386.4
# nodal masses:
mass 2 5.18 0. 0.; # node#, Mx My Mz, Mass=Weight/g.
# Set the rayleigh damping factors for nodes & elements
rayleigh 0.0 0.0 0.0 0.000625
# define ground motion parameters
set patternID 2; # load pattern ID
set GMdirection 1; # ground motion direction (1 = x)
set GMfile "NR94cnp.tcl"; # ground motion filename
set dt 0.01; # timestep of input GM file
set Scalefact 1.0; # ground motion scaling factor
set TotalNumberOfSteps 2495; # number of steps in ground motion
set GMtime [expr $dt*$TotalNumberOfSteps + 10.0]; # total time of ground motion + 10 sec of free vibration
# define the acceleration series for the ground motion
# syntax: "Series -dt $timestep_of_record -filePath $filename_with_acc_history -factor $scale_record_by_this_amount
set accelSeries "Series -dt $dt -filePath $GMfile -factor [expr $Scalefact*$g]";
# create load pattern: apply acceleration to all fixed nodes with UniformExcitation
# command: pattern UniformExcitation $patternID $GMdir -accel $timeSeriesID
pattern UniformExcitation $patternID $GMdirection -accel $accelSeries;
# define dynamic analysis parameters
set dt_analysis 0.001; # timestep of analysis
#------------OUTPUT RECORDER---------------------
# Create a recorder to monitor nodal displacements
recorder Node -time -file disp.out -node 2 -dof 2 disp
#Create recorders to monitor section forces and deformations
#at the base of the left column
recorder Element -time -file elelsecForce.out -ele 1 section 1 force
recorder Element -time -file elelsecDef.out -ele 1 section 1 deformation
#-----------ANALYSIS------------------------------
wipeAnalysis;
# destroy all components of the Analysis object, i.e. any objects created with system, numberer, constraints, integrator, algorithm, and analysis commands
constraints Plain; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize band-widt(optimization)
system UmfPack; # how to store and solve the system of equations in the analysis
test NormDispIncr 1.0e-8 50; # type of convergence criteria with tolerance, max iterations
algorithm NewtonLineSearch; # use NewtonLineSearch solution algorithm: updates tangent stiffness at every iteration and introduces line search to the Newton-Raphson algorithm to solve the nonlinear residual equation. Line search increases the effectiveness of the Newton method
integrator Newmark 0.5 0.25; # uses Newmark's average acceleration method to compute the time history
analysis Transient; # type of analysis: transient or static
set NumSteps [expr round(($GMtime + 0.0)/$dt_analysis)]; # number of steps in analysis
# perform the dynamic analysis and display whether analysis was successful
set ok [analyze $NumSteps $dt_analysis]; # ok = 0 if analysis was completed
if {$ok == 0} {
puts "Dynamic analysis complete";
} else {
puts "Dynamic analysis did not converge";
}
# output time at end of analysis
set currentTime [getTime]; # get current analysis time (after dynamic analysis)
puts "The current time is: $currentTime";
wipe all;
}
wipe all;
Pending your reply, I thank you very much.
-
- Posts: 10
- Joined: Sun Oct 04, 2020 11:31 pm
- Location: International Imam Khomeini University
Re: groundmotion and uniformexitation.
Hello, I am performing nonlinear time history analysis on the bridge with SSI(Structure-Soil Interaction).this work is conducting by Multiple-Support excitation{ground motion-impose}.
how can I use of acceleration.txt file or velocity.txt file or dispalecement.txt file cause some resources recommended that must be applied [remove SP command] after multiple support excitation with disp.txt. but I have not information about accel or vel.
please, inform me. thankful
how can I use of acceleration.txt file or velocity.txt file or dispalecement.txt file cause some resources recommended that must be applied [remove SP command] after multiple support excitation with disp.txt. but I have not information about accel or vel.
please, inform me. thankful
-
- Posts: 10
- Joined: Sun Oct 04, 2020 11:31 pm
- Location: International Imam Khomeini University
Re: groundmotion and uniformexitation.
Hello to USERS, understand comprehensively (Nonlinear Time History Analysis)hesamgholamigmail wrote: ↑Sat May 29, 2021 12:13 am Hello, I am performing nonlinear time history analysis on the bridge with SSI(Structure-Soil Interaction).this work is conducting by Multiple-Support excitation{ground motion-impose}.
how can I use of acceleration.txt file or velocity.txt file or dispalecement.txt file cause some resources recommended that must be applied [remove SP command] after multiple support excitation with disp.txt. but I have not information about accel or vel.
please, inform me. thankful
1-Uniform Excitation with accel.txt of files (Good for structures without [Structural Soil Interaction])
2-Multiple Support Ground Motion with Constraints Transformation through disp,vel,accel.txt files (No differences but disp.txt file is very meticulous)
3-Multiple Support Ground Motion with Constraints Penalty(with 1.e20 for values) through disp,vel,accel.txt files (No differences but disp.txt file is very meticulous). Keep in mind, that use of Cons Penalty must be applied to remove sp(for which one fixed node that imposed ground motions ) after eigenanalysis command otherwise cause instability in structures .So, this is a very significant utilization of remove sp for fixed nodes.
Note, basically the more precision is method-3 and after 2, and 1.