公众号: 华工混凝土结构
采访人
2018级土木工程本科生 雷浚
陈博士简介:
陈学伟,工学博士,第5届广东省超限高层建筑工程抗震设防审查专家委员会委员。
2002~2006 工学学士华南理工大学土木工程系。
2006~2011 工学博士华南理工大学土木工程系,结构工程专业,师从韩小雷教授,华工高层建筑结构研究所。
主要研究高层及复杂结构设计,有限元技术和弹塑性分析。
目前就职于WSP Asia Ltd.,任副董事,主要从事高层及复杂结构设计工作。
同时担任华南理工大学土木与交通学院本科毕业设计指导老师、香港大学客座助理教授(主讲科目:CIVL7008 Seismic Design for Building Structures)等学术职位。
拥有广东省工程勘察设计行业协会第五届理事会荣誉会员、CHAAE中國(香港)建築及工程交流學會执委等社会身份。
目前发表结构工程研究论文42余篇,出版专著《结构弹塑性分析程序OpenSEES原理与实例》(第二版)。
个人博客网站:www.dinochen.com(点击文末–阅读原文可到达)
陈博士早在高中就开始了他的编程之旅,从此之后,在编程的道路上“一发不可收拾”了。同时陈博士在事业、学术上也取得丰硕成果,做到兴趣、事业两不误,甚至能说,编程更是他的进行工作、科研的“利器”。
其实,在一般情况下,能做到兴趣、事业两开花是非常难的,但陈博士却找到两者平衡点、共同点,这其中奥妙实在是令人好奇!
这期就让陈博士给我们描绘编程与土木工程交织的画卷吧!
雷浚:我从您的博客和陈庆军老师口中了解到您的编程非常厉害,同时我从一些地方看出您热爱编程。请问师兄您是从什么时候开始学习编程的?您学习编程的契机或者最初动力是什么?
陈博:我是在高三的时候学习的编程,当时开始有编程的教科书售卖,那时候没有互联网,所以编程基本上是通过书本学来的,第一本编程书是《DELPHI在多媒体编程中的应用》。初始学习编程的动机是想编写一些小游戏,最初的动力就是在编小游戏的过程中获得小小的成就感。
雷浚:我从学院网站上看到您在校期间发表很多编程作品,在本科阶段,同样作为学生,我自己也了解一点编程知识,但我却感觉不到编程对我有什么影响,所以我想知道,编程在师兄您的土木工程学习中起到了什么样的作用?
陈博:编程在土木工程的学习起到非常好的作用,有1+1>2的效果。比如通过编程实现课本真正实用的知识,比如通过编程把结构力学中的矩阵位移法实现出来,就会让你更好的理解力学计算方法的各个细节。
雷浚:在我大三上学期里,我欣赏到了由您之前完成的混凝土结构课程作业,它放到现在同样是可视化程度和完成度也是首屈一指的。请问您完成在这个视频过程中有什么期待或特别的想法吗?
陈博:这个视频是混凝土结构的一个SRP计划的作品,那时候采用的技术是3DSMAX及FLASH,采用这些技术制作多媒体教材,一开始我是想制作一个混凝土梁构件试验的动画,下一步的期待是制作一个可以互动的动画,也就是可以让用户修改配筋及构件尺寸,可以实时更新的三维动画,希望这部分工作由下一届的师弟师妹去完成。
本科阶段最得意的编程作品是《常应力(应变)单元有限元程序的开发》,本科阶段学习完弹性力学的关于常应变三角形单元以后,通过DELPHI把这个小型的有限元程序编写出来。这个是我最得意的作品,有一种学以致用的感觉。
雷浚:除了在校期间,我发现师兄您在工作之余推出了非常多的编程作品,我想问问师兄,编程在事业上能对我们有什么帮助呢?
陈博:编程在工作上也有很多的帮助,比如开发一款适合自己工作内容的结构分析软件,可以通过编程编制绘图工具,提高绘制施工图的工作效率等等。计算编程在以下内容可以帮助你的工作:绘图自动化,结构分析,有限元分析,数据后处理等等。
(图片摘自www.dinochen.com的博客)
雷浚:在您的博客中,我见识到了您用各种各样的算法和思想去优化和拓展结构,例如遗传算法、织物结构和矢量图解法。我个人在学习过程中也尝试用遗传算法去优化混凝土结构,请问我们在使用算法应注意什么方面呢?
陈博:个人在学习过程中,运用遗传算法去优化混凝土结构,应该注意以下几点:
(1)选择合适的编程平台,如MATLAB,PYTHON等,里面有丰富的算法包
(2)虽然算法可以调用库,但是作为使用者一定要了解算法的原理
(3)选取接近实际工程作为算例,可以了解该算法对实际工程的影响
雷浚:您最近也在苹果商店发布了新的《结构力学求解器》APP,请问这些不同语言之间的学习有没有太大的屏障?在当前这个时代,您比较推荐哪个学习语言?
陈博:不同语言之前的屏障并不是很大,关键是学习编程的逻辑,以《结构力学求解器》为例,我先是编了pascal,现在移植到JavaScript与苹果的Swift,它们只是在语言表达有差异,内容是一样的。对于初学者,我比较推荐学习python,熟悉编程逻辑以后可以学习多种语言,如开发grasshopper的插件有可能用到的c#,或者制作android程序的话,需要学习的JAVA。针对结构工程我整理了以下表格:
(1)sap2000与etabs的二次开发:c#, VB.net
(2)Grasshopper: python, c#
(3)Revit: c#, python, VB.net
(4)有限元软件: matlab, python,c++
雷浚:在土木专业正在转变和工作学科交叉的时代,您认为土木学子在学习专业知识外,还应注重什么?
陈博:我认为在学习专业知识以外,要学习多一些课本以外的知识,如果你以后想作为一名结构工程师,课本以外的知识有时候更加重要,比如三维绘图,图形编程,物联网,人工智能等等。
我想说四点(可能只适用于结构工程设计领域):发现问题,了解问题,解决问题,总结方法。在本科阶段及研究生阶段要培养这些能力,这些能力比学习具体的知识重要。
雷浚:听说您还会带小孩学习STEM,还用玩具做出了平板的振型,请问兴趣和专业是否也是会相互促进的?
陈博:我对STEM教育是非常感兴趣的,因为我自已也在制作玩具中不断学习新的知识,通过STEM或者创客活动,我学习了3D打印技术,Arduino的开发与一些电路设计的基本方法。兴趣与专业是可以相互促进的,特别对专业知识向非专业知识的人进行科普的时候。
CSDN(程序员):https://blog.csdn.net/dinochenxuewei
Bilibili(B站):https://space.bilibili.com/390950236
Zhihu(知乎):https://www.zhihu.com/people/dino-maker
Github(开源):https://github.com/dinochen1983/
《结构弹塑性分析程序OpenSEES原理与实例(第二版)》