Skip to main content

Object Oriented Structural Analysis

Project description

StrucPy

Tests Documentation Status LGPLv2.1 License

StrucPy is a powerful python library for structural analysis of civil engineering structures. It gives complete control over the results of structure analysis. StrucPy is originally developed for students and researchers working in field of civil engineering. It will be highly helpful for structural analysis, for retrieving data for structural design and optimization, visualizing the structural behavior, learning, application of machine learning in structural analysis, etc.


StrucPy Documentation

https://strucpy.readthedocs.io/


Installation

Always create a virtual environment to install StrucPy and its dependencies.

  1. Creating Virtual environment
    $ py -3 -m venv venv
  1. Activate virtual environment from cmd
    .\venv\Scripts\activate.bat
  1. Install StrucPy
    $ py -3 -m pip install StrucPy

Cloning Git repository

  1. Clone the repository using https://github.com/TabishIzhar/StrucPy.git

  2. Create a virtual environment using

    $ py -3 -m venv venv
  1. Activate virtual environment from cmd
    .\venv\Scripts\activate.bat
  1. Install every dependency using requirement.txt
    (.venv) $ pip install -r requirements.txt

Modules

  • RCFA - Structural analysis module for Reinforced Concrete Framed Structures
  • RCFooting - (Under Development)

Project Objectives

Objective of StrucPy is to provide an easy to use open-source library for the upliftment of civil/structural engineering students, faculties and researchers without depending upon commercial licenses.

User Friendly: StrucPy provides a user-friendly approach for the analysis of structure without the use of extensive coding. Its powerful methods perform almost every function required before and after analysis. It reduces the user loads by allowing to pass input arguments through Excel formats.

Platform for Structural Analysis: StrucPy gives full access to pre- and post-analysis data of the civil engineering structure. User can use those data's as per their requirement and research. Thus eliminates lack of control over data exchange and dependency on commercial software to perform analysis.

Validity: StrucPy are continuously monitored to remove any bugs and errors. The output of StrucPy is verified with the commercial software's like Bentley's STAAD PRO connect edition. Users are requested to report any issue/error encountered while using StrucPy.

Improvement: StrucPy intents to provide accurate open source solution to every aspect of structural analysis. The codes are often checked for improvements and scope.


Dependencies

Required Dependencies

  • numpy: For matrix algebra and dense matrix solver
  • pandas: For taking input and presenting output
  • plotly: For visualization and plotting
  • ray: For multi-processing
  • openpyxl: To read Excel files

"RCFA" Module


RCFA provides solution to structural analysis of 2D and 3D Reinforced Concrete Members/ Frames(RCF). This module utilizes stiffness matrix approach to attain the solution. It covers every node's (joints), beam members and column members complete detail.

Current Capabilities of RCFA

  • 2D and 3D static analysis of elastic reinforced concrete frame (RCF) structures.
  • Considers self-weight, dead load, live loads, static seismic loads on the structure.
  • Capable of transferring (Rectangular and Square) floor load to beams.
  • Capable to evaluating the effective length of column members.
  • Capable of handling sway frames.
  • Gives accessibility to local and global stiffness matrix.
  • Produces reactions and joint deflections' data.
  • Produces the 3D view of input RC model.
  • Produces the deflected shape of RCF model.
  • Gives accessibility to data of shear forces, bending moments, and deflection of every member.
  • Produces the diagrams of shear forces, bending moments, and deflection of every member.
  • Allows the passing of load combinations.
  • Provides envelop result of all load combinations.

Under Development Capabilities of RCFA

  • P-delta analysis of structure.
  • Inclusion of Wind Loads as per IS 875 part 3.
  • Dynamic Seismic Analysis

StrucPy Coordinate System

Follow left-hand rule for coordinate system, the left thumb points along the y-axis in the positive direction. Gravity load acts along y-axis.


Preferred Integrated Development Environment (IDE)

For proper visualization of graphs and models.

  • Jupyter Notebook
  • VS Code

Usage

from StrucPy.RCFA import RCF
from StrucPy.RCFA import RCFenv
import pandas as pd

# importing input data from file Example7, avaiable in InputFiles folder
member_details= pd.read_excel('./InputFiles/Example7.xlsx', 'members', header = 0, index_col=0)
nodes_details= pd.read_excel('./InputFiles/Example7.xlsx', 'nodes', header = 0, index_col=0)
boundcond = pd.read_excel('./InputFiles/Example7.xlsx', 'boundary', header = 0, index_col=0)
load_combo= pd.read_excel('./InputFiles/Example7.xlsx', 'load_combinations', header = 0, index_col=0)
seismic_defination= pd.read_excel('./InputFiles/Example7.xlsx', 'Seismic_Defination', header = 0, index_col=0)

#Creating Structural object r1 for single load combination and r2 for multiple load combination

r1= RCF(nodes_details,member_details,boundcond, load_combo= load_combo.iloc[0,:], autoflooring= True, seismic_def= seismic_defination)

r2= RCFenv(nodes_details,member_details,boundcond, load_combo= load_combo, autoflooring= True, seismic_def= seismic_defination)


#Pre processing the model
r1.preP()
r2.preP()

# Performing Analysis
r1.RCanalysis()
r2.RCanalysis()

#Call methods as per the requirement

Note: Install StrucPy before trying examples.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.


License

GNU LGPLv2.1

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

strucpy-0.0.1.tar.gz (82.9 kB view details)

Uploaded Source

Built Distribution

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

StrucPy-0.0.1-py3-none-any.whl (76.2 kB view details)

Uploaded Python 3

File details

Details for the file strucpy-0.0.1.tar.gz.

File metadata

  • Download URL: strucpy-0.0.1.tar.gz
  • Upload date:
  • Size: 82.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.7

File hashes

Hashes for strucpy-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ce557e30d084e612e0a75562db653d8411c37ec7c4d081d2c229a2124f1acc9a
MD5 c2e80a889e65a3bcb22f7df0baafd4eb
BLAKE2b-256 326854b4633d468e84ccc66a26dc473563662f2fb528df15056b46a4342ccca7

See more details on using hashes here.

File details

Details for the file StrucPy-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: StrucPy-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 76.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.7

File hashes

Hashes for StrucPy-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2fda2dbdaf1907533cf9682fd7359e15d8322812b030201d83e10eec70f491d6
MD5 c697fc53ca3466412ba5239c3b0dfbc4
BLAKE2b-256 b5fc02dc19b583638489cd14810804111162ea1354a8c5f2770800a395f12092

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