I've updated my script with some numbers from the latest Greening paper. The current version factors in the energy required to destroy each floor (which includes the energy required for the observed pulverization of each floor).
With the numbers and assumptions I've plugged in, the script gives a collapse time of 19.2 seconds, which is still reasonably close to the observed collapse times. I have found that the collapse time is highly sensitive to how much mass we assume was lost from the collapse wave at each stack. The Greening paper states that at least 90% of the mass was retained in each collision, and that's the number I've plugged into the code at the moment. Feel free to copy this script and plug your own numbers in.
I don't claim that this is a particuarily accurate simulation of the actual collapses, merely a tool for visualizing how a progressive collapse occurs and estimating the time required.
With the numbers and assumptions I've plugged in, the script gives a collapse time of 19.2 seconds, which is still reasonably close to the observed collapse times. I have found that the collapse time is highly sensitive to how much mass we assume was lost from the collapse wave at each stack. The Greening paper states that at least 90% of the mass was retained in each collision, and that's the number I've plugged into the code at the moment. Feel free to copy this script and plug your own numbers in.
I don't claim that this is a particuarily accurate simulation of the actual collapses, merely a tool for visualizing how a progressive collapse occurs and estimating the time required.
Code:
from math import *
floors = 110.0 #110 stories
impactfloor = 95.0 #collapse initiation floor
floordist = 3.7 #in meters
gravity = 9.8 #meters per second squared
floormass = 3860000.0 #in kg, assume all floors have the same mass
massloss = 0.1 #amount of mass to fall off to sides on each impact
crushenergy = 603000000.0 #603MJ to destroy one floor
time = 0.0 #total accumulated collapse time
height = impactfloor * floordist #height of collapse wave
debrismass = (floors - impactfloor) * floormass #mass of debris falling
v = 0.0 #velocity of debris falling
while height > floordist and (v > 0.0 or time == 0.0):
#Freefall one floor
t = (-v + sqrt(v*v + 2.0 * gravity * floordist)) / gravity
height = height - floordist
time = time + t
v = v + gravity * t
#impact next floor
#calculate impact energy, 1/2MV^2
e = 0.5 * debrismass * v * v
#subtract energy required to destroy floor
e = e - crushenergy
if e < 0: #collapse stalled, not enough energy to break floor!
v = 0;
else:
#accumulate mass of next floor
debrismass = debrismass + floormass
#calculate resulting velocity
v = sqrt((2 * e) / debrismass)
#and spill some off the sides
debrismass = debrismass * (1 - massloss)
if v > 0.0:
print "Collapse reached ground at",time,"seconds"
else:
print "Collapse halted at",height,"meters after",time,"seconds"