This example is from "Limit States Design in Structural Steel", Ninth Edition, CISC, by Kulak and Grondin. This example is slightly modified in order to compare the results with that obtained using the method of slope-deflection. The modifications to the model are:
In [1]:
from salib import showImage
import salib.nbloader
import Frame2D_v03 as f2d
In [2]:
frame = f2d.Frame2D()
frame.loadStructuralData('KG82sd') # read the CSV files in directory 'KG82sd.d'
In [3]:
frame.doall()
frame.saveStructuralData('KG82sd')
In [4]:
import pandas as pd
BM = [('AB', -49.9080183705027, 47.4941396356060), # results from method of slope deflection
('BC', 250.526060428376, 252.096857589821),
('DE', -189.782099213905, -232.254022051198),
('EF', -290.011616822927, -333.061301195269),
('BE', -298.020200063982, 522.265638874126),
('CF', -252.096857589821, 333.061301195269)]
SD = pd.DataFrame({m:{'MZJ':-a,'MZK':-b} for m,a,b in BM}).T
SD
Out[4]:
In [5]:
R = frame.get_mefs() # get our member end forces for the same members
#R[['MZJ']] - SD[['MZJ']]
R = R.ix[SD.index]
R
Out[5]:
In [6]:
m = R[['MZJ','MZK']]*1E-6
pd = (100*(m - SD[['MZJ','MZK']])/m).round(6)
pd
Out[6]:
Max. difference is 0.0004%, which is quite good.
In [7]:
pd.abs().max()
Out[7]: