Open source structural analysis with Python
Project description
OpenSTRAN
Open-Source Structural Analysis with Python
- Version 0.0.5 - Alpha Release
Installation
$ pip install OpenSTRAN
Dependencies
OpenSTRAN depends on the following packages:
- numpy - used for vector and matrix mathematical operations.
It is recommended to install these dependencies which may be done using the following command.
pip install numpy
Documentation
Capabilities
OpenSTRAN allows for the creation of simple two-dimensional frame elements and complex three-dimensional structures alike.
- 2D truss :heavy_check_mark:
- 3D truss :heavy_check_mark:
- 2D frame :heavy_check_mark:
- 3D space frame :heavy_check_mark:
Limitations
- First order elastic analysis only.
- Shear and torsional deformations are not considered.
- Does not take advantage of matrix sparseness or bandedness.
- Supports Imperial units only.
What happened to the UI?
The graphical user interface that was programmed in tkinter and relied on matplotlib as a backend has been removed and is no longer being maintained or further developed.
Instead, focus has been shifted to improving the core library, developing documentation, and standardizing output in the VTK legacy format so that solutions can be visualized using open source post processing visualization tools such as ParaView.
The UI was last available in Version 0.0.4 and can be installed with the following command.
pip install OpenSTRAN==0.0.4
Get Involved
If you would like to contribute to the development of OpenSTRAN, you are encouraged to get involved. Below are some simple ways that you can begin contributing. Keep in mind that this is not an exhaustive list and that contributions can be as simple as reporting an error if you find one, sharing your experience with the library or suggesting the addition of a feature you would like to see.
- Help potential users learn OpenSTRAN by creating examples.
- Create documentation for portions of the code base.
- Validate output by comparing results with known solutions.
- Develop features by issuing a pull request.
- Increase readability of source code through refactoring and commenting.
All contributions are welcome and done on a voluntary basis.
Quickstart Example
Below is a simple example that will help you get started using OpenSTRAN. The example consists of a simply supported beam subject to a point load.
from OpenSTRAN.model import Model
# instantiate an empty model
simpleBeam = Model()
# create a node located at the origin
N1 = simpleBeam.nodes.addNode(0,0,0,'N1') # (X [ft], Y [ft], Z[ft], name)
# create a node 10 feet away from the origin along the global X axis.
N2 = simpleBeam.nodes.addNode(10,0,0,'N2') # (X [ft], Y [ft], Z[ft], name)
# restrain the nodes from translation.
N1.restraint = [1,1,1,0,0,0] # [Ux, Uy, Uz, φx, φy, φz] -> pinned node
N2.restraint = [1,1,1,0,0,0] # [Ux, Uy, Uz, φx, φy, φz] -> pinned node
# define a member between nodes N1 and N2.
M1 = simpleBeam.members.addMember(N1, N2) # (i node, j node)
# add a dead load of -10 kips in the global Y direction 50% along M1's span.
simpleBeam.loads.addPointLoad(M1, direction='Y', D=-10, location=50)
Project details
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 openstran-0.0.5.tar.gz.
File metadata
- Download URL: openstran-0.0.5.tar.gz
- Upload date:
- Size: 305.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83461723cf22ebd33612fc9152b379f79364f98b7869806f0cceed3afa05d108
|
|
| MD5 |
5d9beb4dc3711ed1fa89c0fbd41d0872
|
|
| BLAKE2b-256 |
534b596a461c91f7d69b0a1e96bee069804c1acca2c53a8bd1596268af47ff8f
|
Provenance
The following attestation bundles were made for openstran-0.0.5.tar.gz:
Publisher:
python-publish.yml on 3l-Sabio/OpenSTRAN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openstran-0.0.5.tar.gz -
Subject digest:
83461723cf22ebd33612fc9152b379f79364f98b7869806f0cceed3afa05d108 - Sigstore transparency entry: 977458503
- Sigstore integration time:
-
Permalink:
3l-Sabio/OpenSTRAN@f9e94251d02e8dcf392b21e966ecd3a993f922bc -
Branch / Tag:
refs/tags/0.0.5 - Owner: https://github.com/3l-Sabio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@f9e94251d02e8dcf392b21e966ecd3a993f922bc -
Trigger Event:
release
-
Statement type:
File details
Details for the file openstran-0.0.5-py3-none-any.whl.
File metadata
- Download URL: openstran-0.0.5-py3-none-any.whl
- Upload date:
- Size: 185.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bae535fe0d3a50666b1088b47049e00f428718309ae37b01d4f230a0a1062062
|
|
| MD5 |
9b28382995c4659b8976c6ce3ad28bad
|
|
| BLAKE2b-256 |
47a98365907db29a986962213014985ddfaca3d114f8832aa6b2e720a18ea124
|
Provenance
The following attestation bundles were made for openstran-0.0.5-py3-none-any.whl:
Publisher:
python-publish.yml on 3l-Sabio/OpenSTRAN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openstran-0.0.5-py3-none-any.whl -
Subject digest:
bae535fe0d3a50666b1088b47049e00f428718309ae37b01d4f230a0a1062062 - Sigstore transparency entry: 977458506
- Sigstore integration time:
-
Permalink:
3l-Sabio/OpenSTRAN@f9e94251d02e8dcf392b21e966ecd3a993f922bc -
Branch / Tag:
refs/tags/0.0.5 - Owner: https://github.com/3l-Sabio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@f9e94251d02e8dcf392b21e966ecd3a993f922bc -
Trigger Event:
release
-
Statement type: