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.3.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.3-py3-none-any.whl (8.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mdofmodel-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 f0051de9f088234c40e764ac9638678bfa57915f524d109d0648a0340fc9fafd
MD5 efaa630d08791012e26a86f49eec37fe
BLAKE2b-256 cd10925d49b98d67aa0b3b720fe3bb91aca71af39d73ebd2f7f8046641ee6691

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mdofmodel-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d4f676b8208d03f9dd3c9ba0096adf901d40798d34071e9497b3fa87aaa3d348
MD5 8bd9f77117c5d74230c1499ec5179468
BLAKE2b-256 eff7a6c8af8e9dc46068cd173408d87a9eaa6adf2451dad9a37fbea3a41271a6

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