Skip to main content

Open-source reinforced concrete design library with web interface (ACI 318-19, NSCP 2015, ACI 440R-17)

Project description

ConcreteDesignPy

PyPI version Python License: MIT GitHub release GitHub issues

A Python library and web application for reinforced concrete structural design per NSCP 2015 and ACI 318-19.

Disclaimer: This is an internal tool for Albert Pamonag Engineering Consultancy (APEC). All results must be verified by a licensed professional engineer. The developers assume no liability for errors or misuse.

Features

Beam Design

  • Flexural Capacity — Strain compatibility method with iterative neutral axis solver, strength reduction factor (phi) plot per ACI 318-19 Table 21.2.2
  • Shear Strength — Concrete and steel shear capacity, stirrup spacing design with Excel export (ACI 318M-14)
  • Torsion Design — Combined shear-torsion interaction checks
  • Deflection — Immediate and long-term deflection with effective moment of inertia

Column Design

  • P-M Interaction — Strain compatibility analysis with Plotly interaction diagrams, load combination overlay
  • Minimum Flexural Strength — Column-to-beam strength ratio verification

Analysis Tools

  • Moment-Curvature — Dual-mode M-phi analysis:
    • Quick (6-Point) — Closed-form key points (cracking, yield, ultimate) per ACI 318-19
    • Advanced (Incremental) — Hognestad parabolic concrete model with fiber-layer approach, axial load support, 60-point smooth curve
  • Mander Confined Concrete — Full Mander, Priestley & Park (1988) model with 13-step transparent report, biaxial confinement (Fig. 5), Plotly stress-strain curves, and confinement effectiveness charts
  • Joint Shear — Verification for special moment frames (Section 422.7)

Detailing

  • Development Length — Hook geometry for deformed bars and stirrups (Section 425)
  • Alternative Inertia — Effective moment of inertia per Section 424.2.3.5

Web Application

  • Flask-based interactive calculators
  • Plotly charts for all visualizations (M-phi diagrams, P-M interaction, stress-strain curves, section analysis)
  • MathJax-rendered calculation reports with full formula substitution
  • Print-ready output with engineering notation

Installation

pip install -e .

Dependencies

  • Python 3.8+
  • Flask
  • NumPy
  • Gunicorn (production)
  • openpyxl

Running Locally

python run.py

Then open http://localhost:5000 in your browser.

Project Structure

concretedesignpy/
├── calculators/          # Backend calculation modules
│   ├── beam_moment.py    # Flexural capacity (neutral axis solver)
│   ├── beam_shear.py     # Concrete & steel shear strength
│   ├── beam_torsion.py   # Torsion design checks
│   ├── beam_deflection.py
│   ├── column_interaction.py  # P-M interaction diagram
│   ├── column_flexural.py     # Min flexural strength ratio
│   ├── joint_shear.py
│   ├── mander.py              # Confined concrete model
│   ├── moment_curvature.py    # M-phi analysis
│   ├── development_length.py  # Hook geometry
│   ├── alternative_inertia.py
│   ├── rebar_layout.py        # Section rebar coordinates
│   └── diagrams.py            # SVG diagram generators
├── webapp/
│   ├── app.py            # Flask application factory
│   ├── routes/           # API endpoints (beam, column, section, joint, mander)
│   ├── templates/        # Jinja2 HTML templates with MathJax
│   └── static/           # CSS & JavaScript
├── Procfile              # Railway/Heroku deployment
├── railway.json          # Railway config
├── requirements.txt      # Python dependencies
└── setup.py              # Package setup

API Endpoints

Endpoint Description
POST /api/beam/moment Beam moment capacity
POST /api/beam/shear Shear strength or spacing
POST /api/beam/shear-design Beam shear design (ACI 318M-14)
POST /api/beam/torsion Torsion design
POST /api/beam/deflection Deflection check
POST /api/column/interaction P-M interaction diagram
POST /api/column/flexural Min flexural strength
POST /api/joint/shear Joint shear verification
POST /api/mander/confined Mander confined concrete
POST /api/section/development-length Hook geometry
POST /api/section/moment-curvature M-phi analysis (6-point)
POST /api/section/moment-curvature-advanced M-phi analysis (Hognestad incremental)
POST /api/section/alternative-inertia Alternative Ie

Code Standards & References

  • NSCP 2015 — National Structural Code of the Philippines
  • ACI 318-19 / ACI 318M-14 — American Concrete Institute
  • ACI SP-17 — Design Handbook
  • Mander, Priestley & Park (1988) — Theoretical stress-strain model for confined concrete, J. Structural Engineering, ASCE, Vol. 114, No. 8
  • Hognestad (1951) — A study of combined bending and axial load in reinforced concrete members, University of Illinois Bulletin No. 399

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature-name)
  3. Commit your changes
  4. Submit a pull request

License

MIT License. See LICENSE for details.

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

concretedesignpy-0.4.0.tar.gz (104.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concretedesignpy-0.4.0-py3-none-any.whl (127.5 kB view details)

Uploaded Python 3

File details

Details for the file concretedesignpy-0.4.0.tar.gz.

File metadata

  • Download URL: concretedesignpy-0.4.0.tar.gz
  • Upload date:
  • Size: 104.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for concretedesignpy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a7e015d6145c2ce05313f05f8d168a729b2458e4a5c219f5aded33143d66b5d3
MD5 8d3e59dde81a0d1435232eeb2f2ece62
BLAKE2b-256 ebee7efff018d94ed57806876a9f23a8594767a9698cd05565f3828829aad1bd

See more details on using hashes here.

File details

Details for the file concretedesignpy-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for concretedesignpy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd78ffd86d792b36603e3daaddd4bbb4229adb5cb043bd8a6b07e38cfe0792c5
MD5 5f9e0d4cd2de95061f46c9b470316dde
BLAKE2b-256 4715fb331fd6aac9d7d340eb974dcb58a5e9a82c5a1796c56897df3d6a400199

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page