import math
Pu=3000 #in kN
fck=20 #in MPa
fy=415 #in MPa
l=3 #unsupported length, in m
#assume 1% steel
Ag=Pu*10**3/(0.4*fck*0.99+0.67*fy*0.01) #in sq mm
L=math.sqrt(Ag) #assuming a square column
L=530 #in mm
Asc=0.01*L**2 #in sq mm
emin=l*10**3/500+L/30 #in mm
ep=0.05*L #>emin, hence OK
print "Column size - ",L," x ",L," mm"
import math
Pu=1500 #in kN
fck=15 #in MPa
fy=250 #in MPa
l=2.75 #unsupported length, in m
#assume 1% steel
Ag=Pu*10**3/(0.4*fck*0.99+0.67*fy*0.01) #in sq mm
L1=225 #assuming a square column
L2=Ag/L1 #in mm
L2=880 #in mm
Asc=0.01*L1*L2 #in sq mm
e1=l*10**3/500+L1/30 #in mm
e2=l*10**3/500+L2/30 #in mm
ep1=0.05*L1 #<e1
ep2=0.05*L2 #>e2, hence Ok
print "The column is safe on long dimension side but not on short dimension side. As such, the column be checked for eccentricity in short direction."
import math
b=225 #in mm
D=500 #in mm
c=45 #cover, in mm
Asc=2463 #in sq mm
Ast=Asc
fck=15 #in MPa
fy=250 #in MPa
fcc=0.446*fck #in MPa
#(i)
xu=1.1*D #in mm
m=0.43*D #in mm
esc1=0.002*(xu-c)/(xu-m)
esc2=0.002*(xu-D+c)/(xu-m)
#by interpolation
fsc1=217.5 #in MPa
fsc2=217.5*esc2/0.0010875 #in MPa
#stress block parameters for xu / D = 1.1
n=0.384
l=0.443
A=n*fck*D #area of stress block
r=l*D #distance of c.g., in mm
Pu=(A*b+Asc*(fsc1-fcc)+Ast*fsc2)/10**3
Mu=(A*b*(D/2-r)+Asc*(fsc1-fcc)*(D/2-c)-Ast*fsc2*(D/2-c))/10**6
print "(i) For xu = 1.1 D\nP=",Pu," kN\nMu=",Mu," kN-m\n"
#answer in textbook is incorrect
#(ii)
xu=330 #in mm
esc=0.0035*(xu-c)/xu
est=0.0035*(D-c-xu)/xu
#by interpolation
fsc=217.5 #in MPa
fst=217.5 #in MPa
Pu=(0.36*fck*b*xu+Asc*(fsc-fcc)-Ast*fst)/10**3 #in kN
Mu=(0.36*fck*b*xu*(D/2-0.416*xu)+Asc*(fsc-fcc)*(D/2-c)+Ast*fst*(D/2-c))/10**6 #in kN-m
print "(ii) For xu = 330 mm\nP=",Pu," kN\nMu=",Mu," kN-m"
import math
b=300 #in mm
D=400 #in mm
c=30 #cover, in mm
Asc=452 #in sq mm
Ast=Asc
fck=15 #in MPa
fy=415 #in MPa
fcc=0.446*fck #in MPa
#(i)
xu=1.4*D #in mm
m=0.43*D #in mm
esc1=0.002*(xu-c)/(xu-m)
esc2=0.002*(xu-D+c)/(xu-m)
#by interpolation
fsc1=356.8 #in MPa
fsc2=238.68 #in MPa
#stress block parameters for xu / D = 1.4
n=0.417
l=0.475
A=n*fck*D #area of stress block
r=l*D #distance of c.g., in mm
Pu=(A*b+Asc*(fsc1-fcc)+Ast*fsc2)/10**3 #in kN
Mu=(A*b*(D/2-r)+Asc*(fsc1-fcc)*(D/2-c)-Ast*fsc2*(D/2-c))/10**6 #in kN-m
print "(i) For xu = 1.4 D\nP=",Pu," kN\nMu=",Mu," kN-m\n"
#(ii)
xu=370 #in mm
esc=0.0035*(xu-c)/xu
est=0.0035*(D-c-xu)/xu
#by interpolation
fsc=355.8 #in MPa
Pu=(0.36*fck*b*xu+Asc*(fsc-fcc))/10**3 #in kN
Mu=(0.36*fck*b*xu*(D/2-0.416*xu)+Asc*(fsc-fcc)*(D/2-c))/10**6 #in kN-m
print "(ii) For xu = 370 mm\nP=",Pu," kN\nMu=",Mu," kN-m"
import math
b=225 #in mm
D=500 #in mm
c=50 #cover, in mm
Asc=1520 #in sq mm
Ast=Asc
fck=20 #in MPa
fy=500 #in MPa
fcc=0.446*fck #in MPa
#(i)
xu=1.3*D #in mm
m=0.43*D #in mm
esc1=0.002*(xu-c)/(xu-m)
esc2=0.002*(xu-D+c)/(xu-m)
#by interpolation
fsc1=412.515 #in MPa
fsc2=183.794 #in MPa
#stress block parameters for xu / D = 1.3
n=0.409
l=0.468
A=n*fck*D #area of stress block
r=l*D #distance of c.g., in mm
Pu=(A*b+Asc*(fsc1-fcc)+Ast*fsc2)/10**3 #in kN
Mu=(A*b*(D/2-r)+Asc*(fsc1-fcc)*(D/2-c)-Ast*fsc2*(D/2-c))/10**6 #in kN-m
print "(i) For xu = 1.3 D\nP=",Pu," kN\nMu=",Mu," kN-m\n"
#(ii)
xu=400 #in mm
esc=0.0035*(xu-c)/xu
est=0.0035*(D-c-xu)/xu
#by interpolation
fsc=422.11 #in MPa
fst=87.45 #in MPa
Pu=(0.36*fck*b*xu+Asc*(fsc-fcc)-Ast*fst)/10**3 #in kN
Mu=(0.36*fck*b*xu*(D/2-0.416*xu)+Asc*(fsc-fcc)*(D/2-c)+Ast*fst*(D/2-c))/10**6 #in kN-m
print "(ii) For xu = 400 mm\nP=",Pu," kN\nMu=",Mu," kN-m"
#answer in textbook for Mu in (ii) is incorrect
import math
b=250.0 #column width, in mm
D=500.0 #column depth, in mm
lex=4.0 #in m
ley=4.0 #in m
Pu=300.0 #in kN
Asc=1472.0 #in sq mm
Ast=1472.0 #in sq mm
fck=15.0 #in MPa
fy=250.0 #in MPa
c=50 #cover, in mm
Max=Pu*10**3*D/2000*(lex/(D/10**3))**2.0/10**6 #in kN-m
May=Pu*10.0**3*b/2000*(ley/(b/10**3))**2.0/10**6 #in kN-m
Puz=(0.45*fck*(b*D-(Asc+Ast))+0.75*fy*(Asc+Ast))/10**3 #in kN
#to find Pb
xu=(D-c)/(1+0.002/0.0035) #in mm
fsc=217.5 #in MPa
fst=217.5 #in MPa
Pb=(0.36*fck*b*xu+fsc*Asc-fst*Ast)/10**3 #in kN
k=(Puz-Pu)/(Puz-Pb) #>1
k=1
Max=k*Max #in kN-m
May=k*May #in kN-m
print "Additional Moments are:\nMax=",Max," kN/m\nMay=",May," kN-m"