Published
Edited
Jul 24, 2018
1 fork
Importers
2 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// stress modifier for equivalent concrete stress block
function a1(fc) { return Math.max(0.67, Math.round((0.85-0.0015*fc*ksi_MPa)*1000)/1000) }
Insert cell
// minimum required flexural reinforcing for beam
function Asmin1(b,h,fc,fy) { return round(0.2*Math.sqrt(fc*ksi_MPa)/ksi_MPa*b*h/fy,2) }

Insert cell
//steel area
function As(nb,bsize) { return nb * Ab(bsize)}
Insert cell
// centroid modifier for equivalent concrete stress block
function b1(fc) { return Math.max(0.67, Math.round((0.97-0.0025*fc*ksi_MPa)*1000)/1000) }
Insert cell
//neutral axis depth from compression face for rectangular beam
function c(b,d,As,fc,fy) {
return phiS*As*fy / (phiC*fc*a1(fc)*b);
}
Insert cell
function dv(d,h) {
return round(Math.min(0.9*d, 0.72*h),1)
}
Insert cell
// moment capacity of rectangular beam
function Mr(b, d, As, fc, fy) {
let a = b1(fc) * c(b,d,As,fc,fy);
return round(phiS*As*fy*(d-a/2)/12,1);
}
Insert cell
// axial capacity of short column
function Pr(Ag,As,fc,fy) {
const Ac = Ag - As
return round(0.8*(0.65*fc*a1(fc)*Ac + 0.85*As*fy),1)
}
Insert cell
Insert cell
// concrete shear capacity
function Vc1(b,dv,fc,beta) {
return round(phiC*beta*Math.sqrt(fc*ksi_MPa)/ksi_MPa*b*dv,1)
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// helper function to look up bar area
function Ab(size) {
let bar = BarOptions.find(o => o.name === size)
return bar.A
}
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more