Skip to main content

PlaneSections

A lightweight finite element beam bending library built on libraries like PyNite and OpenSeesPy. The goal of PlaneSections is to make easy-to-use beam anayses, which can be used to quickly document structural calculations.

NOTE: Units for force and length must be applied to the beam in a consistent unit base for FEM. PlaneSections has been set up with Metric units in mind in terms of scaling diagrams. For those using imperial units, results will work with a consitent unit basis, but the scale of the digrams may be off.

PlaneSections is a FEM solver! Results are only stored at nodes specified by the user - all intermediate values in plots are linearly interpolated.

Contents

Installation

The default package is installable through pip.

pip install planesections

The package with the optional OpenSeesPy dependancy is installable with

pip install planesections[opensees]

Features:

2D and 3D beams can be anayzed under the following force types:

  • Point loads
  • Point Moments
  • Line Element loads
  • Linearly varying element loads (2D only).

Diagrams can also be made of 2D beams, but the support types that can be plotted are limited.

Documentation

All major functions and classes are documented on read-the-docs: https://planesections.readthedocs.io/en/latest/

Demo

The PlaneSections can analyze and document beam plots for calcualtions. Below we make a beam, create a diagram of it, then get the output bending moment and shear force diagrams. It's also possible to get rotation, and deflection diagrams but these are not shown here.

import planesections as ps

# Define node locations, and support conditions
L = 5
beam = ps.newEulerBeam(L)

# Define beam and fixities
pinned = [1,1,0]
beam.setFixity(L*0.1, pinned, label = '1')
beam.setFixity(L*0.9, pinned)

# Define loads
Pz = -1
beam.addVerticalLoad(0, Pz, label = 'A')
beam.addVerticalLoad(L*0.5, 2*Pz, label = 'B')
beam.addVerticalLoad(L, Pz, label = 'C')
beam.addDistLoadVertical(0, L, Pz)
beam.addDistLoadVertical(1, L*0.3, 5*Pz)

# Plot the beam diagram
ps.plotBeamDiagram(beam)

# Run the analysis
analysis = ps.PyNiteAnalyzer2D(beam)
analysis.runAnalysis()

# Plot the SFD and BMD
ps.plotShear(beam)
ps.plotMoment(beam)

Coordinates

The coordinant system used for beams is as follows:

Further Examples

See the examples folder for more examples!

Solvers

The opensees solver is included as an optional dependancy. It is significantly faster than the PyNite solver (~100x), but the license is more limited in use. OpenSees allows commercial use of the package, but does not allow resale without permission, so use at your own risk! OpenSees License.

Some restrictions exist for OpenSees license, so this library has been added as an optional dependancy

Status

PlaneSections is almost "feature complete" in terms of it's analysis functionality. The only additional analysis features I might include are:

  • Spring supports
  • Internal hinges
  • Better cross section support These are not slated to be in the next release.

Metadata

Release files for planesections 1.4.2

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

Source distribution (sdist)

Source distribution for planesections 1.4.2
File Size Uploaded Provenance Actions
planesections-1.4.2.tar.gz 52.9 kB Without provenance Details for planesections-1.4.2.tar.gz

Built distribution (wheel)

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

Total release size: 107.2 kB

Release files / planesections-1.4.2.tar.gz

Download URL planesections-1.4.2.tar.gz
Size 52.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c19c9a2f4338f4055839ff9ebe23e8c25ce2f0e519b571064e5312f413b89046
BLAKE2b-256 checksum
How to use checksums
b6c13417b3f021c0a24e3d1c6335c212bb0595e9072762409ad7ad0f2bfac1f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / planesections-1.4.2-py3-none-any.whl

Download URL planesections-1.4.2-py3-none-any.whl
Size 54.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8660f3f952b5c1a3887cc5f4ca584dcdae368378bad4275c6dde1c128ee7267a
BLAKE2b-256 checksum
How to use checksums
b7fec3b9d823a8749911f2257462f8f0083553b208f6020c3ffaa5ad3d049618
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Security for planesections 1.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.4.2 This release

2 release files No provenance

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