笔者:心尘轩/Angus

划重点:通过本文,你会了解OpenSEES(以下简称OS)基于tcl 和C++混合编程的实质,会洞悉一个有限元软件的三大主要部分,会明白现在OS的不足。并在对一个有限元软件宏观认识的基础上爱上OS,同时借助专为OS量身定制的STKO 玩转OS,无需理会tcl编写脚本,如同操作sap2000一般,尽情享用OS的强大的求解器和无线壮大的材料库,单元库和算法

曾几何时,初识OS的研究生都会在师兄或者老师的嘴里听说过OS的强大,什么开源啊,高效啊。可当我们自己慢慢叩开OS的大门的时候,面对一个仅有exe文件的黑框,是否也曾怀疑过人生。这是啥,这和我们常见的有限元,如ABAQUS, ANSYS, PERFORM3D,ETABS,SAP2000等都大不一样,没有基于GUI(图形用户交互)界面,似乎就是个寂寞,可为什么现在越来越多的研究员对其飞蛾扑火呢,这里面一定有不可告人的秘密,今天小编就带大家领略一下OS的魅力,领略PEER前辈的无私和大爱。

  1. 不一样的有限元

准确的来说,OS不是一个有限元软件,实质上它是一个求解器,当搭配上tcl 脚本后,才能名义上算得上有限元软件。Tcl 脚本充当了类似一般可视化有限元的前后处理器,连同OS求解器组装成的有限元。于是看到这里,很多人会以位OS是tcl编写的代码,如果这样想,你就大错特错了,你离OS的内核还太远。我们所编写的tcl脚本,仅仅是OS代码的冰山一角,它的职责仅仅是激发tcl与C++的接口,即tcl的代码仅仅告诉OS你要调用哪些材料库,哪些单元库,哪些算法的源代码,由这些源代码对有限元模型进行刚度矩阵方程的求解(典型的NR method)静力计算,或者采用NM方法 积分的动力计算。所以学习OS如果你不知道源代码,是一件非常遗憾地事情,我们可以不会编写,但是我们一定要知道它的存在,才能感概老前辈们的无私。

在官方(Open System for Earthquake Engineering Simulation - Home Page (berkeley.edu))页面,我们可以轻松下载源代码,如图1。

图1

这里装的是啥,我们打开它,如图2,很多文件夹,如单元,材料,模型,记录等,当我们再次点击这些文件夹,以材料文件为例,狠狠的打开它。这才恍然大悟,原来里面装的都是每个我们在编写tcl 语句中使用的材料对应的头文件(.h)和主体代码(.Cpp).换句话说,tcl编写的语句,仅仅是告诉OS我要用这些材料,单元,算法,而实际上真正计算模型的是OS在调用这些C代码。这里也解释,为什么同样规模的数值模型,OS的求解速度会比ABAQUS之类要快很多,是因为求解的内核C语言对于计算机的资源调动和利用是非常高的,这也是为什么,很多很软件底层语言都会选择C语言得原因。

 

图2

上述得分析我们向我们阐释了一个事实,实际上,OS的计算模型的原理从解读代码的角度就是tcl+c++的混合编程。为什么要混合编程,其实思想就是物尽其用。C语言擅长计算,那么把和计算相关的材料,单元,算法都用C编制,而对于建立几何模型和设置参数,对计算的性能需求不高,就用tcl补充,所谓相得益彰。

综上分析,我们可以知道传统基于tcl 编制,通过tcl和C的相互接口,实现数据交互,进而实现了tcl 满足前后处理,C实现求解器的不一样的有限元。

  1. OS的包容和高效

接下来我们来谈一谈,为什么说OS是无私和包容的软件。其实OS的魅力也就是因为此,也必将因为此成为日后研究圈的一颗明星。PEER前辈们通过自己的努力,编写了这些源代码,最后他们决定将这些源代码,免费的贡献出来,在学术圈共享。这是多么伟大的举措,没有商业化,纯粹的学术的追求。因为在这样的情怀下(当然最重要还是这些源代码写的好),越来越多的科研人员开始使用。随着用户的需求随着课题不断地开展,用户对当前的材料库,单元库,算法也越来越不满足,恰恰又因为C语言具有封装,继承,和多态的特征,使得OS具有开源的特点。允许任何研究者对现有的材料库,单元库,算法库等进行修改和扩充,这也是为什么,几十年的发展,在包容的情怀下,OS汇集全世界科研人员共同的努力也越来约丰富,这也是为什么笔者认为,OS必将是未来一颗屹立不倒的新星,因为它不是一个人在战斗,是全世界的研究人员都在开发它,为它的充实在努力,这肯定比一个公司研发人员的智慧多了去。

那么如何开发它,其实这是很复杂的过程,需要一定的编程能力,因为开发新的材料,单元,或者算法,自然你要先了解PEER前辈是如何做,你遵循他们的逻辑,自然也就很容易实现,这里可以跟大家简单分享下。

开发新的材料,需要有开发编译代码的环境,我们经常使用VS,如图3,这基本是每个做编程人员的必备。

图3

其次我们要仿照OS现有的材料格式,如图4的selfcentringMaterial.cpp格式,根据自己想要材料的滞回规则编写你的代码,然后在根据selfcentringMaterial.h格式,编写对应的头文件,最后将这样的newMAaterial.h和newMaterial.cpp文件添加到uniaxial文件下,对其编译,调试,直至成功。之后,生成的opensees.exe执行文件,这时就可以使用你自己开发的材料啦。其实上述的过程也解释为什么berkeley网站不定时会更新OS的版本,一方面是修正bug,另一方面给就是扩充单元库和材料库,讲到这,小伙伴们,赶快去官网下载最新的版本吧。对于OS的高效,那是因为C语言本身特征决定的。

图4

  1. STKO带你无需理会tcl玩转OpenSEES

上述两节,差不多把OS求解的功能夸上天,它没有掣肘的地方么,他那么优秀,为什么普及率还是不高。正所谓成也萧何败也萧何,OS太牛,开发者更牛,他们混迹学术圈,也不管我们刚入门的小虾米,他们以为tcl 语言建模的过程就等同是GUI窗口了,而事实是,tcl对于不学编程的学生来说,我们也想说NO啊,更别说工程界的设计人员了,这就使得OS的受众不大。

划重点,不要怕,救星来啦,由意大利软件开发公司ASDEA为OS量身定做的STKO,完美解决了这个问题。让我们无需理会tcl,直接像操作SAP2000一样操作OS。请听我慢慢道来。

OS强在求解效率,而且是开源免费,那么开发一款新的有限元只要搭载OS即可,这也是STKO研发的思路,无缝对接OS。通过GUI操作,建立几何模型,赋予材料,单元,截面,边界,分析设置,和SAP2000一样,点击运行,计算完成,即时查看后处理,可以查看更多,更细致的结构,包括积分点纤维的应力应变。闲话不多说,上案例。

################################自复位钢框架###############################

Step 1通过点击鼠标,类似SAP2000,或者baqus 模型数一样,两三分钟即可实现几何模型搭建,这样的莫模型。

Step 2 划分网格建立有限元,也仅需点击mesh。

Step 3 计算。点击analysis即可。

Step 4 后处理查看结果。可以看动态变形,可以看积分点纤维应力应变,依次如下图。自然,我们也可以很方便的得到我们的滞回曲线图。

在这一通GUI的操作下,我们也会很方便对我们的模型进行有目的的纠错。在整个过程中,我们没有理会任何的代码编程,仅仅就把它当作一个普通的可视化有限元进行处理,多么迎合我们一贯的行为啊。所以在这里强烈推荐大家可以学习这一款由意大利ASDEA开发的STKO,让它带我们玩转OS吧。

结后语:如果各位看官看完后,对这个软件非常有兴趣,不妨加入交流群(752746704),我们致力于扩大将这么强大的OS 求解器在中国乃至世界的用户群体,让我们的设计搭载由全世界科研人员努力的智慧,也使得科研得以回馈社会。

无需TCL编程能力,STKO带你轻松玩转OpenSEES相关推荐

  1. 带你们轻松玩遍吃遍张家界

    来张家界的朋友一般都会去的景点是国家森林公园.天门山.玻璃桥.凤凰等等,玩遍这些景点至少需要4天-5天的时间.很多朋友虽然想一次性玩遍张家界的各大景点,但是由于时间.距离关系,只能选取几个最想去的地方 ...

  2. 【EasyNLP】带你轻松玩转CLUE榜单

    重磅来袭!EasyNLP正式成为CLUE榜单的官方工具! 1.导读 EasyNLP是一款简单.易用.高效的NLP开发工具,其完全基于Pytorch实现,提供了包括预训练语言模型(Pre-trained ...

  3. Kubernetes Pod篇:带你轻松玩转Pod

    本文将对Kubernetes如何发布与管理容器应用进行详细说明,主要包括Pod概述.基本用法.生命周期.Pod的控制和调度管理.Pod的升级和回滚,以及Pod的扩容机制等内容,并结合具体详细的示例,带 ...

  4. python 输出一个 5*5的 三角形_GitHub标星3W+,80个Python案例,带你轻松玩转Python学习!...

    在Python学习过程中,案例是我们绝对绕不开的一部分.它不光能够帮助我们加深对基础知识的理解,也能进一步提升我们的编程能力. 今天给大家整理的这份80份Python精选案例,来自GitHub热门项目 ...

  5. 带你轻松玩转统计图~

    在做统计资料整理与分析时,我们经常会遇到做统计图.在数据量不大的时候,通常使用Excel或者其他普通图表,但是一遇到数据庞大的情况,就容易杂乱无章.那么使用什么工具能带你轻松玩转统计图呢?当然是Fin ...

  6. 剪裁tiff影像数据_能看更会用,超擎影像云平台带你轻松玩转海量影像!

    北斗系统.高分专项.无人机航拍--在行业数字化转型的今天,影像作为大数据的一种,以其大范围动态实时监测等特点备受青睐.越来越快的更新频率,爆炸式的数量增长,也带来了入库慢.处理时间长.系统整合不畅等难 ...

  7. 带你轻松玩转神奇Micro:bit开发板的Max:Bot机器人!

    MaxBot Max:Bot机器人是一款低门槛,功能丰富的移动平台,设计感的接口,可以完美的与micro:bit搭配使用.集成了机器人的基础功能,具有易组装.一体成型的全金属闪亮外壳. micro:b ...

  8. 最新最全的视觉Transformer教程!论文分析 + 逐行Coding,带你轻松玩转ViT

    Transformer自2017年被提出后,从横扫NLP领域的风光无二,到陷入一片对其在CV任务有效性的质疑声中,再到不久前在多项图像任务中显示出直逼CNN的优异性能 以及 ICCV2021 best ...

  9. TPYBoard开发板带你轻松玩转MicroPython

    2019独角兽企业重金招聘Python工程师标准>>> 说到MicroPython,也许有人会感到陌生.而说到和它密切相关的Python,是否会恍然大悟呢?Python属于解释型语言 ...

最新文章

  1. Await, and UI, and deadlocks! Oh my!
  2. Silverlight实用窍门系列:61.Silverlight中的Trigger触发器,自定义翻页触发器
  3. 回调函数_实用程序类与函数式编程无关
  4. 经常会提到的Java面试题
  5. wx轮播图接口学习用json格式_零基础学小程序008----列表和轮播图的实现,小程序解析json数据...
  6. python导入同一文件夹下的类_python自定义模块
  7. 一、Rabbitmq安装与配置信息
  8. Java--Socket客户端,服务端通信
  9. 连载《一个程序猿的生命周期》-6、自学C++,二级考过后,为工作的机会打下了基础...
  10. Spring Security Ajax 被拦截
  11. SBUS协议数据演示
  12. [基于Python的微信公众号后台开发:1]配置对接阿里云服务器
  13. 电脑网络问题——IPv4无Internet访问权限
  14. 2022-2028年全球及中国点胶枪行业发展现状调研及投资前景分析
  15. “蔚来杯“2022牛客暑期多校训练营5 A:Don‘t Starve
  16. python网络部分
  17. HDU 2015 偶数求和
  18. autoware下ndt_mapping节点解读
  19. JS的正则表达式 (转载) 真好 学习下
  20. 财务自由?这样做微信开发可以吗?

热门文章

  1. 2006-〉2007/01/03 周三 晴天 醉生梦死的假期
  2. Java——【案例】Java坦克大战游戏[版本1]能控制移动的GUI界面坦克大战游戏
  3. 十五年工作经验的程序员,下面分享一篇职场经验的文章
  4. 死锁、活锁和饿死的理解(转)
  5. 操作系统学习--死锁和饿死
  6. 数据中心“容灾和备份的区别” 。
  7. 楔子:嗨,世界你好!
  8. 云原生 | go-micro全量配置详解
  9. 硬件描述语言Verilog设计经验总结
  10. 德国网站评选100个最佳字体