secan
Section Analysis - modelling and analysis of custom cross-sections
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.6%) to scientific vocabulary
Keywords
Repository
Section Analysis - modelling and analysis of custom cross-sections
Basic Info
Statistics
- Stars: 10
- Watchers: 2
- Forks: 2
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
SecAn - Section Analysis
Section Analysis is a module that enables the modelling and analysis of custom cross-sections. Section Analysis is helpful for the evaluation of section properties and nonlinear response.
You can try the module via Google Colab.
How to import SecAn
To access SecAn and its functions import it in your Python code like this:
python
import secan as sa
We shorten the imported name to sa for better code readability using SecAn.
How to use SecAn
Import SecAn
python
import secan as sa
Define the Materials
The first step is to define the materials.
```python concrete_25 = sa.material.Concrete(fc=25e6)
steel500 = sa.material.Steel(young=210e9, fy=500e6, ultimatestrain=10e-3) ```
Note: Be aware that SecAn does not apply any partial safety factors, so their application should be done before creating the material.
Define the Geometries
The second step is to create concrete geometries.
python
rect_20x60 = sa.geometry.Rect_section(width=0.2,
height=0.6,
material=concrete_25)
Create the Section
In this step we create the beam Object with the concrete geometries.
python
beam = sa.Section(section=[rect_20x60])
Add the Rebas
Now it is time to add the rebars to the beam.
python
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(-.07, -0.27))
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(-0.03, -0.27))
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(0.03, -0.27))
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(.07, -0.27))
Draw cross-section
Let's check our beam by drawing its cross-section.
python
beam.plot_section()

Plot Moment vs. Curvature
python
beam.plot_moment_curvature(k_max=0.025)

Max Moment
```python beam.getmaxmoment()
211866
```
Check Section
We can verify if the beam can support a specific load combination.
```python e0, k = beam.check_section(normal=0, moment=211866)
e0: 0.00443
k: 0.01801
```
Plot Stress and Strain
We can check the beam's behaviour by inspecting the stress and strain distribution.
python
beam.plot_stress_strain(e0,k)

Owner
- Name: Maurício Bonatte
- Login: mbonatte
- Kind: user
- Repositories: 2
- Profile: https://github.com/mbonatte
PhD Student in Civil Engineering at University of Minho
GitHub Events
Total
- Watch event: 1
- Push event: 1
Last Year
- Watch event: 1
- Push event: 1
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- Pillow ==10.0.0
- contourpy ==1.1.0
- cycler ==0.11.0
- fonttools ==4.42.1
- kiwisolver ==1.4.5
- matplotlib ==3.7.2
- numpy ==1.25.2
- packaging ==23.1
- pyparsing ==3.0.9
- python-dateutil ==2.8.2
- six ==1.16.0
- matplotlib *
- numpy *