I knew nothing about wood design until I started teaching it.

Although there are accommodations for LRFD, which is all I learned as a student, wood design is entirely ASD, or allowable stress design. The required stress, f, determined from structural analysis for the controlling ASD load combination, must be less than the available stress, F’, which is a function of the species and grade of wood along with several adjustment factors.

Many of the adjustment factors are table lookups based on Yes/No answers to questions like “Is the member subjected to high temperatures?”, “Is the member exposed to high moisture conditions?”, or “Is the member loaded on its wide face?”

However, some of the adjustment factors are based on not-so-pleasant looking equations. Computing the stability factors for beams and columns kinda feels like solving the quadratic equation. And the volume factor for glulam members in flexure has embedded units and small exponents:

where L is the member length, d is the section depth, and b is the section width. The 0.1 exponent is for Western Species glulam–for Southern Pines glulam, change the exponents to 0.05. Note that length units of ft and inch are embedded in the volume factor equation.

Defining a function for the volume factor is straightforward.

def VolumeFactor (L, d, b, x=0.1):
if L <= 21 and d <= 12 and b <= 5.125:
return 1.0
CV = (21/L * 12/d * 5.125/b)**x
if CV >= 1.0:
return 1.0
return CV

The trick is calling the function with the right units.

Suppose we want to compute the volume factor for the Western Species glulam member shown below with metric dimensions.

To account for the assumed units in the volume factor function, divide each variable by its assumed unit when calling the function.

# Base unit
m = 1
# Derived units
mm = m/1000
inch = 25.4*mm
ft = 12*inch
# Glulam dimensions
b = 175*mm
d = 760*mm
L = 19*m
CV = VolumeFactor(L/ft, d/inch, b/inch)

You should get a volume factor of 0.795 for this member. If you do not divide by the assumed units, you will get a volume factor of 1.0, which will lead to an unconservative over-estimation of the member flexural strength.

Yeah, this post was more about units than glulams. Watch this video for more information about defining units for your OpenSees models.

I have been involved in the development, maintenance, and growth of OpenSees since its early days. I am interested in learning Python and improving my academic writing.
View all posts by Michael H. Scott