只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
1064879863
16货源网 > 餐饮行业新闻资讯 > 网站建设公司 >  如何将自己培养成优秀的有限元开发工程师呢?


如何将自己培养成优秀的有限元开发工程师呢?

发布时间:2019-09-14 10:40:35  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【
大量的阅读和不断的实践
如何将自己培养成优秀的有限元开发工程师呢?

大量的阅读和不断的实践

回答你这个问题之前,也许首先回答一下的问题比较好:

在中国大陆有优秀的有限元开发工程师吗?

其回答也许是No。因为中国并没有优秀的有限元软件,那么我们可以合理地推测中国也不会有优秀的有限元开发工程师。因此你也不可能得到一个可信赖的答案,包括我下面的回答也是如此。

  • 1. 数学和数值计算

有限元是求解微分方程的工具。请先牢牢地记住这一点,这规定了你的视野和眼界。在数学上你可以从不同角度去理解和求解微分方程。有些问题,如纳维-斯托克斯存在性与光滑性问题,在数学上都是顶级难题。当然我们不需要学到这种程度,但是学一门如Numerical method of PDE这样的课程需要的。比如说MIT opencourse中就有一个Numerical Methods for Partial Differential Equations。这是针对工程师的,数学要求不高。如果你能完成这一课程,你就具有了俯瞰的能力。而且很多工具算法你以后也会用到。

  • 2. 物理和力学

1) 选几个自己熟悉的物理微分方程,如平衡方程,扩散方程,Maxwell方程,试试把它们变换为弱形式。你会发现所有的这些弱形式都在要求对某种物理量(标量或矢量)的梯度,散度或旋度积分。如果把这些计算组合起来,你就可以求解所有的物理方程,一个伟大的发现,也是有限元软件设计的基础中的基础。另外,你会发现,在你的积分符号下是一个共变张量和一个逆变张量的积构成的一个标量。在力学中我们称为kinematic和dynamic量。这个也不是偶然的,在物理学中,我们正是靠这样的量构造物理系统的Lagrangian或Hamilton。你需要考虑如何实现这一共通的计算过程。

2)熟悉你专攻领域物理方程的本质和细节。这是当然的要求,因为在做软件设计之前,你必须对设计对象有清晰无误的了解。但是另一方面,这也是一个无望达到的目标,因为没有人敢说100%的把握了你的专攻领域。从这个角度来说,有限元开发者更接近与科研人员,而不是IT工程师。一般作应用软件开发的,会基于一个详细的功能式样设计书,而有限元软件的各种说明书大多是在软件开发基本完成后再发布的。其后果是,边开发边修改设计。如此软件质量和开发效率堪忧。

3)尝试一下用插值函数表述某种物理量的梯度,散度或旋度。如果你能做到,你就有开发有限元软件的基本资格了。

  • 3 应用场景

应用场景的选定对软件的功能设计也有影响。但是一般不会涉及根本。

  • 4 软件设计

假设你是C++专家,不存在编程技巧问题。那么我们就可以开始软件设计了。

试一试画出节点,单元,自由度,插值函数等基本有限元部件的类图,组件图等 --> 如果下不了手,请重学有限元的基本课程。之后望下走,考虑如何把刚度阵组合为全刚阵并选定方程组求解器。往上走,你要考虑网格管理功能和数据结构。再望上走,你需要考虑全局算法控制,Newton-Raphson如何实现,时间插分格式如何实现等。最后,你还需要考虑解析定义文件的输入和结果输出。

如果你能Google一下Object-oriented finite element这个关键词,你可以找到不少相关的论文甚至专著。你可以看到各种设计,相似而各不相同。反映着各设计者们的眼光,水准和偏好。

  • 5 硬件相关

涉及各种并行计算功能的导入。这也是必不可少的功能。如此上面的软件设计更将复杂,在此就先飘过了!

干完如上种种,我想你应该就能成为中国大陆最优秀的有限元开发工程师了。GOOD LUCK!

责任编辑:
热门阅读排行
© 16货源网 1064879863