Python Structural Analysis package
Project description
pystran: Python for Structural Analysis
A simple structural analysis tool in Python, for structures consisting of truss and beam members, springs, and rigid bodies, both in two dimensions and in three dimensions.
News
- 11/08/2025: Add publishing workflow.
- 03/13/2025: Update documentation for the sphinx system.
- 03/10/2025: Add rigid links and general springs.
Features & Limitations
- The package analyzes two-dimensional and three-dimensional structures made up of truss (axial) members and beams (possibly in combination), rigid links, and general springs. Concentrated masses can be added at joints.
- Linear statics and dynamics (free vibration) solvers are included.
- Only elastic models can be solved.
- For beams, only the Bernoulli-Euler model is implemented, so no shear deformation is taken into account.
- Only straight members are treated.
- It is assumed that the cross sections are doubly symmetric, and there is no coupling between the bending actions in the two orthogonal principal planes.
- Coupling of axial and bending action is not implemented. This means that the neutral axis must pass through the centroid.
- Warping of the cross sections is not modelled, hence only free torsion effects are included.
- Member loading is not considered. All member loading needs to be converted to nodal forces by the user.
- Member end releases (hinges) are not implemented. Internal hinges can be modelled with linked joints.
- Degrees of freedom are only along the global Cartesian axes. Skew supports are not included (except with a penalty method based on springs)
- Offsets of the beams from the joints are currently not implemented.
- Rigid links between pairs of joints can be modeled with a penalty approach.
Requirements
pystran depends on the following Python packages:
- NumPy
- SciPy
- Matplotlib
These requirements can be easily satisfied by running the examples in the Spyder IDE.
Documentation
Documentation of the package is provided in these HTML pages.
More details about the generation of the documentation are here.
Running
This package is not distributed through the official Python channels. It needs to be downloaded from GitHub as a zip file, and expanded in some convenient location.
The pystran folder can be located by looking for this README.md file.
The easiest way to run a pystran example is to download and install Spyder 6. Detailed instructions are provided.
It is also possible to run simulations using a plain Python in a terminal.
Tutorials
Step-by-step tutorials are available in the tutorials folder.
For example, run tutorials in the pystran/tutorials in the terminal as
py tutorials/01_three_bars_tut.py
Or, use Spyder, which makes the whole process a lot easier to set up.
Testing
In the pystran/tests folder, run
py unittests_planar_truss.py
and analogously for the other unit test files.
Past news
- 03/05/2025: Describe the operation of the scripts.
- 02/12/2025: Make it possible to use general joint and member identifiers.
- 02/05/2025: Add general springs to ground.
- 01/30/2025: Add tutorials.
- 01/22/2025: Implement initial functionality.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pystran-0.0.2.tar.gz.
File metadata
- Download URL: pystran-0.0.2.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b60a0a77cb2dcaf3d3f7995c1cde5ccbc0dd9f7aa491a637e5206a4ef03c9b5b
|
|
| MD5 |
5c89beaaa295447be8070ea24cebe13a
|
|
| BLAKE2b-256 |
9fa54e8a7d4aea8867668db978a938c6bbd4c93d08224925deda55df76b62329
|
File details
Details for the file pystran-0.0.2-py3-none-any.whl.
File metadata
- Download URL: pystran-0.0.2-py3-none-any.whl
- Upload date:
- Size: 34.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc358311d46ef22822093216bf54e04271d47091fdde36c270eeeab0776d4951
|
|
| MD5 |
3dd06fda82c3b9fda63a6f1ee40e0211
|
|
| BLAKE2b-256 |
2e7dfb3a6df3a7f30b8df758701f0fe4e94aace9585e855958bd184c4777688c
|