费曼学习法——谈谈初学者学习和使用计算力学的商业软件

文摘   2024-08-12 10:09   澳大利亚  

点击上方蓝字了解更多计算与STEM领域研究前沿



首先来盘点一下笔者用过的商业软件:


1. ABAQUS:力学领域用的最多的软件,各种各样的非线性问题,静力、动力都可以做。还支持热力耦合,水力耦合,自己定义力学模型和参数,功能特别强大。


2. COMSOL Multiphysics:多物理场融合的软件。支持双向和单向耦合。自定义材料参数。不仅支持常见的物理场(热场、电磁场、流场、浓度场等),还接入了偏微分方程的接口。从某种意义上来说,只要是偏微分方程可以表示的问题,这个软件都可以做。缺点是不支持GPU加速,而且模型非线性太强,也会不收敛。


3. Lsdyna:汽车和结构领域用得很多,主要是做碰撞的,显式动力学分析做的多。最近还加入了近场动力学模块(键型的)。多场耦合分析,个人感觉不太强。


4. Ansys:集成化很高的软件,集成了很多的软件包。颗粒相关的问题都可以做,也支持多物理场耦合的问题。但就是软件包特别大,基本上需要用到哪一些模块,就安装哪一些模块即可。


5. PFC:做离散元的软件。相对比较成熟。热力耦合,水力耦合的问题都可以做,很多接口都是现成的。Fish语言也都很直接。


再来谈谈学习者普遍会遇到的问题:


1. 不知道软件怎么正确使用:功能特别多,不知道哪一个功能是做什么的,也不知道这个软件究竟能实现什么样的效果。


2. 遇到问题不知道应该怎么处理:一开始计算的时候,提交任务,还没计算,马上就报错,不知道是哪里的原因。


3. 基本的问题会做,难的问题就不知道怎么办了。线弹性的单轴抗拉和抗压都知道怎么去开发模型,但是问题复杂起来,例如:涉及到断裂,传热等,就不知道该如何处理了。


4. 商业软件太多,不知道哪一个最合适自己的任务。一般课题组都会固定用一款或几款软件,但有的科研任务可能会需要新的,多款软件。


现在再来谈谈商业软件的相关特点:


1. 代码封装度极高,操作是看不到源代码的。这也是很多人认为会用商业软件不叫计算力学的原因。基本上都是图形界面一阵操作,不需要太多的力学知识也基本能上手。


2. 功能很全面,但依旧逃不过“二八定律”,即:20%的人会用80%的功能,80%的人只会用20%的功能。软件有很多的功能需要使用者根据任务的需求自己开发,例如:用户自定义的本构模型,随机的几何和材料特征等等。还有的需要用几个软件联合仿真。


3. 天然依赖于软件的使用经验。很多软件的功能只有试过了才知道应该如何使用,会遇到什么用的问题。并且,软件还会定期的更新,不同的版本,模块和功能也会有所差异,在使用上也需要用户自己的体验和开发。


对于这类情况,笔者的建议:


归根结底就一句话:根据自己的情况,量身定制


例如:


你的问题就是显示动力学的碰撞,那就选择Lsdyna,纯做碰撞;如果你的问题涉及到多物理场,对力学分析要求不高,首推COMSOL Multiphysics。


如果一个软件不够用,那就要考虑集成几个软件,把每一个软件的优势都发挥出来。例如用COMSOL计算出你需要的物质场,热量的分布,然后倒入其他的软件计算。


如果你需要的是自己定义的几何或者本构,那就重点突破这一块。


开发的经验非常重要,尤其讲究交流和合作,充分利用资源


既然是开发,那就要摒弃原来的“学生思维”,即:一五一十的把所有东西(基础理论、软件操作等)全部学完,再来做。


开发是一个迭代的过程,秉承“先完成再完美”的思想。通常都是需要用到什么,现学现用


当然,也会有很多大佬,把自己几十年的工作,浓缩成系统的教程,方便大家学习和使用。


但是,任何的学习都是由浅入深,循序渐进的。首先要把基础的理论掌握了,懂了软件的基本操作,会看说明文档,会调研资料,查数据,具备了初步的开发经验,做工业级的项目才会游刃有余。


这里笔者比较推荐的是费曼学习法


图:费曼学习法示意图。


对应工业软件的学习、使用和开发就是:


  • 先找一个和你的任务差不多的项目,先拿来运行一遍;


  • 熟悉操作的流程,看懂底层的逻辑,然后根据自己的任务做调整;


  • 遇到了问题,再去搜索资料,不断学习,把一个大的问题拆成了无数的小的问题,一个个地去解决;


  • 每解决完一个任务,都把相关的核心要点记录下来,方面查找和学习。


反复+系统化学习,既能直接掌握和项目相关的经验和知识,又可以最大程度的节省时间和学习成本


这里推荐2个平台,有很多相关的付费的项目(培训、模型),可以根据自己的需求学习:


  1. 仿真秀

  2. 技术邻


网站里面一搜就有了。也有APP和公众号,时不时的还会有讲座、技术帖子等等。


以下是笔者用过的一些书,都是直接和商业软件使用和开发相关的,大家可以参考


推荐理由:庄茁老师团队出的书。主要是讲解各个子程序(Fortran90语言)。包含了很多的使用经验,也有C++代码的实例。大量的例子都有源代码,很多都是已发表的论文当中的模型。不仅可以学到代码和软件开发,论文的数据处理和分析思维也会得到很大的提升(初学者不太适合,涉及到很多的代码编写,尤其是UMAT和UEL涉及到相关的计算力学的理论)。


推荐理由:江博士的作品。适合机械相关背景的工程书、学生学习。很多的案例开发,步骤写的非常清楚。

ABAQUS还有很多,都是偏向于不同专业背景的(例如:岩土、道路等等)。读者可以自行查阅。


推荐理由:适合初学者学习,掌握各个模块的基础用法。


推荐理由:地质工程、岩土工程相关的背景用得较多。



推荐理由:胡坤老师的作品。CFD商业仿真应用参考最多的教材。



推荐理由:做碰撞的可以参考,很多详细的案例讲解



最后,请大家记住:计算力学最核心的是算法和核心求解器的开发。商业软件更多的是偏向于应用


如果你觉得此文对你有帮助,请点赞,谢谢!


计算机技术在科学&技术&工程&数学中得到了广泛的应用,力学方面,计算机技术成为了科学的第四次革命性技术,现在基于计算机的数据科学已经逐步成为力学等其他科学发现的第四范式。人工智能、大数据、数字孪生等概念已经逐步成为当今时代的主题。智能制造、智能算法、数据驱动力学、大语言模型、自动驾驶在当今社会展现出巨大潜力,吸引了大量的研究人员。同时高性能显卡和多核中央处理器的出现为大规模数值模型的高性能计算提供了强大算力。然而因为该领域的论文较多,涉及内容较广,需要的知识量较大,不仅需要力学,数学,物理的知识,还需要计算机、数据科学、大数据分析的知识。入门门槛较高,因此我建立了此微信公众号(STEM与计算机方法),希望通过自己的学习加上文献翻译和整理,帮助新手快速掌握前沿研究的热点和聚焦,轻松入门计算的相关研究(实验、理论、数值计算方法),从而吸引和聚焦更多对该技术和研究领域感兴趣的华人朋友,为推动智能计算与基础科学的科学研究的发展和交流做一点儿贡献!

如果你认同我的想法,请点击右上角的三个点,将此文章(公众号)发送给你的老师和同学,谢谢。

如果你想在朋友圈中分享你所专注的前沿研究,欢迎你分享到朋友圈,谢谢!

STEM与计算机方法

扫一扫二维码关注本公众号

STEM与计算机方法
不定期更新各种前沿的科学技术和方法,最新的学界和工业界的资讯,分享计算机、数学、物理的方法在各个学科中的应用,不定期转发相关的会议内容,链接和开源代码。
 最新文章