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.
https://strucpy.readthedocs.io/
Always create a virtual environment to install StrucPy and its dependencies.
- Creating Virtual environment
$ py -3 -m venv venv
- Activate virtual environment from cmd
.\venv\Scripts\activate.bat
- Install
StrucPy
$ py -3 -m pip install StrucPy
-
Clone the repository using https://github.com/TabishIzhar/StrucPy.git
-
Create a virtual environment using
$ py -3 -m venv venv
- Activate virtual environment from cmd
.\venv\Scripts\activate.bat
- Install every dependency
- RCFA - Structural analysis module for Reinforced Concrete Framed Structures
- RCFooting - (Under Development)
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.
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 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.
- P-delta analysis of structure.
- Inclusion of Wind Loads as per IS 875 part 3.
- Dynamic Seismic Analysis
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.
For proper visualization of graphs and models.
- Jupyter Notebook
- VS Code
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 requirementNote:
- Install
StrucPybefore trying examples. - Ensure the directory of inputfile is correct
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.