Interpolated GroundMotion causes crash

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

Moderators: silvia, selimgunay, Moderators

Post Reply
bjturner
Posts: 8
Joined: Tue Sep 18, 2012 11:02 am
Location: UCLA

Interpolated GroundMotion causes crash

Post by bjturner »

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
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Interpolated GroundMotion causes crash

Post by fmk »

just post the entire load pattern command
bjturner
Posts: 8
Joined: Tue Sep 18, 2012 11:02 am
Location: UCLA

Re: Interpolated GroundMotion causes crash

Post by bjturner »

#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
}
}
bjturner
Posts: 8
Joined: Tue Sep 18, 2012 11:02 am
Location: UCLA

Re: Interpolated GroundMotion causes crash

Post by bjturner »

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
}
mohsenVazirizade
Posts: 17
Joined: Wed Oct 14, 2015 12:08 am
Location: Sharif University of Technology; University of Arizona

Re: Interpolated GroundMotion causes crash

Post by mohsenVazirizade »

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
}
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Interpolated GroundMotion causes crash

Post by fmk »

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
}
mohsenVazirizade
Posts: 17
Joined: Wed Oct 14, 2015 12:08 am
Location: Sharif University of Technology; University of Arizona

Re: Interpolated GroundMotion causes crash

Post by mohsenVazirizade »

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?
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Interpolated GroundMotion causes crash

Post by fmk »

it does do Trapezoidal by default .. hence the warning and not an error
mohsenVazirizade
Posts: 17
Joined: Wed Oct 14, 2015 12:08 am
Location: Sharif University of Technology; University of Arizona

Re: Interpolated GroundMotion causes crash

Post by mohsenVazirizade »

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
Post Reply