Closed Form Exact ASCE Wind Calculations

Five years back, I developed a Python function to calculate closed form exact values for wind forces and wind CGs.

I use only calculus — no more bar charts with 0′ to 15′, 20′ to 25′, 25′ to 30′, et cetera —- a curve rather than a step function.

The ASCE function for kz is discontinuous at z = 15′:

- when , , a constant
- when ,

Function Specification

We must simply integrate over the two domains . Of course, my function is called only once, internally the function incorporates the two domains.

- n: allows calculation for say n=3 identical tributary areas (or lines)
- xbasis: allows determining moment about a vertical offset, say an xbasis = 5′ to the left
- ybasis: allows determining moment about a horizontal offset, say a ybasis = 20′ elevation (maybe calculating a vessel supported on lugs)
- x1, y1: starting coordinate of tributary line (diagonal lines are allowed)
- x2, y2: ending coordinate of tributary line (diagonal lines are allowed)
- w: width of tributary area (or line)
- To model a W10 truss diagonal say 13′ long on a 5:12 slope
- Set (x1, y1, x2, y2, w) = (0, 0, 12, 5, 0.833)

- cf: ASCE force coefficient
- v: wind velocity
- i: importance factor (now 1.0 in ASCE 7/16)
- g: gust factor
- kd: directionality factor
- datum=0: grade elevation (default=0, user specified otherwise)
- (datum specification allows use of real world elevations)

Function Usage

These days, I still use my function:

- with straight Python (works very well)
- with CoCalc (works very well using SageMath)
- with PyXLL as an Excel function (works very well)

Tributary loadings for the working points of a structure are easily calculated

The function allows calculation of loads on all types of geometries including:

- rectangular/cylindrical
- closed/open

Reference PDFs

**Derivation**

ASCE Wind Integration Derivation 11192016KLH.pdf

**Example — by hand calculation**

ASCE Wind Integration Examples 06132021KLH.pdf

**Example — above hand calculations are verified using Cocalc/Jupyter/SageMath**

**Tributary Loading**

See list of all ASCE posts.