GXBeam

GXBeam: A Pure Julia Implementation of Geometrically Exact Beam Theory - Published in JOSS (2022)

https://github.com/byuflowlab/gxbeam.jl

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    2 of 10 committers (20.0%) from academic institutions
  • Institutional organization owner
    Organization byuflowlab has institutional domain (flow.byu.edu)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

beam-elements finite-element-analysis gebt julia nonlinear

Keywords from Contributors

pde interpretability meshing fluxes standardization

Scientific Fields

Mathematics Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation

Repository

Pure Julia Implementation of Geometrically Exact Beam Theory

Basic Info
  • Host: GitHub
  • Owner: byuflowlab
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 70.7 MB
Statistics
  • Stars: 91
  • Watchers: 4
  • Forks: 18
  • Open Issues: 15
  • Releases: 22
Topics
beam-elements finite-element-analysis gebt julia nonlinear
Created over 5 years ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

GXBeam

DOI status

Pure Julia Implementation of Geometrically Exact Beam Theory

Author: Taylor McDonnell

GXBeam is a pure Julia implementation of Geometrically Exact Beam Theory, originally based on the open source code GEBT and its associated papers[1][2], though it has since been augmented with a number of additional features.

As a sample of one of the many things this package can do, here's a time domain simulation of the dynamic response of a joined wing subjected to a simulated gust, scaled up in order to visualize the deflections:

And here's a dynamic simulation of a wind turbine subjected to a sinusoidal tip load.

Package Features

  • Performs multiple types of analyses including:
    • Linear/Nonlinear static analyses
    • Linear/Nonlinear steady-state analyses
    • Linear/Nonlinear eigenvalue analyses (by linearizing about a steady state condition)
    • Linear/Nonlinear time-marching dynamic analyses
  • Accurately models arbitrary systems of interconnected highly flexible composite beams.
    • Captures all geometric nonlinearities due to large deflections and rotations (subject to a small strain assumption)
    • Models angular displacements of any magnitude using only three parameters
    • Uses the full 6x6 Timoshenko beam stiffness matrix
  • Calculate section compliance and inertia matrices and compute strain recovery
    • Uses quadrilateral finite elements rather than classical lamiante theory for much better accuracy and cross coupling
    • Allows for general geometry with inhomogenous properties and anisotropic behavior (computes full 6x6 matrix)
    • Ply materials are general orthotropic
    • Provides convenience method for paramterizing airfoil layups
    • Strain recovery functionality to compute stresses and strains on the mesh using the results of the beam solution
    • Tsai-wu failure criteria
  • Models time-varying distributed forces/moments including
    • Point and distributed loads which remain fixed in the body-frame
    • Point and distributed loads which rotate with the structure
    • Loads due to known body frame velocities and accelerations
    • Gravitational loads acting on beam elements and point masses
    • Loads resulting from stiffness-proportional structural damping
  • Optional DifferentialEquations interface.
    • Constant mass matrix differential algebraic equation formulation
    • Fully implicit differential algebraic equation formulation
  • Provides derivatives with ForwardDiff (including overloading internal solvers with implicit analytic methods)
  • Result visualization using WriteVTK
  • Verified and validated against published analytical and computational results. See the examples in the documentation.

Installation

Enter the package manager by typing ] and then run the following:

julia pkg> add GXBeam

Performance

This code has been optimized to be highly performant. In our tests we found that GXBeam outperforms GEBT by a significant margin across all analysis types, as seen in the following table. More details about the specific cases which we test may be found by inspecting the input files and scripts for these tests in the benchmark folder.

| Package | Steady Analysis | Eigenvalue Analysis | Time Marching Analysis | |---- | ----| --- | --- | | GEBT | 13.722 ms | 33.712 ms | 26.870 s | | GXBeam | 4.716 ms | 18.478 ms | 9.019 s |

Usage

See the documentation

Limitations

By using the simplest possible shape functions (constant or linear shape functions), this package avoids using numerical quadrature except when integrating applied distributed loads (which can be pre-integrated). 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. More details about the convergence of this package may be found in the examples.

This package 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 the 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).

This package relies on the results of linear cross-sectional analyses. Most notably, it 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.

Related Codes

GEBT: Open source geometrically exact beam theory code developed in Fortran as a companion to the proprietary cross sectional analysis tool VABS. The theory for this code is provided in references 1 and 2. GXBeam was originally developed based on this package and its associated papers, but has since been augmented with additional features.

BeamDyn: Open source geometrically exact beam theory code developed in Fortran by NREL as part of the OpenFAST project. This code was also developed based on GEBT, but uses Legendre spectral finite elements. This allows for exponential rather than algebraic convergence when the solution is smooth. This makes this code a good candidate for use when analyzing beams with smoothly varying properties. Unfortunately, the code is limited to analyzing a single beam, rather than an assembly of beams.

The cross sectional analysis uses the same underlying theory as in BECAS, but was written to be fast and optimization-friendly. VABS and PreComp are other popular tools for composite cross sectional analysis. The former is not freely available, whereas the latter is lower fidelity as it is based on classical laminate theory.

Contributing

Contributions are welcome and encouraged. If at any point you experience issues or have suggestions related to this package, create a new Github issue so we can discuss it. If you're willing to help solve an issue yourself, we encourage you to create a fork of this repository and submit a pull request with the requested change. Pull requests should generally also add a unit test in test/runtests.jl to ensure that issues do not reoccur along with future changes.

References

[1] Yu, W., & Blair, M. (2012). GEBT: A general-purpose nonlinear analysis tool for composite beams. Composite Structures, 94(9), 2677-2689.

[2] Wang, Q., & Yu, W. (2017). Geometrically nonlinear analysis of composite beams using Wiener-Milenković parameters. Journal of Renewable and Sustainable Energy, 9(3), 033306.

[3] Hodges, D. (2006). Nonlinear Composite Beam Theory. American Institute of Aeronautics and Astronautics.

Owner

  • Name: BYU FLOW Lab
  • Login: byuflowlab
  • Kind: organization
  • Location: Provo, UT

FLight, Optimization, and Wind

JOSS Publication

GXBeam: A Pure Julia Implementation of Geometrically Exact Beam Theory
Published
May 25, 2022
Volume 7, Issue 73, Page 3997
Authors
Taylor McDonnell ORCID
Department of Mechanical Engineering, Brigham Young University, Provo, UT, 84602, USA
Andrew Ning ORCID
Department of Mechanical Engineering, Brigham Young University, Provo, UT, 84602, USA
Editor
Prashant Jha ORCID
Tags
structural dynamics finite element analysis beam elements

GitHub Events

Total
  • Create event: 3
  • Release event: 1
  • Issues event: 2
  • Watch event: 3
  • Delete event: 4
  • Issue comment event: 16
  • Push event: 12
  • Pull request review event: 5
  • Pull request event: 10
  • Fork event: 1
Last Year
  • Create event: 3
  • Release event: 1
  • Issues event: 2
  • Watch event: 3
  • Delete event: 4
  • Issue comment event: 16
  • Push event: 12
  • Pull request review event: 5
  • Pull request event: 10
  • Fork event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 589
  • Total Committers: 10
  • Avg Commits per committer: 58.9
  • Development Distribution Score (DDS): 0.143
Past Year
  • Commits: 3
  • Committers: 2
  • Avg Commits per committer: 1.5
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email Commits
Taylor McDonnell t****l@g****m 505
Andrew Ning a****g@b****u 43
github-actions[bot] 4****] 12
CompatHelper Julia c****y@j****g 12
tylercritchfield t****d@g****m 9
Adam Cardoza a****m@c****e 3
Kevin R. Moore k****r@s****v 2
yosinlpet y****t@g****m 1
dcaprace d****e@b****u 1
Judd Mehr j****r@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 58
  • Total pull requests: 63
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 month
  • Total issue authors: 19
  • Total pull request authors: 9
  • Average comments per issue: 2.26
  • Average comments per pull request: 0.22
  • Merged pull requests: 55
  • Bot issues: 0
  • Bot pull requests: 22
Past Year
  • Issues: 2
  • Pull requests: 4
  • Average time to close issues: about 13 hours
  • Average time to close pull requests: 23 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 3.0
  • Average comments per pull request: 1.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • taylormcd (18)
  • PetrKryslUCSD (11)
  • tylercritchfield (4)
  • RibeiroAndre (4)
  • Cardoza2 (3)
  • luizpancini (3)
  • axla-io (2)
  • Kevin-Mattheus-Moerman (2)
  • limaomaolwh (1)
  • kevmoor (1)
  • ChrisRackauckas (1)
  • EdoAlvarezR (1)
  • aaronlsd11 (1)
  • benlw (1)
  • yosinlpet (1)
Pull Request Authors
  • taylormcd (30)
  • github-actions[bot] (25)
  • tylercritchfield (3)
  • Cardoza2 (3)
  • kevmoor (2)
  • juddmehr (2)
  • fredrikekre (2)
  • yosinlpet (1)
  • andrewning (1)
Top Labels
Issue Labels
bug (1) documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • julia 10 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 22
juliahub.com: GXBeam

Pure Julia Implementation of Geometrically Exact Beam Theory

  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 10 Total
Rankings
Forks count: 9.3%
Dependent repos count: 9.9%
Stargazers count: 12.0%
Average: 17.6%
Dependent packages count: 38.9%
Last synced: 6 months ago

Dependencies

.github/workflows/CI.yaml actions
  • actions/checkout v2 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-docdeploy v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/CompatHelper.yml actions
.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite