Skip to main content

📐 AnySection – Reinforced Concrete Section Analysis

License: MIT Python Version Build


📊 Overview

AnySection is a Python library for reinforced concrete section analysis. It provides tools for modeling, analyzing, and visualizing the structural behavior of reinforced concrete sections using material nonlinearities and fiber-based analysis methods.

Key features include:

  • ✅ Support for Concrete_NonlinearEC2 and Steel_Bilinear material models.
  • ✅ Fiber-based moment-curvature analysis.
  • ✅ Calculation of axial forces, bending moments, and neutral axis positions.
  • ✅ Generate moment-curvature diagrams and plot section views.
  • ✅ Extensible architecture for adding custom materials and solvers.

📁 Project Structure

AnySection/
│
├── anysection/              # Main package
│   ├── __init__.py
│   ├── geometry/            # Geometrical objects (Area, Fiber, Points)
│   │   └── area.py
│   │
│   ├── materials/           # Material models
│   │   └── material.py
│   │
│   ├── sections/            # Section definitions and properties
│   │   └── section.py
│   │
│   ├── solvers/             # Section analysis solvers
│   │   └── section_solver.py
│   │
│   └── utils/               # Utility classes (constants, helpers)
│       └── globals.py
│
├── examples/                # Example usage
│   └── example1.py
│
├── setup.py                 # Build configuration
├── requirements.txt         # Dependencies
├── README.md                 # 📖 You are here
└── LICENSE                   # MIT License

⚙️ Installation

🔹 1. Clone the Repository

git clone https://github.com/yourusername/anysection.git
cd anysection

🔹 2. Install Dependencies

pip install -r requirements.txt

🔹 3. Install the Library Locally

pip install -e .

This installs the package in editable mode for local development.

🧮 Quick Start Example

import matplotlib.pyplot as plt
import numpy as np
from anysection.materials import Concrete_NonlinearEC2, Steel_Bilinear
from anysection.sections import Section
from anysection.solvers import SectionSolver

# Define Materials
concrete = Concrete_NonlinearEC2(fcm=20e6, ec1=0.002, ecu1=0.0035)  # C20/25 Concrete
steel = Steel_Bilinear(Es=200e9, fy=500e6)  # Reinforcement Steel

# Create a Section
section = Section("Rectangular Beam")
section.add_fiber(area=0.01, x=0.0, y=0.0, material=concrete)
section.add_fiber(area=0.01, x=0.1, y=0.0, material=concrete)
section.add_fiber(area=0.01, x=0.0, y=0.1, material=concrete)
section.add_fiber(area=0.01, x=0.1, y=0.1, material=concrete)

# Initialize Solver
solver = SectionSolver(section)

# Analyze Moment-Curvature
curvatures = np.linspace(0, 0.02, 100)
moments = [solver.calculate_moment_capacity(c) for c in curvatures]

# Plot Moment-Curvature Diagram
plt.plot(curvatures, moments)
plt.xlabel('Curvature (1/m)')
plt.ylabel('Moment (Nm)')
plt.title('Moment-Curvature Diagram')
plt.grid(True)
plt.show()

📐 Features

🏗️ Section Modeling: Fiber-based section modeling for reinforced concrete.

📊 Moment-Curvature Analysis: Plot moment-curvature behavior for reinforced sections.

📏 Material Models:

  • Concrete_NonlinearEC2 (Nonlinear EC2 behavior for concrete)

  • Steel_Bilinear (Bilinear elastic-plastic model for reinforcement)

📈 Customizable Solvers: Easily extend the library with new solvers and materials.

🛠️ Contributing

Contributions are welcome! 🚀 Feel free to fork the repository, submit issues, and create pull requests.

📢 To contribute:

Fork the repository.
Create a new branch: git checkout -b feature/my-feature
Commit your changes: git commit -m 'Add new feature'
Push to the branch: git push origin feature/my-feature
Open a Pull Request ✅

📄 License

This project is licensed under the MIT License.

📚 Documentation: Coming Soon

🐛 Issue Tracker: GitHub Issues

🏗️ PyPI: Coming Soon

Citation: If you use AnySection in your research, please cite the following paper:

Papanikolaou, Vassilis. (2019). AnySection : Software for the analysis of arbitrary composite sections in biaxial bending and axial load. 

Metadata

Release files for AnySection 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for AnySection 1.0.0
File Size Uploaded
anysection-1.0.0.tar.gz 12.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for AnySection 1.0.0
File Interpreter ABI Platform
anysection-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.6 kB

Release files / anysection-1.0.0.tar.gz

Download URL anysection-1.0.0.tar.gz
Size 12.7 kB
Tags Source
SHA-256 checksum
How to use checksums
93bdd5c49c69dacec26b16d84b30f797f5d76df3098d3eda58a69c049eaad42a
BLAKE2b-256 checksum
How to use checksums
f67b51add4d6100b8911e639a18367adeb4f0181b7e53e0e3a4f02d77d455c82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.5

Release files / anysection-1.0.0-py3-none-any.whl

Download URL anysection-1.0.0-py3-none-any.whl
Size 13.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a62a79fc18a5b827b752493d27822bdab26f117067da6842e0c53604b5712a3d
BLAKE2b-256 checksum
How to use checksums
b5d194725281216d7f2c87596fe2f46b335e24d681cf710067d10920d5255ff8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.5

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page