Skip to main content

Logo Dark Logo Light

Run Tests Lint with Black Documentation Status codecov PyPI version Python versions GitHub license

A python package for the analysis of arbitrary cross-sections using the finite element method written by Robbie van Leeuwen. sectionproperties can be used to determine section properties to be used in structural design and visualise cross-sectional stresses resulting from combinations of applied forces and bending moments.

Subscribe to the mailing list!

Installation:

For more detailed installation instructions, refer to the documentation.

$ pip install sectionproperties

Documentation:

sectionproperties is fully documented including a user walkthrough, examples, background theory and an API guide. The documentation can find at https://sectionproperties.readthedocs.io/.

Current Capabilities:

Pre-Processor:

  • Python API
  • Geometry manipulation by Shapely
  • Common section geometry functions
  • Custom section geometry input
  • Rhino .3dm import
  • .dxf import
  • Perimeter offset tool
  • Quadratic triangular mesh generation
  • Composite material definition

Cross-Section Analysis:

  • Global axis geometric section properties:
    • Area
    • Perimeter
    • Mass
    • First moments of area
    • Second moments of area
    • Elastic centroid
  • Centroidal axis geometric section properties:
    • Second moments of area
    • Elastic section moduli
    • Yield moment
    • Radii of gyration
    • Plastic centroid
    • Plastic section moduli
    • Shape factors
  • Principal axis geometric section properties:
    • Second moments of area
    • Elastic section moduli
    • Yield moment
    • Radii of gyration
    • Plastic centroid
    • Plastic section moduli
    • Shape factors
  • Warping section properties:
    • Torsion constant
    • Warping constant
    • Monosymmetry constants
  • Shear section properties:
    • Shear centre (elastic method)
    • Shear centre (Trefftz's method)
    • Shear areas (global axis)
    • Shear areas (principal axis)
  • Cross-section stress analysis
  • Mohr's circles for stresses at a point

Solver:

  • Direct solver
  • CGS iterative solver
  • Sparse matrices

Post-Processor:

  • Plot geometry
  • Plot mesh
  • Plot centroids
  • Plot cross-section stresses
  • Retrieve cross-section stresses
  • Generate cross-section report

Disclaimer:

sectionproperties is an open source engineering tool that continues to benefit from the collaboration of many contributors. Although efforts have been made to ensure the that relevant engineering theories have been correctly implemented, it remains the user's responsibility to confirm and accept the output. Refer to the license for clarification of the conditions of use.

Changelog:

v2.0.1:

Fix issue with library module

v2.0.0:

sectionproperties v2 incorporates significant changes to the pre-processor, which now uses the Shapely <https://github.com/shapely/shapely>_ package to power advanced geometry creation and manipulation, and vastly improves the performance and robustness of the plastic section property algorithm. v2.x.x introduces many breaking changes from v1.x.x when creating and manipulating Geometry, refer to the documentation <https://sectionproperties.readthedocs.io>_ for more information.

Pre-Processor: ^^^^^^^^^^^^^^

A special mention to @connorferster <https://github.com/connorferster>_ for a majority of these fantastic additions!

  • sections.py renamed to geometry.py
  • All Geometry objects are defined by a shapely Polygon
  • Addition of new geometry manipulation methods and geometry set operators
  • Added .dxf import, thanks to @aegis1980 <https://github.com/aegis1980>_
  • Added .3dm import, thanks to @normanrichardson <https://github.com/normanrichardson>_
  • Introduction of a CompoundGeometry class for geometries with multiple regions
  • Geometry objects are assigned a Material property object, CompoundGeometry objects can contain multiple Geometry objects (each with their own Material object) enabling composite analysis
  • Geometry and CompoundGeometry objects contain mesh information and meshing must be performed before initialising a Section object
  • Improved .offset_perimeter() logic
  • Meshing is now performed by triangle <https://github.com/drufat/triangle>_, meshpy is no longer a dependency
  • Material class now requires a .density parameter
  • The section library (sectionproperties.pre.library) now contains the built-in sectionproperties geometries
  • Added triangular_section() and triangular_radius_section() to the primitive_sections library
  • Added concrete_sections library - contains concrete_rectangular_section(), concrete_tee_section() and concrete_circular_section()
  • Added bridge_section library, thanks to @ccaprani <https://github.com/ccaprani>_ - contains super_t_girder_section() and i_girder_section()

Analysis: ^^^^^^^^^

  • cross_section.py renamed to section.py
  • CrossSection object renamed to Section and is now initialised with only a Geometry or CompoundGeometry object
  • Added calculation of cross-section mass
  • Added calculation of weighted material properties - E_eff, G_eff, nu_eff
  • The plastic algorithm is now performed by shapely, improving performance and robustness
  • Added calculation of principal stresses, thanks to @ccaprani <https://github.com/ccaprani>_
  • Shape factors are no longer calculated for composite sections (irrelevant property)

Post-Processor: ^^^^^^^^^^^^^^

  • Added the plotting_context() manager, allowing easily saving files, passing kwargs to pyplot.subplots() and much more! Many thanks to @Spectre5 <https://github.com/Spectre5>_
  • Improved contour plotting behaviour
  • Added plotting of Mohr's circle of stresses for any given point, thanks to @ccaprani <https://github.com/ccaprani>_
  • .display_results() now reports E.J and E.Iw instead of G.J and G.Iw
  • .display_results() now reports modulus weighted shear areas for composite sections

Misc.: ^^^^^^

  • Many spelling and code style fixes, thanks to @Spectre5 <https://github.com/Spectre5>_
  • Updated documentation to include theoretical background
  • Updated examples to be performed by sphinx-gallery, thanks to @normanrichardson <https://github.com/normanrichardson>_ and @Spectre5 <https://github.com/Spectre5>_

v1.0.8:

  • All plots now return figure and axes objects
  • Fix bug in frame_properties causing the program to crash under certain circumstances

v1.0.7:

  • Fix bug with geometry cleaning algorithm resulting in an infinite loop
  • Added NASTRAN sections (JohnDN90)
  • Added tight_layout to plots (Nils Wagner)
  • Added BoxGirderSection class
  • Added cross-section perimeter calculation
  • Added perimeter offset method (BETA)
  • Added mesh refinement example to docs

v1.0.6:

  • Fix bug with geometry cleaning algorithm resulting in an infinite loop
  • Added NASTRAN sections (JohnDN90)
  • Added tight_layout to plots (Nils Wagner)
  • Added BoxGirderSection class
  • Added cross-section perimeter calculation
  • Added perimeter offset method (BETA)
  • Added mesh refinement example to docs

v1.0.5:

  • Added calculation of monosymmetric constants
  • Added tapered flange I Section and channel sections
  • Added solid elliptical and hollow elliptical sections (BenjaminFraser)
  • Added polygonal section (Agent6-6-6)
  • Handle zero radius for all section classes; handle r_out < t for relevant sections
  • Update Cee and Zed sections to account for short lips

v1.0.4:

  • Added a monosymmetric I Section class
  • Extend the plastic centroid search range to the entire section
  • Remove the pc_region variable from the plastic centroid calculation as it is no longer relevant
  • Better verbose output for the plastic centroid calculation

v1.0.3:

  • Retrieve cross-section stresses using get_stress()

v1.0.2:

  • Fix returns for adding to geometry

v1.0.1:

  • Added calculate_frame_properties()
  • Added methods for adding points, facets and control points to geometries
  • New pypi README file

v1.0.0:

  • Initial release.

Metadata

Release files for sectionproperties 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sectionproperties 2.0.1
File Size Uploaded
sectionproperties-2.0.1.tar.gz 90.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sectionproperties 2.0.1
File Interpreter ABI Platform
sectionproperties-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 186.9 kB

Release files / sectionproperties-2.0.1.tar.gz

Download URL sectionproperties-2.0.1.tar.gz
Size 90.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d3dd59125cfa574bc775c7bcf26476882d7594c74e3dde640f13b77d9d204bcd
BLAKE2b-256 checksum
How to use checksums
b1f72abdcc5a8d6eb96365a5ce28a407356c68fdb0fc94a1e129a28af275fc4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / sectionproperties-2.0.1-py3-none-any.whl

Download URL sectionproperties-2.0.1-py3-none-any.whl
Size 96.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3ddf3db992e162f0c0641369ba525dc74ae8409d1c3907bc5bde0bf3b1a8f68
BLAKE2b-256 checksum
How to use checksums
18873351b80d31ad93d12f6ade9ac8f3cbb6fadd02e28ea39c1defcefb8d316b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release history Release notifications | RSS feed

3.10.2

2 release files

3.10.1

2 release files

3.10.0

2 release files

3.9.0

2 release files

3.8.0

2 release files

3.7.3

2 release files

3.7.2

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.0

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page