Interpolated GroundMotion causes crash
Moderators: silvia, selimgunay, Moderators
Interpolated GroundMotion causes crash
I'm defining a Multi-Support Excitation pattern for my model, which works fine when I only use ground motions created using the "Plain GroundMotion" command via timeSeries that are read in from files. However, when I try to use the Interpolate GroundMotion command to generate additional ground motions, OpenSees crashes as soon is it reaches that line of the code. I am certain that the groundMotions which I am trying to interpolate exist within the program because I am able to run the analysis without error if I skip the interpolation step.
Anyone else have problems with this command or suggestions?
Running OpenSees 2.4.4 (rev 5764) with TCL v.8.5
Anyone else have problems with this command or suggestions?
Running OpenSees 2.4.4 (rev 5764) with TCL v.8.5
Re: Interpolated GroundMotion causes crash
just post the entire load pattern command
Re: Interpolated GroundMotion causes crash
#Define load pattern at each node depth
pattern MultipleSupport 2 {
#Ground surface motion
groundMotion 1 Plain -disp 1;
#Assign timeSeries at layer boundaries to grounMotion tags
for {set j 1} {$j<= [expr $numlayers-1]} {incr j} {
set istart [expr round(($layerTop($j)/$dz)+1)]
set iend [expr round(($layerBot($j)/$dz))]
for {set i $istart} {$i<=$iend} {incr i 1} {
if {[expr round($depth([expr $i+1])/$dz)/(1/$dz)] == $layerTop([expr $j+1])} {
groundMotion [expr $i+1] Plain -disp [expr $i+1]
#groundMotion $gmTag Plain <-accel $tsTag> <-vel $tsTag> <-disp $tsTag> <-int (IntegratorType intArgs)>
}
}
}
#Base motion
groundMotion [expr round(($layerBot([expr $numlayers])/$dz))+1] Plain -disp [expr round(($layerBot([expr $numlayers])/$dz))+1];
#Interpolate between layer boundaries to create a groundMotion at every remaining node depth:
for {set j 1} {$j<= [expr $numlayers-1]} {incr j} {
set istart [expr round(($layerTop($j)/$dz)+1)]
set iend [expr round(($layerBot($j)/$dz))+1]
for {set i [expr $istart+1]} {$i<=$iend} {incr i 1} {
if {[expr round($depth([expr $i+1])/$dz)/(1/$dz)] <= $layerTop([expr $j+1])} {
set fact1 [expr ($iend-$i+0.0)/($iend-$istart)]; #interpolation factors based on depth
set fact2 [expr 1.0-$fact1];
groundMotion $i Interpolated $istart $iend -fact $fact1 $fact2
#groundMotion $tag Interpolated $gmTag1 $gmTag2... -fact $fact1 $fact2 ...
}
}
}
#Impose ground motions at each node
for {set i 1} {$i <= [expr round($L/$dz)+1]} {incr i 1} {
imposedMotion [expr 1000+$i] 1 $i
#imposedMotion $nodeTag $dirn $gMotionTag
}
}
pattern MultipleSupport 2 {
#Ground surface motion
groundMotion 1 Plain -disp 1;
#Assign timeSeries at layer boundaries to grounMotion tags
for {set j 1} {$j<= [expr $numlayers-1]} {incr j} {
set istart [expr round(($layerTop($j)/$dz)+1)]
set iend [expr round(($layerBot($j)/$dz))]
for {set i $istart} {$i<=$iend} {incr i 1} {
if {[expr round($depth([expr $i+1])/$dz)/(1/$dz)] == $layerTop([expr $j+1])} {
groundMotion [expr $i+1] Plain -disp [expr $i+1]
#groundMotion $gmTag Plain <-accel $tsTag> <-vel $tsTag> <-disp $tsTag> <-int (IntegratorType intArgs)>
}
}
}
#Base motion
groundMotion [expr round(($layerBot([expr $numlayers])/$dz))+1] Plain -disp [expr round(($layerBot([expr $numlayers])/$dz))+1];
#Interpolate between layer boundaries to create a groundMotion at every remaining node depth:
for {set j 1} {$j<= [expr $numlayers-1]} {incr j} {
set istart [expr round(($layerTop($j)/$dz)+1)]
set iend [expr round(($layerBot($j)/$dz))+1]
for {set i [expr $istart+1]} {$i<=$iend} {incr i 1} {
if {[expr round($depth([expr $i+1])/$dz)/(1/$dz)] <= $layerTop([expr $j+1])} {
set fact1 [expr ($iend-$i+0.0)/($iend-$istart)]; #interpolation factors based on depth
set fact2 [expr 1.0-$fact1];
groundMotion $i Interpolated $istart $iend -fact $fact1 $fact2
#groundMotion $tag Interpolated $gmTag1 $gmTag2... -fact $fact1 $fact2 ...
}
}
}
#Impose ground motions at each node
for {set i 1} {$i <= [expr round($L/$dz)+1]} {incr i 1} {
imposedMotion [expr 1000+$i] 1 $i
#imposedMotion $nodeTag $dirn $gMotionTag
}
}
Re: Interpolated GroundMotion causes crash
Or even more simply (without the loops that are specific to my analysis), this produces the same crash:
#Define load pattern at each node depth
pattern MultipleSupport 2 {
groundMotion 1 Plain -disp 1;
groundMotion 2 Plain -disp 2;
#Interpolate between 1 and 2
groundMotion 3 Interpolated 1 2 -fact 0.5 0.5
# #Impose ground motions at each node
imposedMotion 1 1 1
imposedMotion 2 1 3
imposedMotion 3 1 2
}
#Define load pattern at each node depth
pattern MultipleSupport 2 {
groundMotion 1 Plain -disp 1;
groundMotion 2 Plain -disp 2;
#Interpolate between 1 and 2
groundMotion 3 Interpolated 1 2 -fact 0.5 0.5
# #Impose ground motions at each node
imposedMotion 1 1 1
imposedMotion 2 1 3
imposedMotion 3 1 2
}
-
- Posts: 17
- Joined: Wed Oct 14, 2015 12:08 am
- Location: Sharif University of Technology; University of Arizona
Re: Interpolated GroundMotion causes crash
I have the same error and OpenSees crashes. Why does it happen?
set accel1 "Series -dt .1 -filePath record/recacc1.txt -factor 1"
set accel2 "Series -dt .1 -filePath record/recacc2.txt -factor 1"
pattern MultipleSupport 1 {
groundMotion 1 Plain -accel $accel1
groundMotion 2 Plain -accel $accel2
groundMotion 3 Interpolated 1 2 -fact 0.5 0.5
imposedMotion 1 1 3
}
set accel1 "Series -dt .1 -filePath record/recacc1.txt -factor 1"
set accel2 "Series -dt .1 -filePath record/recacc2.txt -factor 1"
pattern MultipleSupport 1 {
groundMotion 1 Plain -accel $accel1
groundMotion 2 Plain -accel $accel2
groundMotion 3 Interpolated 1 2 -fact 0.5 0.5
imposedMotion 1 1 3
}
Re: Interpolated GroundMotion causes crash
probably because the groundMotion should be receiving a timeSeries tag
timeSeries Sine 1 0. 10. .4
timeSeries Sine 2 0. 10. .4
pattern MultipleSupport 1 {
groundMotion 1 Plain -accel 1
groundMotion 2 Plain -accel 2
groundMotion 3 Interpolated 1 2 -fact 0.5 0.5
imposedMotion 1 1 3
}
timeSeries Sine 1 0. 10. .4
timeSeries Sine 2 0. 10. .4
pattern MultipleSupport 1 {
groundMotion 1 Plain -accel 1
groundMotion 2 Plain -accel 2
groundMotion 3 Interpolated 1 2 -fact 0.5 0.5
imposedMotion 1 1 3
}
-
- Posts: 17
- Joined: Wed Oct 14, 2015 12:08 am
- Location: Sharif University of Technology; University of Arizona
Re: Interpolated GroundMotion causes crash
Thanks, thats right.
actually, when I use disp rather than accel it works. However, if I use accel, I encounter a warning which states that integration is required. I thought it assumed something (Trapezoidal) as default. Would you please let me know what should we add to the mentioned commands?
actually, when I use disp rather than accel it works. However, if I use accel, I encounter a warning which states that integration is required. I thought it assumed something (Trapezoidal) as default. Would you please let me know what should we add to the mentioned commands?
Re: Interpolated GroundMotion causes crash
it does do Trapezoidal by default .. hence the warning and not an error
-
- Posts: 17
- Joined: Wed Oct 14, 2015 12:08 am
- Location: Sharif University of Technology; University of Arizona
Re: Interpolated GroundMotion causes crash
Should the response of UniformExcitation and MultipleSupport be the same?
I understand that UniformExcitation uses Trapezoidal as the only option and MultipleSupport as the default option.
I expected their results to be the same. Therefore, I provided an example. According to the acceleration values and Trapezoidal method I expected 3.35 as the final displacement for both of them; however, this value for UniformExcitation is 3.35 while this value for MultipleSupport is 3.333. Where did this difference come from?
the acceleration serries is as the following with the time step of .1 sec
0.00
2.00
4.00
6.00
8.00
10.00
12.00
14.00
16.00
18.00
20.00
I understand that UniformExcitation uses Trapezoidal as the only option and MultipleSupport as the default option.
I expected their results to be the same. Therefore, I provided an example. According to the acceleration values and Trapezoidal method I expected 3.35 as the final displacement for both of them; however, this value for UniformExcitation is 3.35 while this value for MultipleSupport is 3.333. Where did this difference come from?
the acceleration serries is as the following with the time step of .1 sec
0.00
2.00
4.00
6.00
8.00
10.00
12.00
14.00
16.00
18.00
20.00