OpenSees的机器学习时代即将来临?——Python版OpenSees小白漫游指南
文章来自微信公众号“CELab”,扫描文末二维码了解更多信息。
1. Introduction
在土木工程领域,一谈到地震工程的模拟,很多人第一个想到的就是开源软件OpenSees。
OpenSees,全称“The Open System for Earthquake Engineering Simulation”,是在美国PEER(Pacific Earthquake Engineering Research Center)的赞助下,由土木工程领域的殿堂级名校加州大学伯克利分校开发。
与经典的商业有限元软件ABAQUS和ANSYS相比,OpenSees最大的优势在于其开源性,其社区中,有着一批充满活力的开发者,支持着OpenSees不断进步,目前,在土木工程学术界的国内外主流期刊上,均有大量基于OpenSees的研究。
2. Problems for OpenSees Rookies
与经典商业有限元软件相比,OpenSees对于小白而言,是相对不友好的。软件由C++语言编写,但调用却是Tcl脚本语言。
Tcl脚本语言是一种工具命令语言(Tool Command Language),虽然在百度百科的介绍中,这是一款极为强大的编程语言,但对于土木工程领域的学生而言,却是一款陌生的编程语言,这无形中增加了OpenSees的学习难度。
根据国外TIOBE网站的2021年1月的编程语言排行,第一至第五分别是C,Java,Python,C++,C#,而Tcl语言的榜单排名仅为第99名左右,编程语言的“热度”较低。
编程语言 |
排名 |
C |
1 |
Java |
2 |
Python |
3 |
C++ | 4 |
C# |
5 |
图1
当下已有了一些OpenSees的GUI解决方案,譬如OpenseesPL,GiD+Opensees等。然而,这些GUI解决方案有的是为专门的问题开发,通用性较差,另外一些又基于收费的建模平台,对于一般囊中羞涩的小白而言,友好程度较低。
图2
3. OpenSees of Python and Coding Environment
在上述背景下,Python版的OpenSees,即OpenSeesPy应运而生。OpenSeesPy是OpenSees的Python第三方包,由俄勒冈州立大学的Minjie Zhu教授开发,并在持续不断地更新中,最新一期的版本是OpenSeesPy 3.2.2.9,于2021年1月28日更新。
与野生的Python第三方库不同的是,OpenSeesPy已得到了加州大学伯克利分校官网的认可,目前已作为原生Tcl语言的替换版本,可在OpenSees的官网(https://opensees.berkeley.edu/)上查询到。
OpenSeesPy支持几乎所有的Python3.0语言。同时,由于是近些年新开发的Python包,其在线文档的可读性较原生Tcl语言有了质的飞跃,对于小白的友好程度大大提升。
图3
为何OpenSeesPy的出现预示着OpenSees机器学习时代的来临呢?
原因就在于,OpenSeesPy几乎可以无缝衔接Python所有的机器学习或深度学习的Python包,例如Tensorflow,Pytorch。由OpenSees计算出的数据,利用Python自带的转换工具,可方便快捷地转换为Tensorflow和Pytorch模型训练所需的张量型数据。
图4
编程环境的搭建对于小白而言也是一个较大的拦路虎,所幸的是,对于小白而言,Python编程环境有一个极为方便的“万金油”搭建方式,即ANACONDA编程环境。
ANACONDA是一个开源版本的Python。对于小白而言,其最突出的优势在于“一键安装”,不用过多地极为复杂的系统环境变量的配置。对于第三方包,ANACONDA的优势则更为突出,往往简单地利用conda install 或 pip install命令即可成功安装,很少出现包与包之间不兼容的问题。
ANACONDA中的Python版本可以基于虚拟环境安装,即,每个虚拟环境都可以安装完全不同的Python版本,譬如虚拟环境1中安装Python 2.7而同时在虚拟环境中安装Python 3.8,不同的虚拟环境相互不会影响。
OpenSeesPy目前支持的最高Python版本是Python3.8,编程环境搭建的一般流程为:
· 安装ANACONDA
→在ANACONDA中创建虚拟环境
→在虚拟环境中安装Python3.8或其他可行版本
→安装OpenSeesPy
→安装其他所需的科学分析包
广告