南京大学王波:国产离散元MatDEM软件最佳的学习方法
- 作者优秀
- 优秀教师/意见领袖/博士学历/特邀专家/独家讲师
- 内容充实
- 工程案例
- 平台推荐
- 主编推荐
导读:大家好,我叫王波,南京大学硕士在读。在2020MatDEM创新系列讲座期间,受仿真秀平台邀请,作为一名离散元软件的学习者和应用者,分享我的MatDEM学习历程及心得体会,希望能给MatDEM初学者入门有些许帮助。如有不当,欢迎批评指正。一、我的MatDEM学习之旅
2018年,我就听说了南京大学刘春老师团队自主研发的国产离散元软件MatDEM,但真正开始接触MatDEM是在2019年研究生入学之后。由于研究方向的需要,需要通过数值模拟对采空区地面塌陷的过程进行研究。尽管目前有很多基于有限元法和有限差分法等理论的商业软件可以使用,然而传统的有限元和有限差分方法难以模拟大变形过程,并且某些商用的离散元模拟软件存在运算速度慢和版权等问题。因此我在选择究竟需要学习什么数值模拟软件方面纠结了很长时间。后来,在我的导师张丹老师推荐下,我使用MatDEM软件。因为MatDEM软件较传统离散元而言有很高的运算速度以及自主知识产权,而且有助于日后开展科研工作。于是,我和MatDEM从此结缘,并开启了我的MatDEM学习之旅。刚开始接触MatDEM时,我走了很多弯路。因为我本科做过有限差分相关的模拟,所以就打算直接开始使用MatDEM,自己琢磨数月仍是一头雾水。直到学完刘春老师发布在仿真秀平台的MatDEM学习视频后,这时我才“幡然醒悟”,原来我一开始就没有找到正确的方法。之后通过MatDEM配套课本《地质与岩土工程矩阵离散元分析》的阅读,以及结合网站教学视频的学习,我逐渐可以参考软件已有代码建立简单模型,然后从简单模型向复杂模型转变。
最开始当程序报错时,我十分束手无措,只是在代码上不断修改,运气好的时候也可能解决程序报错问题,但仅凭运气重复修改代码却没有真正了解模型建立的原理和软件中数据存储格式。这是难以提高建模效率的!为此,我对照课本《地质与岩土工程矩阵离散元分析》去认真了解软件的建模过程以及各种代码的含义。
经历完这个过程,我明显的觉得:遇到问题时应首先查阅配套课本中相关章节的内容,只有从原理上了解建模过程才能在遇到程序报错时通过思考找到程序报错的原因所在,如果只是一味的依赖他人解决问题,可能再次遇到相似的问题最终仍然不会解决。前不久,由仿真秀平台推荐的南京大学地球科学与工程学院刘春博士MatDEM团队开发《“采空塌陷离散元数值模拟APP应用解决方案”》荣获工业和信息化部、天津市人民政府主办,天津市工业和信息化局、中国工业技术软件化产业联盟联合承办的“2020工业技术软件化发展论坛暨2020中国(天津)工业APP创新应用大赛“最佳行业创新应用奖”。这个“采空塌陷离散元数值模拟APP应用解决方案”源自笔者先前撰写MatDEM工程研究报告,在刘春和张丹老师的指导下,仿真秀平台和MatDEM团队合作开发的“采空区塌陷离散元解决方案”获得中国工业App创新应用大赛“最佳行业创新奖”3万元。我希望在接下来的学习和科研中,能对MatDEM有更深入的了解,能更好地运用MatDEM这个科研工具,使我的MatDEM的学习之旅更加精彩。图2-南京大学地科院2020工业APP参赛团队合影二、我的MatDEM学习心得
以下是我在学习MatDEM过程中归纳的几点经验,希望对MatDEM初学者入门有所帮助:教学视频与配套课本对于MatDEM初学者来说是十分重要的学习资源。因为这些教学视频都是刘春老师精心制作并整理过的,具有很高的系统性,而且刘春老师的教学视频中不仅有MatDEM的理论教学,还有很多MatDEM使用与代码编写的教程,可以让初学者更加直观的了解MatDEM的使用方法以及学会如何编写代码,这些内容对于MatDEM初学者都会有很大的帮助。配套课本的正确使用也是十分重要的,因为课本《地质与岩土工程矩阵离散元分析》中也详细介绍了MatDEM的理论基础,除此之外还将具有代表性模拟案例的源代码进行了详细说明,解释了每一步代码的意义及其作用,还将一些函数的用法也进行了详细说明。我认为如果需要提升自己使用MatDEM的能力,就应该将教学视频与配套课本充分使用。MatDEM的二次开发基于Matlab语言,综合使用MatDEM和Matlab两个软件能有效提高建模效率。由于MatDEM目前阶段还不支持代码编写过程中的代码自动识别功能,因此可以在Matlab或其它代码编辑器中编写代码甚至是调试代码,将完善后代码放到MatDEM运行,可以减少代码编写出错的问题,从而可以较大程度地提高工作效率。除此之外,如果想要较好的运用MatDEM,熟练地运用Matlab语言也是十分必要的。MatDEM的运算结果大多以矩阵的形式进行储存,因此可以利用自己编写的代码进行后处理,但自己编写代码处理数据的前提就是了解MatDEM数据的存储形式。综合利用MatDEM和Matlab可以使我们在建立模型以及处理计算结果时更加方便快捷。
最后一点建议,也是最重要的建议,这就是独立思考与沟通交流相结合。学习是一个不断思考并提高的过程,我认为学习MatDEM也是一样的道理。初学者更应该独立思考,独立思考的过程可以使我们探寻软件的原理以及每行代码的具体含义,当我们通过独立思考后解决了所遇到的问题,我们才会对代码有更深层次的认识,如果每次遇到问题没有经过仔细思考就盲目咨询,也只是十分浅显的解决了这一种问题,下次如果再遇到相似的问题仍然不会解决,唯有通过自己仔细思考不断尝试之后解决问题方能在此类问题中举一反三,才能真正理解要义,从而提升能力。例如:我在删除部分单元然后再进行单元分组的时候遇到了单元分组明显不对的问题,我仔细检查过代码也没有发现问题所在,对于这个问题,我纠结了很长时间,最后我经过仔细思考和不断尝试后才发现是因为删除部分单元后系统中的单元编号会发生更新,更新后模型的单元编号与原来获取模型单元编号不能对应导致分组问题,重新获取单元位置信息再进行单元分组就将问题解决了。但是,独立思考也不意味着杜绝交流,当遇到经过仔细思考并尝试多次都不能解决问题时,就可以在交流群中和大家交流,甚至是咨询刘春老师,我相信独立思考与沟通交流相结合的方式定能提高MatDEM软件的使用能力。总之,学习MatDEM的最佳的方法:通过视频学习软件使用的步骤和软件原理(推荐同时了解Matlab基本操作流程及函数使用),然后在原有代码的基础上进行修改建立简单模型了解软件的具体使用步骤和代码编写,遇到问题时通过视频教程以及配套课本进行独立思考,问题难以解决时和他人沟通交流或者咨询老师,通过Matlab自带函数可以自己编代码提取计算结果以及处理数据。注意:刘春老师的系列视频在仿真秀官网、仿真秀APP、B站和慕课都可以找到。三、案例演示:采空区地面塌陷模拟
利用MatDEM软件,我建立开采高度分别为8m、10m和12m的采空区地面塌陷的二维模型,获得了不同开采条件下的采空区地面塌陷的过程,与此同时设置相应的监测点对应力变化进行分析,讨论了不同影响因素对采空区地面塌陷沉降量的影响。
图4 采空区几何模型
图5 采空区塌陷后纵截面位移
图6采空区塌陷后纵截面地层错动
图7 采空区群塌陷后地层错动
a)采空区群塌陷后水平应力链
如果您对采空区地面塌陷离散元模拟感兴趣,或者对MatDEM软件学习感兴趣,欢迎关注11月26日20时,MatDEM创新讲座第六期《MatDEM在采空区地面塌陷研究中的应用》。以下是我的讲座安排:点击下图课观看直播或回看四、我的致谢
感谢我的导师张丹老师,还有南京大学刘春老师。因为他们给与我在科研方向上的指导与教诲,让我在科研方向上才能不迷失方向。同时,还要特别感谢MatDEM团队的乐天呈同学在学习代码过程中给予的指导。
声明:原创文章,首发仿真秀APP,部分文字和图片源自网络,如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我。 获赞 10080粉丝 21540文章 3537课程 219