secan

Section Analysis - modelling and analysis of custom cross-sections

https://github.com/mbonatte/secan

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

beam-analysis concrete-design cross-section eurocode2 nbr6118 reinforced-concrete structural-analysis structural-engineering
Last synced: 6 months ago · JSON representation

Repository

Section Analysis - modelling and analysis of custom cross-sections

Basic Info
  • Host: GitHub
  • Owner: mbonatte
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 81.1 KB
Statistics
  • Stars: 10
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
beam-analysis concrete-design cross-section eurocode2 nbr6118 reinforced-concrete structural-analysis structural-engineering
Created over 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

unittest

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

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

.github/workflows/python-app.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
requirements.txt pypi
  • 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
setup.py pypi
  • matplotlib *
  • numpy *