找回密码
 注册
Simdroid-非首页
查看: 1692|回复: 36

[H. 有限元编程] 用C/C++编写有限元程序有没有前途?

[复制链接]
发表于 2012-3-27 16:11:43 | 显示全部楼层 |阅读模式 来自 上海
用C/C++编写有限元程序有没有前途?
发表于 2015-1-13 12:46:07 | 显示全部楼层 来自 上海
Simdroid开发平台
看一下这个blog就知道了
http://blog.sina.com.cn/u/1757579113
回复 1 不支持 0

使用道具 举报

发表于 2012-3-27 17:12:43 | 显示全部楼层 来自 北京
很有前途。
有限元发展到现在,越来越重视系统架构方面的东西。就好像以前的SAP系列都用FORTRAN作,现在比较流行的就是OpenSees了(用C++)的。
但从基本算法/模块实现的角度来说,FORTRAN还是很有优势的。
总之,C++侧重系统架构,FORTRAN侧重功能实现。
现在国内各大软件公司在这方面也都有所投入,楼主加油吧!
回复 不支持

使用道具 举报

 楼主| 发表于 2012-3-27 19:34:06 | 显示全部楼层 来自 上海
penultimate 发表于 2012-3-27 17:12
很有前途。
有限元发展到现在,越来越重视系统架构方面的东西。就好像以前的SAP系列都用FORTRAN作,现在比 ...

谢谢鼓励!总是感觉用C/C++编写有限元程序的不是很多,网上的资料关于fortran的比较多,虽说C/C++的数值计算能力还赶不上fortran这么强大,但是C/C++模块化管理,程序的可重用性,语言的灵活性,效率高的特点也是fortran赶不上的啊,谢谢你,我还是要踏踏实实的学习啊~
回复 不支持

使用道具 举报

发表于 2012-3-28 09:24:46 | 显示全部楼层 来自 浙江杭州
本帖最后由 pasuka 于 2012-3-28 09:25 编辑

lz如果只是为了获得硕士、博士学位,用matlab编程即可,简单容易上手,计算10w自由度的动力、静力问题也没啥大困难
如果将来想找有限元编程的工作,那么Fortran和C++必须都精通,且有限元编程(不是CAE软件二次开发那种)的圈子很小,想跳槽都难
如果是CAE软件二次开发那种有限元编程,Ansys和Abaqus都仅支持Fortran
回复 不支持

使用道具 举报

发表于 2012-3-29 19:08:17 | 显示全部楼层 来自 江苏南京
我周围师兄用ABAQUS进行二次开发都是FORTRAN。
回复 不支持

使用道具 举报

发表于 2012-3-29 21:11:42 | 显示全部楼层 来自 江苏南京
楼主所谓的前途是指什么??  
回复 不支持

使用道具 举报

发表于 2012-3-29 22:11:01 | 显示全部楼层 来自 北京
本帖最后由 penultimate 于 2012-3-29 22:18 编辑
yinghuawd 发表于 2012-3-29 19:08
我周围师兄用ABAQUS进行二次开发都是FORTRAN。


当前流行的有限元分析软件基本上都是FORTRAN的,这和其发展历史有关,参见:http://streda.blog.sohu.com/206794284.html
那个年代,有限元的研究者能够接触到的编程语言只有FORTRAN,所以,ABA才会用FORTRAN作为二次开发的工具。
C++现在逐渐被研究和商业项目采用,根据实际使用情况,当用C++时,按照FORTRAN的数据管理模式进行核心算法实现,其效率和FORTRAN相当。
回复 不支持

使用道具 举报

发表于 2012-4-3 05:08:07 | 显示全部楼层 来自 美国

这是20年前的一篇论文Object-oriented finite element programming: III. An efficient implementation in C+ +

请看结论部分:

6. Conclusions
As pointed out in the Introduction, the concepts of object-oriented programming have proved to
have a rich potential for programming the finite element method. The purpose of this article was to
assess whether C++, the most popular object-oriented language so far, is the adequate tool for
practical finite element programming; it is. Excellent numerical performances are reported with respect
to both forming the system of linear equations (i.e., calculating and assembling every elemental and
nodal contribution) and solving this system.
回复 不支持

使用道具 举报

发表于 2012-4-9 11:59:52 | 显示全部楼层 来自 湖北武汉
nkliuyueming 发表于 2012-4-3 05:08
这是20年前的一篇论文Object-oriented finite element programming: III. An efficient implementation in ...

如果我没有记错的话,阁下的那个开源项目就是用的Java!为何不用C++呢?

另,楼上有人说C++做数值计算的效率赶不上Fortran,不知有何依据?C++赶不上C倒是真的,尽管差别不一定很大,但毕竟还是要比Fortran强吧。
回复 不支持

使用道具 举报

发表于 2012-4-9 23:16:45 | 显示全部楼层 来自 湖南长沙
谢谢大家 收获很多啊
回复 不支持

使用道具 举报

发表于 2012-4-10 10:23:08 | 显示全部楼层 来自 美国
nkliuyueming 发表于 2012-4-3 05:08
这是20年前的一篇论文Object-oriented finite element programming: III. An efficient implementation in ...

除了方程组求解Fortran速度上比较占优势外,其他有限元相关的计算用Java或C++设计具有明显的设计上的优势,因为这些计算量比起方程组求解来说要小很多很多。用Java或C++可以设计出比较好的通用结构。我之所以用Java是因为Java在工业界使用时普遍结论是设计和编程效率要高很多,我想尝试在FEM中代数方程组求解之前的部分用Java来提高编程效率。其实这和很多商业软件做出来很多图像界面一样,设置方程的参数和方程的变分形式,都不是用Fortran写的,只是最后会调用Fortran的核心算法。可以认为我用Java是把这种思想往底层更推进一步,只留下方程组求解用Fortran。当然,小规模问题,我也用Java写了方程组求解器,方便使用。
回复 不支持

使用道具 举报

发表于 2013-1-14 20:19:44 | 显示全部楼层 来自 江西
yinghuawd 发表于 2012-3-29 19:08
我周围师兄用ABAQUS进行二次开发都是FORTRAN。

我也在用FORTRAN 进行有限元二次开发,不知道如何下手,楼主能否请教一下,有没有啥资料,推荐一下,小弟不胜感激啊
回复 不支持

使用道具 举报

发表于 2013-1-16 10:50:29 | 显示全部楼层 来自 山西太原
H没有,已经过时了,vvvvvvvvvv
回复 不支持

使用道具 举报

发表于 2013-1-17 09:02:07 | 显示全部楼层 来自 美国
很难想象一个不会c++的人,能写出很好的fortran程序。
回复 不支持

使用道具 举报

发表于 2013-2-16 11:51:43 | 显示全部楼层 来自 北京
卤煮可以搜一下:国内的PANDA系统,国外的SINDIA系统。的文章
回复 不支持

使用道具 举报

发表于 2013-2-19 21:21:54 | 显示全部楼层 来自 上海
tnt64 发表于 2013-1-17 09:02
很难想象一个不会c++的人,能写出很好的fortran程序。

不赞成你的这个逻辑
回复 不支持

使用道具 举报

发表于 2013-3-2 20:02:51 | 显示全部楼层 来自 黑龙江哈尔滨
本帖最后由 superuirui 于 2013-3-2 20:03 编辑
tnt64 发表于 2013-1-17 09:02
很难想象一个不会c++的人,能写出很好的fortran程序。

这么说在C++出现之前,用FORTRAN写程序的人都很渣了。。。
回复 不支持

使用道具 举报

发表于 2013-3-2 20:56:52 | 显示全部楼层 来自 广东广州
CAE软件还处在国外垄断局面,而且这种状态要持续下去,看不到任何希望,因为CAE软件产业需要多学科协同、大资金前期投入,需要举国之力来做这件事情,但是很遗憾,看不到有任何这方面的规划,即使钟万勰呼吁多年也无济于事。国内小公司从细分功能上做一些程序,成不了什么气候,最多是做大了被收购,那是最好了。
回复 不支持

使用道具 举报

发表于 2013-8-23 05:15:31 | 显示全部楼层 来自 北美地区
国外的大型有限元软件公司起步早,经过多年的积累,又在业内站稳脚跟,新的公司想突破不容易。

另外楼上的说到二次开发,ansys 和abaqus都可以用c++ 和 fortran。
回复 不支持

使用道具 举报

发表于 2014-7-9 10:29:03 | 显示全部楼层 来自 江苏南京
ABAQUS的二次开发也可以用Python吧。。。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-11 22:52 , Processed in 0.045443 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表