diff --git a/joss.06105/10.21105.joss.06105.crossref.xml b/joss.06105/10.21105.joss.06105.crossref.xml new file mode 100644 index 0000000000..2326644574 --- /dev/null +++ b/joss.06105/10.21105.joss.06105.crossref.xml @@ -0,0 +1,153 @@ + + + + 20240419T142406-8a7859b801187fdc4ec49d88f4e110ec78438c83 + 20240419142406 + + JOSS Admin + admin@theoj.org + + The Open Journal + + + + + Journal of Open Source Software + JOSS + 2475-9066 + + 10.21105/joss + https://joss.theoj.org + + + + + 04 + 2024 + + + 9 + + 96 + + + + sectionproperties: A Python package for the analysis of +arbitrary cross-sections using the finite element method + + + + Robbie + van Leeuwen + https://orcid.org/0009-0004-8056-3977 + + + Connor + Ferster + https://orcid.org/0009-0005-0861-2428 + + + + 04 + 19 + 2024 + + + 6105 + + + 10.21105/joss.06105 + + + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + + + + Software archive + 10.5281/zenodo.8433188 + + + GitHub review issue + https://github.com/openjournals/joss-reviews/issues/6105 + + + + 10.21105/joss.06105 + https://joss.theoj.org/papers/10.21105/joss.06105 + + + https://joss.theoj.org/papers/10.21105/joss.06105.pdf + + + + + + Analysis and design of elastic beams: +Computational methods + Pilkey + 10.1002/9780470172667 + 9780471381525 + 2002 + Pilkey, W. D. (2002). Analysis and +design of elastic beams: Computational methods. Wiley. +https://doi.org/10.1002/9780470172667 + + + The finite element method: Theory, +implementation, and applications + Larson + 10 + 10.1007/978-3-642-33287-6 + 9783642332869 + 2013 + Larson, M. G., & Bengzon, F. +(2013). The finite element method: Theory, implementation, and +applications (1st ed., Vol. 10). Springer Berlin, Heidelberg. +https://doi.org/10.1007/978-3-642-33287-6 + + + Shapely + Gillies + 10.5281/zenodo.5597138 + 2023 + Gillies, S., Wel, C. van der, Van den +Bossche, J., Taves, M. W., Arnott, J., Ward, B. C., & others. +(2023). Shapely (Version 2.0.2). +https://doi.org/10.5281/zenodo.5597138 + + + Triangle + Rufat + GitHub repository + 2023 + Rufat, D. (2023). Triangle. In GitHub +repository. GitHub. +https://github.com/drufat/triangle + + + Delaunay refinement algorithms for triangular +mesh generation + Shewchuk + Computational Geometry + 1 + 22 + 10.1016/S0925-7721(01)00047-5 + 2002 + Shewchuk, J. R. (2002). Delaunay +refinement algorithms for triangular mesh generation. Computational +Geometry, 22(1), 21–74. +https://doi.org/10.1016/S0925-7721(01)00047-5 + + + + + + diff --git a/joss.06105/10.21105.joss.06105.jats b/joss.06105/10.21105.joss.06105.jats new file mode 100644 index 0000000000..b2c0197893 --- /dev/null +++ b/joss.06105/10.21105.joss.06105.jats @@ -0,0 +1,377 @@ + + +
+ + + + +Journal of Open Source Software +JOSS + +2475-9066 + +Open Journals + + + +6105 +10.21105/joss.06105 + +sectionproperties: A Python package for the analysis of +arbitrary cross-sections using the finite element method + + + +https://orcid.org/0009-0004-8056-3977 + +van Leeuwen +Robbie + + + + +https://orcid.org/0009-0005-0861-2428 + +Ferster +Connor + + + + + +Independent Researcher, Australia + + + + +Independent Researcher, Canada + + + + +13 +10 +2023 + +9 +96 +6105 + +Authors of papers retain copyright and release the +work under a Creative Commons Attribution 4.0 International License (CC +BY 4.0) +2022 +The article authors + +Authors of papers retain copyright and release the work under +a Creative Commons Attribution 4.0 International License (CC BY +4.0) + + + +python +computational mechanics +finite element method +cross-section +stress analysis +engineering + + + + + + Summary +

Properties of plane cross-sections are often required in + engineering research, analysis, and design. For example, + cross-sectional properties are used to determine the displacements, + natural frequencies, and stresses within beams under complex loading. + sectionproperties is a Python package for the + analysis of arbitrary cross-sections using the finite + element method. sectionproperties can be used + to determine geometric and warping properties, as well as visualising + cross-sectional stresses resulting from combinations of applied loads. + sectionproperties aims to provide a + pre-processor, analysis engine, and post-processor, in a single open + source and accessible package, that can be used by researchers, + practising engineers, and students.

+
+ + Statement of Need +

Obtaining the geometric properties of simple shapes is a classical + engineering problem with well-defined analytical solutions. However, + obtaining warping properties, e.g. for torsion and shear analyses, + involves solving partial differential equations + (Pilkey, + 2002). While some analytical solutions exist for a small subset + of geometries, the method for obtaining these results is not able to + be generalised to shapes commonly used in engineering pratice. + Further, the analysis of arbitrary composite geometries, in which a + cross-section could consist of any shape with any number of internal + holes, and be made from any number of materials, complicates both + geometric and warping computations.

+

To the best of our knowledge, there is no open source software + available for the computation of both geometric and warping propreties + for composite, arbitary cross-sections. While there are several + commercial solutions available, e.g. + RSECTION 1, + ShapeDesigner SaaS, + or + CADRE Profiler, + none of these are open source or provide an application programming + interface (API) that would enable these programs to be used for + research. As a result, sectionproperties + supports both engineering practice and research, by implementing an + open source solution to the complex modelling problem that is + arbitrary composite geometric and warping analyses.

+
+ + Implementation +

sectionproperties harnesses the power of + Shapely + (Gillies + et al., 2023) to streamline geometry generation, and triangle + (Rufat, + 2023) (a python port of Triangle + (Shewchuk, + 2002)) to produce a triangular mesh of six-noded quadratic + elements. The finite element method is used to solve for the geometric + and warping properties, the latter involving the solution of partial + differential equations and boundary value problems + (Pilkey, + 2002). For example, the Saint-Venant torsion constant + ( + + J) + is obtained by solving for the warping function, + + + ω + (Pilkey, + 2002):

+

+ + 2ω=0

+

subject to the boundary condition:

+

+ + ωxnx+ωyny=ynxxny

+

Using the finite element method, this problem is reduced to a set + of linear equations of the form:

+

+ + 𝐊𝛚=𝐅

+

where the stiffness matrix and load vector at the element level are + defined as:

+

+ + 𝐤e=i=16wi𝐁iT𝐁iJi

+

+ + 𝐟e=i=16wi𝐁iT[𝐍i𝐲e𝐍i𝐱e]Ji

+

In the above, + + 𝐍 + and + + 𝐁 + are the shape functions and their derivatives, and + + + wi + and + + Ji + are the weights and Jacobians of the current integration point. The + boundary conditions neccesitate the inversion of a nearly singular + global stiffness matrix. As such, the Lagrangian multiplier method is + used to solve the set of linear equations of the form + + + 𝐊𝐮=𝐅 + by introducing an extra constraint on the solution vector, whereby the + mean value is equal to zero + (Larson + & Bengzon, 2013).

+

+ + [𝐊𝐂T𝐂0][𝐮λ]=[𝐅0]

+

where + + 𝐂 + is the assembly of + + iwi𝐍iJi, + and + + λ + may be though of as a relatively small force acting to enforce the + constraints. Once the warping function has been evaluated, the + Saint-Venant torsion constant can be calculated as follows:

+

+ + J=Ixx+Iyy𝛚T𝐊𝛚

+

The calculation of plastic properties is meshless, and is conducted + using an iterative method to enforce plastic equilibrium, yielding the + plastic centroids. A full description of the theoretical background + underpinning sectionproperties can be found in + the + documentation.

+

An example of some of the visualisation generated by + sectionproperties can be seen in + [fig:example] + below.

+ +

Plot of the centroids and torsion stress distribution + for a bulb-section modelled in + sectionproperties.

+ +
+
+ + Software Development +

The sectionproperties package is available + on + GitHub, + where the source code, issue tracker, CI workflow, and discussion + board can be found. Pre-commit hooks are used to ensure code quality + and style is consistent across all contributions. There is an + extensive testing and validation suite used to ensure that the output + produced by sectionproperties is verified and + repeatable, including a set of benchmarking tests. + sectionproperties has an actively maintained + and complete + documentation, + including + installation + instructions, a detailed + user + guide, a list of + examples, + and an + API + reference.

+
+ + Conclusion +

In this paper we have described + sectionproperties, a Python package that + calculates the section properties of arbitrary sections. It is our + hope that this project is used by researchers and practising engineers + to improve their experimental and analysis workflows.

+
+ + Acknowledgements +

We acknowledge the contributions from all the + contributors + to sectionproperties.

+
+ + + + + + + PilkeyW. D. + + Analysis and design of elastic beams: Computational methods + Wiley + New York + 2002 + 9780471381525 + 10.1002/9780470172667 + + + + + + LarsonM. G. + BengzonF. + + The finite element method: Theory, implementation, and applications + Springer Berlin, Heidelberg + Netherlands + 2013 + 10 + 1 + 9783642332869 + 10.1007/978-3-642-33287-6 + + + + + + GilliesSean + WelCasper van der + Van den BosscheJoris + TavesMike W. + ArnottJoshua + WardBrendan C. + others + + Shapely + 202310 + https://github.com/shapely/shapely + 10.5281/zenodo.5597138 + + + + + + RufatD. + + Triangle + GitHub repository + GitHub + 2023 + https://github.com/drufat/triangle + + + + + + ShewchukJ. R. + + Delaunay refinement algorithms for triangular mesh generation + Computational Geometry + Elsevier B.V + 2002 + 22 + 1 + 10.1016/S0925-7721(01)00047-5 + 21 + 74 + + + + +
diff --git a/joss.06105/10.21105.joss.06105.pdf b/joss.06105/10.21105.joss.06105.pdf new file mode 100644 index 0000000000..fe9c9c8f3a Binary files /dev/null and b/joss.06105/10.21105.joss.06105.pdf differ diff --git a/joss.06105/media/figures/example.png b/joss.06105/media/figures/example.png new file mode 100644 index 0000000000..dca00d4445 Binary files /dev/null and b/joss.06105/media/figures/example.png differ