<p align="center">
<img src="https://github.com/cslotboom/limitstates/raw/main/doc/logo/logo-text-2.jpg" width="500">
</p>
A structural design and representation library. Documentation can be viewed [here](https://limitstates.readthedocs.io/en/latest/index.html).
# Overview
limitstates is a python library that can represent and design structural
elements according to code and material standards from various countries. Limit states has two main components:
a set of classes that representations structural objects, e.g. A Ibeam that is 6m long made or steel;
and design libraries that can act on elements and determine capacities, e.g. Canada's CSA s16 2024 steel material standard.
**Limitstates is currently incomplete and in public beta testing.**
**Expect breaking changes before the first version release.**
A simple script is shown below where a structural object is created and used.
```Python
import limitstates as ls
import limitstates.design.csa.s16.c24 as s16
L = 6
Fy = 350
sectionName = 'W310X118'
# Define the material, in this case a code specific steel with Fy = 350 MPa
mat = s16.MaterialSteelCsa24(Fy, sUnit='MPa')
# Define a steel section from a database, in this case a cisc 12 w section.
steelSections = ls.getSteelSections(mat, 'csa', 'cisc_12', 'w')
section = ls.getByName(steelSections, sectionName)
# make a member, in this case a simplely supported beam 6m long beam.
member = ls.initSimplySupportedMember(L, 'm')
# Make a element, which the design library can act on.
beam = s16.BeamColumnSteelCsa24(member, section)
# Check capacity assuming it's laterally supported using CSA's s16 standard.
Mr = s16.checkBeamMrSupported(beam) / 1000
```
# Installation
`
pip install limitstates
`
# Documentation
https://limitstates.readthedocs.io/en/latest/
# Library Organization
There are four main parts of the limitstates library: units, objects, design, analysis.
The units library is a light-weight module for unit conversions.
All structural objects in the limitstates libary are dependant on the unit library for conversions.
See [units api reference](https://limitstates.readthedocs.io/en/latest/rst/units.html) for more detail.
The objects library contains generic classes that represent and manipulate structural elements.
Members of the object library are not specific to any code, for example a W530x150 cross section has the same geometry for American and Canadian codes.
See the [objects api reference](https://limitstates.readthedocs.io/en/latest/rst/objects.html) for more detail.
The design library contains specialized objects for a particular design code, and functions that act on them.
For example, "BeamColumnSteelCsa24" is a code specific implementations of the generic "BeamColumn" class,
and the function "checkBeamMrSupported", acts on it to determine a sections unsupported moment.
Design libraries are divided by country and material standard. Currently, content only exists for Canadian design codes.
See [design api reference](https://limitstates.readthedocs.io/en/latest/rst/design.html) for more detail.
The Analysis library will contain functions that act on structural objects to analyze them. The analysis Library is a work in progress.
# Deveopment Roadmap
Version one of limitstates will release when the library can design most major elements in canadian design codes, and the core objects can handle American/EU design codes.
The specific items required for version 1 are below:
### Object Library
- [ ] Create a section element for reinforced concrete
- [ ] Improve section and material database documentation
- [ ] Support plotting for concrete elements / sections
- [ ] Support plotting for CLT elements / sections
- [ ] Add section summary to section plotting
- [ ] Add an generic design example showing how database can be used.
### Design
#### CSA o86
- [ ] Add Examples.
- [ ] Add beam shear checks.
#### CSA S16
- [ ] Develop multi-span beam checks.
- [ ] Add beam shear checks.
#### CSA A23.3
- [ ] Complete code checks for basic concrete beams in moment/shear.
- [ ] Add section solvers for concrete that can determine steel required based on input capacities.
- [ ] Complete code checks for basic concrete columns in compression / bending.
- [ ] Complete code checks for basic concrete columns in compression / bending with slenderness effects.
- [ ] Add examples for basic concrete checks
- [ ] Add examples for concrete in compression
#### US/EU Standards
- [ ] Ensure all basic design objects are compatible with US codes and units.
Raw data
{
"_id": null,
"home_page": null,
"name": "limitstates",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "structures, design, buildings",
"author": null,
"author_email": "Christian Slotboom <christian.slotboom@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/5a/81/66c55fc074d74b02888f2b4cefc82b45831f6c4aa6d97284e95a9075b5e3/limitstates-0.2.2.tar.gz",
"platform": null,
"description": "\r\n<p align=\"center\">\r\n <img src=\"https://github.com/cslotboom/limitstates/raw/main/doc/logo/logo-text-2.jpg\" width=\"500\">\r\n</p>\r\n\r\nA structural design and representation library. Documentation can be viewed [here](https://limitstates.readthedocs.io/en/latest/index.html).\r\n\r\n# Overview\r\nlimitstates is a python library that can represent and design structural \r\nelements according to code and material standards from various countries. Limit states has two main components: \r\na set of classes that representations structural objects, e.g. A Ibeam that is 6m long made or steel; \r\nand design libraries that can act on elements and determine capacities, e.g. Canada's CSA s16 2024 steel material standard.\r\n**Limitstates is currently incomplete and in public beta testing.**\r\n**Expect breaking changes before the first version release.**\r\n\r\nA simple script is shown below where a structural object is created and used.\r\n\r\n\r\n```Python\r\nimport limitstates as ls\r\nimport limitstates.design.csa.s16.c24 as s16\r\n\r\nL = 6\r\nFy = 350\r\nsectionName = 'W310X118'\r\n\r\n# Define the material, in this case a code specific steel with Fy = 350 MPa\r\nmat = s16.MaterialSteelCsa24(Fy, sUnit='MPa')\r\n\r\n# Define a steel section from a database, in this case a cisc 12 w section.\r\nsteelSections = ls.getSteelSections(mat, 'csa', 'cisc_12', 'w')\r\nsection = ls.getByName(steelSections, sectionName)\r\n\r\n# make a member, in this case a simplely supported beam 6m long beam.\r\nmember = ls.initSimplySupportedMember(L, 'm')\r\n\r\n# Make a element, which the design library can act on.\r\nbeam = s16.BeamColumnSteelCsa24(member, section)\r\n\r\n# Check capacity assuming it's laterally supported using CSA's s16 standard.\r\nMr = s16.checkBeamMrSupported(beam) / 1000\r\n```\r\n\r\n# Installation\r\n\r\n`\r\npip install limitstates\r\n`\r\n\r\n# Documentation\r\nhttps://limitstates.readthedocs.io/en/latest/\r\n\r\n# Library Organization\r\nThere are four main parts of the limitstates library: units, objects, design, analysis.\r\n\r\nThe units library is a light-weight module for unit conversions. \r\nAll structural objects in the limitstates libary are dependant on the unit library for conversions. \r\nSee [units api reference](https://limitstates.readthedocs.io/en/latest/rst/units.html) for more detail.\r\n\r\nThe objects library contains generic classes that represent and manipulate structural elements. \r\nMembers of the object library are not specific to any code, for example a W530x150 cross section has the same geometry for American and Canadian codes.\r\nSee the [objects api reference](https://limitstates.readthedocs.io/en/latest/rst/objects.html) for more detail.\r\n\r\nThe design library contains specialized objects for a particular design code, and functions that act on them. \r\nFor example, \"BeamColumnSteelCsa24\" is a code specific implementations of the generic \"BeamColumn\" class, \r\nand the function \"checkBeamMrSupported\", acts on it to determine a sections unsupported moment. \r\nDesign libraries are divided by country and material standard. Currently, content only exists for Canadian design codes.\r\nSee [design api reference](https://limitstates.readthedocs.io/en/latest/rst/design.html) for more detail.\r\n\r\nThe Analysis library will contain functions that act on structural objects to analyze them. The analysis Library is a work in progress. \r\n\r\n# Deveopment Roadmap\r\nVersion one of limitstates will release when the library can design most major elements in canadian design codes, and the core objects can handle American/EU design codes. \r\nThe specific items required for version 1 are below:\r\n\r\n### Object Library\r\n- [ ] Create a section element for reinforced concrete\r\n- [ ] Improve section and material database documentation\r\n- [ ] Support plotting for concrete elements / sections\r\n- [ ] Support plotting for CLT elements / sections\r\n- [ ] Add section summary to section plotting\r\n- [ ] Add an generic design example showing how database can be used.\r\n\r\n### Design\r\n\r\n#### CSA o86\r\n- [ ] Add Examples.\r\n- [ ] Add beam shear checks.\r\n\r\n#### CSA S16\r\n- [ ] Develop multi-span beam checks.\r\n- [ ] Add beam shear checks.\r\n\r\n#### CSA A23.3\r\n- [ ] Complete code checks for basic concrete beams in moment/shear.\r\n- [ ] Add section solvers for concrete that can determine steel required based on input capacities.\r\n- [ ] Complete code checks for basic concrete columns in compression / bending.\r\n- [ ] Complete code checks for basic concrete columns in compression / bending with slenderness effects.\r\n- [ ] Add examples for basic concrete checks\r\n- [ ] Add examples for concrete in compression\r\n\r\n#### US/EU Standards\r\n- [ ] Ensure all basic design objects are compatible with US codes and units.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A structural design library.",
"version": "0.2.2",
"project_urls": {
"Homepage": "https://github.com/cslotboom/limitstates"
},
"split_keywords": [
"structures",
" design",
" buildings"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "84246727e3dd427fb8b4d31ab4ad8b4731d04d50396a4385a71f5f4c1e9cd0d3",
"md5": "ba6b6b2d09263c0c16e7496c6efbfba8",
"sha256": "209f794e53e8a6697eb76973dceedbaaac53192d611bcc91904eb34c2307329c"
},
"downloads": -1,
"filename": "limitstates-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ba6b6b2d09263c0c16e7496c6efbfba8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 541856,
"upload_time": "2024-11-28T06:43:58",
"upload_time_iso_8601": "2024-11-28T06:43:58.062650Z",
"url": "https://files.pythonhosted.org/packages/84/24/6727e3dd427fb8b4d31ab4ad8b4731d04d50396a4385a71f5f4c1e9cd0d3/limitstates-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5a8166c55fc074d74b02888f2b4cefc82b45831f6c4aa6d97284e95a9075b5e3",
"md5": "80ac361cb5435aa4fe0aa9debd4b5c80",
"sha256": "3cf9ca6bd684e088c13078852368baf8f63501944321451f9435e2d74c9f6d0f"
},
"downloads": -1,
"filename": "limitstates-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "80ac361cb5435aa4fe0aa9debd4b5c80",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 2903226,
"upload_time": "2024-11-28T06:44:04",
"upload_time_iso_8601": "2024-11-28T06:44:04.393279Z",
"url": "https://files.pythonhosted.org/packages/5a/81/66c55fc074d74b02888f2b4cefc82b45831f6c4aa6d97284e95a9075b5e3/limitstates-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-28 06:44:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cslotboom",
"github_project": "limitstates",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "matplotlib",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "planesections",
"specs": []
},
{
"name": "hysteresis",
"specs": []
}
],
"lcname": "limitstates"
}