超越梦想分享 http://blog.sciencenet.cn/u/pcabaqus 结构减隔震控制 非线性抗震分析 Python简单编程

博文

Python与结构分析(2)---反应谱程序改进

已有 7166 次阅读 2011-6-15 23:19 |个人分类:PYTHON|系统分类:科研笔记| 地震, 反应谱


笔者曾在博客中发过一篇用Python计算地震波反应谱的文章(链接),当时的问题是计算速度较慢,究其原因是所调用的Scipy.signal模块是采用频域方法进行求解的,而频域方法涉及复数运算,计算量为实数计算的n倍。为改进反应谱计算效率,笔者决定采用时域的直接积分方法求解时程响应,考虑python计算速度一般,采用Fortran编制了Newmark法的计算程序,然后用f2py将其转化为python模块,然后调用该模块进行时程响应求解。编制完成后,选用一条自己生成的人工波进行反应谱计算。对比原来的程序发现效率果然提高很多,计算时间从23.268秒减小到0.158秒,而结果相差无几(高频部分有些差异),如下图所示。
程序文件我已上传附件及网盘:
科学网附件:SP.rar 
115网盘下载地址为:http://u.115.com/file/dn4cckn7#SP.rar
程序运行需要python库支持,推荐安装Enthought Python Disribution(学术版)。



https://blog.sciencenet.cn/blog-339218-455757.html

上一篇:OpenSees中剪力墙的几种模拟方法
下一篇:f2py使用不同编译器的执行语句
收藏 IP: 111.187.66.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-28 06:24

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部