GXBeam: A Pure Julia Implementation of Geometrically Exact Beam Theory

When the cross sections of a three-dimensional structure are small compared to the length of the structure, beam theory may be used to efficiently model the structure’s three-dimensional behavior. Applications of beam theory include, but are not limited to, the structural modeling of buildings, bridges, aircraft, helicopter blades, and wind turbines. When deflections are small, linear beam theories may be used to model the behavior of slender structures. When deflections become significant, such as encountered when modeling high aspect ratio wings or large wind turbine blades, nonlinearities associated with geometric deformations must be accounted for. Geometrically exact beam theory, as pioneered by Reissner 1973), captures all of the nonlinearities associated with large deflections and rotations. This beam theory was extended to model general three dimensional dynamics by Simo 1985) and Simo and Vu-Quoc 1988) and has since been the extended and used by many researchers The various improvements to geometrically exact beam theory proposed by researchers throughout the years have progressed geometrically exact beam theory to the point where it has now become an invaluable resource for analyzing and modeling


Summary
When the cross sections of a three-dimensional structure are small compared to the length of the structure, beam theory may be used to efficiently model the structure's three-dimensional behavior. Applications of beam theory include, but are not limited to, the structural modeling of buildings, bridges, aircraft, helicopter blades, and wind turbines. When deflections are small, linear beam theories may be used to model the behavior of slender structures. When deflections become significant, such as encountered when modeling high aspect ratio wings or large wind turbine blades, nonlinearities associated with geometric deformations must be accounted for.
Geometrically exact beam theory, as pioneered by Reissner (Reissner, 1973), captures all of the nonlinearities associated with large deflections and rotations. This beam theory was extended to model general three dimensional dynamics by Simo (Simo, 1985) and Simo and Vu-Quoc (Simo & Vu-Quoc, 1986 and has since been the extended and used by many researchers (Betsch & Steinmann, 2002;Cardona & Geradin, 1988;Dvorkin et al., 1988;Ibrahimbegović, 1995;Ibrahimbegović et al., 1995;Ibrahimbegović & Mikdad, 1998;Iura & Atluri, 1988;Jelenić & Saje, 1995;Ritto-Corrêa & Camotim, 2002). The various improvements to geometrically exact beam theory proposed by researchers throughout the years have progressed geometrically exact beam theory to the point where it has now become an invaluable resource for analyzing and modeling highly flexible slender structures.

Statement of Need
GXBeam is a geometrically exact beam theory package which is written completely in the Julia programming language (Bezanson et al., 2017). It was originally based on the open source code GEBT and its associated papers (Wang & Yu, 2017;Yu & Blair, 2012), which adopt the mixed formulation of geometrically exact beam theory presented by Hodges (Dewey H. Hodges, 1990). When combined with a beam cross sectional analysis, such as a variational asymptotic beam sectional analysis (Dewey H. Hodges, 2006), this geometrically exact beam theory formulation constitutes an efficient and accurate replacement for a full three-dimensional structural analysis.
One of the key advantages of GXBeam relative to other geometrically exact beam theory codes is that it is written completely in the Julia programming language. This presents several advantages for the GXBeam package. First, since Julia is a higher-level language, the code is generally easier to develop, maintain, and extend than lower-level languages. This is especially helpful from a research perspective if one wishes to include GXBeam as a component of a multidisciplinary design optimization framework or fluid structure interaction solver. Second, by leveraging Julia's type system, Julia-specific automatic differentiation packages (such as ForwardDiff (Revels et al., 2016)) may be used to obtain exact derivatives for sensitivity analyses or gradient-based optimization. Third, by maintaining type stability and minimizing allocations, this package is able to perform analyses with minimal overhead compared to lower-level languages such as C or Fortran. Finally, the code is able to access and use several well-developed Julia-specific packages to enhance its capabilities such as NLsolve (Mogensen et al., 2020) for solving nonlinear sets of equations, WriteVTK (Polanco, 2021) for writing visualization files, and DifferentialEquations (Rackauckas & Nie, 2017) for solving differential equations.
Even if one were to disregard the advantages associated with the use of the Julia language, GXBeam is still one of the most feature-rich open-source geometrically exact beam theory programs available. Rather than restricting analyses to a single beam, GXBeam is able to model complex systems of interconnected nonlinear composite beams. GXBeam also allows for a wide variety of analyses to be performed including linear or nonlinear static, steady state, eigenvalue, and time marching analyses. Loads in GXBeam may be applied to nodes or elements and expressed as arbitrary functions of time. Native support for gravitational loads and reference frame linear/angular velocities and accelerations are also provided. Additionally, GXBeam allows point masses or rigid bodies with potentially time-varying inertial properties to be placed at arbitrary locations throughout each beam assembly.
While GXBeam may be applied to a large number of problems, it has some limitations which should be kept in mind. First, by using the simplest possible shape functions (a combination of constant and linear shape functions), this package avoids using numerical quadrature except when integrating applied distributed loads. As a result, element properties are approximated as constant throughout each beam element and a relatively large number of beam elements may be necessary to achieve grid-independent results. This package also does not currently model cross section warping and therefore should not be used to model open cross sections (such as I, C, or L-beams). The one exception to this rule is if a beam's width is much greater than its height, in which case the beam may be considered to be strip-like (like a helicopter blade). GXBeam also relies on the results of linear cross-sectional analyses and therefore does not model the nonlinear component of the Trapeze effect, which is the tendency of a beam to untwist when subjected to axial tension. This nonlinear effect is typically most important when modeling rotating structures such as helicopter blades due to the presence of large centrifugal forces. It is also more important when modeling strip-like beams than for modeling closed cross-section beams due to their low torsional rigidity.
Despite its current limitations, GXBeam is useful in a variety of situations both as a standalone tool and as a component of a larger analysis framework. Its results are designed to be smooth and continuous, so that the package may be used as part of a gradient-based design optimization framework. The package is also designed to be modular, so that it can be used as part of a fluid-structure interaction framework. It has also been verified and validated using analytical, computational, and experimental results so that users may be reasonably confident that the results predicted by GXBeam are correct (when used within the theoretical limitations of geometrically exact beam theory). These verifications and validations are included as part of the package's documentation so the accuracy of the package can be verified by anyone wishing to use it. In summary, the feature-rich and validated capabilities of GXBeam make it a very useful tool in a variety of use cases for modeling the behavior of highly flexible slender structures.