1. IntroductionΒΆ

The Polynomial Beam Element Analysis Module (pBEAM) is a finite element code for beam-like structures. The methodology uses Euler-Bernoulli beam elements with 12 degrees of freedom (3 translation and 3 rotational at each end of the element). The basic theory is described in Yang [Yan86]. A unique feature of the code is that section properties can be described as polynomials of any order between nodes (e.g., EIxx could vary quarticly across an element). This allows for higher fidelity in describing variation in structural properties, which means higher accuracy can be achieved with fewer elements. The use of polynomials also allows for higher accuracy because integrals and derivatives are evaluated analytically rather than numerically and have greater flexibility in extending the code by using higher-order shape functions.

pBEAM was originally written to analyze tower/monopiles and rotor blades of wind turbines; however, the approach is general enough to be used for any beam-like structure. pBEAM is written in C++ and can be used directly in C++ or imported as a Python module. The Python module exposes the full class structure of the finite element code, allowing for flexible usage in a object-oriented scripting environment, while the analysis retains the speed advantage of compiled C++. If desired the C++ code could easily be adapted to run as a stand-alone command-line executable that reads data from an input file; however, that type of usage is not included.

pBEAM can estimate structural mass, deflections in all degrees of freedom, coupled natural frequencies, critical global axial buckling loads, and axial stress/strain. All inputs and outputs are given about the elastic center and in principal axes in order to remove cross-coupling terms. Any arbitrary definition of the structural properties can be translated to the elastic center and rotated to the principal axes (see Hansen [Han08] for example).