Skip to main content

Generate MDOF lumped mass FE model using basic building information

Project description

MDOFModel

Generate Multi-Degree-Of-Freedom (MDOF) structures based on basic building information (such as floor area, number of stories, etc.), and perform dynamic analysis and economic loss assessment.

中文文档 (Chinese Documentation)

Project Introduction

MDOFModel is a Python library for Multi-Degree-Of-Freedom (MDOF) model analysis in structural engineering, primarily for seismic engineering analysis. This tool can generate lumped mass finite element models from basic building information and perform dynamic analysis, pushover analysis, loss assessment, and Incremental Dynamic Analysis (IDA).

Features

  • Structure Model Generation: Generate MDOF structural models based on basic building parameters (such as number of stories, floor area, structural type)
  • Seismic Dynamic Analysis: Perform linear and nonlinear time history analysis
  • Pushover Analysis: Implement structural static pushover analysis
  • Incremental Dynamic Analysis (IDA): Execute IDA analysis using FEMA P-695 far-field earthquake records
  • Loss Assessment: Conduct seismic loss assessment based on Hazus methodology
  • OpenSees Integration: Seamless integration with OpenSees

Installation Guide

Install this library using pip:

pip install MDOFModel

Dependencies

  • Python >= 3.12
  • numpy
  • pandas
  • matplotlib
  • openseespy
  • openpyxl
  • eqsig

Usage Examples

Example 1: Dynamic Analysis

from MDOFModel import MDOF_CN as mcn
from MDOFModel import MDOFOpenSees as mops

# Create a 3-story structure model
NumofStories = 3
bld = mcn.MDOF_CN(NumofStories, 1000, 'S2', City='Shijiazhuang',longitude=114.52,latitude=38.05)
bld.OutputStructuralParameters('structural parameters')

# Perform dynamic analysis
fe = mops.MDOFOpenSees(NumofStories, [bld.mass]*bld.N, [bld.K0]*bld.N, bld.DampingRatio,
    bld.HystereticCurveType, bld.Vyi, bld.betai, bld.etai, bld.DeltaCi, bld.tao)
fe.DynamicAnalysis('H-E12140', 3.0, True)

# Plot story drift time history
fe.PlotForceDriftHistory(1)

Example 2: Incremental Dynamic Analysis (IDA)

from MDOFModel import IDA
from MDOFModel import MDOF_LU as mlu
from MDOFModel import MDOFOpenSees as mops
import numpy as np

# Create structural model
NumofStories = 3
bld = mlu.MDOF_LU(NumofStories, 3600, 'S2')
bld.set_DesignLevel('pre-code')

# Set up OpenSees model
fe = mops.MDOFOpenSees(NumofStories, [bld.mass]*bld.N, [bld.K0]*bld.N, bld.DampingRatio,
    bld.HystereticCurveType, bld.Vyi, bld.betai, bld.etai, bld.DeltaCi, bld.tao)

# Perform IDA analysis
IM_list = np.linspace(0.1, 2.0, 10).tolist()
IDA_obj = IDA.IDA(fe)
IDA_result = IDA_obj.Analyze(IM_list, EQRecordFile_list, bld.T1)

# Save and plot results
IDA_result.to_csv('IDA_results.csv')
IDA.IDA.plot_IDA_results(IDA_result, Stat=True, FigName='IDA.jpg')

Main Modules Description

  • MDOF_CN: Multi-degree-of-freedom model generation based on Chinese codes
  • MDOF_LU: General multi-degree-of-freedom model generation
  • MDOFOpenSees: OpenSees interface for modeling and analysis
  • IDA: Incremental Dynamic Analysis
  • BldLossAssessment: Building loss assessment
  • Tool_IDA: IDA analysis auxiliary tools
  • Tool_LossAssess: Loss assessment auxiliary tools
  • ReadRecord: Earthquake record reading tool

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

mdofmodel-0.1.1.tar.gz (8.2 MB view details)

Uploaded Source

Built Distribution

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

mdofmodel-0.1.1-py3-none-any.whl (8.1 MB view details)

Uploaded Python 3

File details

Details for the file mdofmodel-0.1.1.tar.gz.

File metadata

  • Download URL: mdofmodel-0.1.1.tar.gz
  • Upload date:
  • Size: 8.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mdofmodel-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4be9b05b8e460c6f137b3873fa66481faf020cf2c3845f050cc44f881bf7e13c
MD5 8543e74ee5a0a4340bd4b36619fcd0d4
BLAKE2b-256 013e0c793c1776856ba376016790cdefdd3fe9b83df3091a3cbb64962e87499e

See more details on using hashes here.

File details

Details for the file mdofmodel-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mdofmodel-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mdofmodel-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9477b95866ac9cc5e0113b7705ffad68c88d87de24a396d3e4980e6801214e05
MD5 82bd356528ad318a01e7a216188ace33
BLAKE2b-256 ef6e17b2c182ed665c09dba323c46ca400b8daf3219dd41b2553a28f78529d45

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