Name | planesections JSON |
Version |
1.4.2
JSON |
| download |
home_page | None |
Summary | A light-weight FEM beam analyzer. |
upload_time | 2025-08-11 08:18:30 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
keywords |
fem
structures
beams
diagrams
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# PlaneSections
<p align="center">
<img src="https://github.com/cslotboom/planesections/raw/main/doc/img/Beam Image.png" width="500">
</p>
A lightweight finite element beam bending library built on libraries like [PyNite](https://github.com/JWock82/PyNite) and [OpenSeesPy](https://github.com/zhuminjie/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](https://femci.gsfc.nasa.gov/units/index.html).
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](https://github.com/cslotboom/planesections#Installation)
* [Features](https://github.com/cslotboom/planesections#Features)
* [Documentation](https://github.com/cslotboom/planesections#Documentation)
* [Demo](https://github.com/cslotboom/planesections#Demo)
* [Coordinates](https://github.com/cslotboom/planesections#Coordinates)
* [Solvers](https://github.com/cslotboom/planesections#Solvers)
* [Work Status](https://github.com/cslotboom/planesections#Status)
## 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.
``` Python
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)
```
<p align="center">
<img src="https://github.com/cslotboom/planesections/raw/main/doc/img/Beam-Image-2.png" width="500">
</p>
<p align="center">
<img src="https://github.com/cslotboom/planesections/raw/main/doc/img/Beam-Image-2-SFD.png" width="500">
</p>
<p align="center">
<img src="https://github.com/cslotboom/planesections/raw/main/doc/img/Beam-Image-2-BMD.png" width="500">
</p>
## Coordinates
The coordinant system used for beams is as follows:
<p align="center">
<img src="https://github.com/cslotboom/planesections/raw/main/doc/img/coords/forces.JPG" width="700">
</p>
## 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.](https://opensees.github.io/OpenSeesDocumentation/developer/license.html)
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.
Raw data
{
"_id": null,
"home_page": null,
"name": "planesections",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "FEM, structures, beams, diagrams",
"author": null,
"author_email": "Christian Slotboom <christian.slotboom@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/b6/c1/3417b3f021c0a24e3d1c6335c212bb0595e9072762409ad7ad0f2bfac1f1/planesections-1.4.2.tar.gz",
"platform": null,
"description": "# PlaneSections\r\n<p align=\"center\">\r\n <img src=\"https://github.com/cslotboom/planesections/raw/main/doc/img/Beam Image.png\" width=\"500\">\r\n</p>\r\n\r\nA lightweight finite element beam bending library built on libraries like [PyNite](https://github.com/JWock82/PyNite) and [OpenSeesPy](https://github.com/zhuminjie/OpenSeesPy).\r\nThe goal of PlaneSections is to make easy-to-use beam anayses, which can be used to quickly document structural calculations.\r\n\r\n\r\n**NOTE:**\r\nUnits for force and length must be applied to the beam in a [consistent unit base for FEM](https://femci.gsfc.nasa.gov/units/index.html).\r\nPlaneSections 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.\r\n\r\nPlaneSections is a FEM solver! Results are only stored at nodes specified by the user - all intermediate values in plots are linearly interpolated.\r\n\r\n## Contents\r\n* [Installation](https://github.com/cslotboom/planesections#Installation)\r\n* [Features](https://github.com/cslotboom/planesections#Features)\r\n* [Documentation](https://github.com/cslotboom/planesections#Documentation)\r\n* [Demo](https://github.com/cslotboom/planesections#Demo)\r\n* [Coordinates](https://github.com/cslotboom/planesections#Coordinates)\r\n* [Solvers](https://github.com/cslotboom/planesections#Solvers)\r\n* [Work Status](https://github.com/cslotboom/planesections#Status)\r\n\r\n\r\n## Installation\r\nThe default package is installable through pip.\r\n```\r\npip install planesections\r\n\r\n```\r\nThe package with the optional OpenSeesPy dependancy is installable with \r\n```\r\npip install planesections[opensees]\r\n\r\n```\r\n\r\n## Features:\r\n2D and 3D beams can be anayzed under the following force types:\r\n- Point loads\r\n- Point Moments\r\n- Line Element loads\r\n- Linearly varying element loads (2D only).\r\n\r\nDiagrams can also be made of 2D beams, but the support types that can be plotted are limited.\r\n\r\n## Documentation\r\nAll major functions and classes are documented on read-the-docs: https://planesections.readthedocs.io/en/latest/\r\n\r\n## Demo\r\nThe 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.\r\n\r\n``` Python\r\n\r\nimport planesections as ps\r\n\r\n# Define node locations, and support conditions\r\nL = 5\r\nbeam = ps.newEulerBeam(L)\r\n\r\n# Define beam and fixities\r\npinned = [1,1,0]\r\nbeam.setFixity(L*0.1, pinned, label = '1')\r\nbeam.setFixity(L*0.9, pinned)\r\n\r\n# Define loads\r\nPz = -1\r\nbeam.addVerticalLoad(0, Pz, label = 'A')\r\nbeam.addVerticalLoad(L*0.5, 2*Pz, label = 'B')\r\nbeam.addVerticalLoad(L, Pz, label = 'C')\r\nbeam.addDistLoadVertical(0, L, Pz)\r\nbeam.addDistLoadVertical(1, L*0.3, 5*Pz)\r\n\r\n# Plot the beam diagram\r\nps.plotBeamDiagram(beam)\r\n\r\n# Run the analysis\r\nanalysis = ps.PyNiteAnalyzer2D(beam)\r\nanalysis.runAnalysis()\r\n\r\n# Plot the SFD and BMD\r\nps.plotShear(beam)\r\nps.plotMoment(beam)\r\n```\r\n\r\n<p align=\"center\">\r\n <img src=\"https://github.com/cslotboom/planesections/raw/main/doc/img/Beam-Image-2.png\" width=\"500\">\r\n</p>\r\n<p align=\"center\">\r\n <img src=\"https://github.com/cslotboom/planesections/raw/main/doc/img/Beam-Image-2-SFD.png\" width=\"500\">\r\n</p> \r\n<p align=\"center\">\r\n <img src=\"https://github.com/cslotboom/planesections/raw/main/doc/img/Beam-Image-2-BMD.png\" width=\"500\">\r\n</p> \r\n\r\n## Coordinates\r\nThe coordinant system used for beams is as follows:\r\n<p align=\"center\">\r\n <img src=\"https://github.com/cslotboom/planesections/raw/main/doc/img/coords/forces.JPG\" width=\"700\">\r\n</p>\r\n\r\n\r\n## Further Examples\r\nSee the examples folder for more examples!\r\n\r\n## Solvers\r\nThe 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.](https://opensees.github.io/OpenSeesDocumentation/developer/license.html)\r\n\r\nSome restrictions exist for OpenSees license, so this library has been added as an optional dependancy\r\n\r\n\r\n## Status\r\nPlaneSections is almost \"feature complete\" in terms of it's analysis functionality. The only additional analysis features I might include are:\r\n- Spring supports\r\n- Internal hinges\r\n- Better cross section support\r\nThese are not slated to be in the next release.\r\n\r\n\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A light-weight FEM beam analyzer.",
"version": "1.4.2",
"project_urls": {
"Documentation": "https://planesections.readthedocs.io/en/latest/",
"Homepage": "https://github.com/cslotboom/planesections"
},
"split_keywords": [
"fem",
" structures",
" beams",
" diagrams"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b7fec3b9d823a8749911f2257462f8f0083553b208f6020c3ffaa5ad3d049618",
"md5": "18365a1e7dbfc801130d342e1387690a",
"sha256": "8660f3f952b5c1a3887cc5f4ca584dcdae368378bad4275c6dde1c128ee7267a"
},
"downloads": -1,
"filename": "planesections-1.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "18365a1e7dbfc801130d342e1387690a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 54337,
"upload_time": "2025-08-11T08:18:29",
"upload_time_iso_8601": "2025-08-11T08:18:29.422891Z",
"url": "https://files.pythonhosted.org/packages/b7/fe/c3b9d823a8749911f2257462f8f0083553b208f6020c3ffaa5ad3d049618/planesections-1.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b6c13417b3f021c0a24e3d1c6335c212bb0595e9072762409ad7ad0f2bfac1f1",
"md5": "538facfd41537739cd8cef6cca190471",
"sha256": "c19c9a2f4338f4055839ff9ebe23e8c25ce2f0e519b571064e5312f413b89046"
},
"downloads": -1,
"filename": "planesections-1.4.2.tar.gz",
"has_sig": false,
"md5_digest": "538facfd41537739cd8cef6cca190471",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 52889,
"upload_time": "2025-08-11T08:18:30",
"upload_time_iso_8601": "2025-08-11T08:18:30.683149Z",
"url": "https://files.pythonhosted.org/packages/b6/c1/3417b3f021c0a24e3d1c6335c212bb0595e9072762409ad7ad0f2bfac1f1/planesections-1.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-11 08:18:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cslotboom",
"github_project": "planesections",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "planesections"
}