主题:大家有兴趣一起编一个大程序吗
chengw1976
[专家分:130] 发布于 2012-06-12 11:38:00
想集中论坛的高手一起写一个水利和环境方面的数值模型,主要就是解纳维-斯托克斯方程,和对流-扩散方程(有非线性项),主要的程序已经有了,用FEM和拉格朗日法解纳维-斯托克斯方程,FEM以及FEM-拉格朗日混合法解对流-扩散方程。主要的工作是完善现有的程序,将fortran 77语法改用新的语法,增加前后处理界面(可混合编程),最后将其并行化。如果可能,想依托论坛形成一个松散但是有效的开发团队,将来长期合作。这方面国内科研上做的比较零散,没有形成综合模型,如果我们能做成,计划免费使用,国内的水利和环保方面的模拟人员可以不用再使用盗版国外软件了。报酬方面大家可以提出各自的想法,尽量满足。
有兴趣的同学请回帖、或者站内短信联系。谢谢!
回复列表 (共11个回复)
沙发
pasuka [专家分:670] 发布于 2012-06-12 13:06:00
Fortran77的代码改不改无所谓,照样可以用的
前后处理的话,说容易也容易,说难也难,要求不高的话,网上源代码的基础上改改,花不了几个钱
并行化倒是难点
又,lz的预算是多少?如果肯给20w年薪的话,凑2、3人搭个班子,利用现有开源代码,1年到一年半时间也差不多了,但是商业前景堪忧,除非像PKPM那种垄断性质的软件
板凳
chengw1976 [专家分:130] 发布于 2012-06-12 13:34:00
多谢pasuka兄的指点,这个程序是我读书时在师兄师姐们工作的基础上写的,基本成形了,功能上比较全,但是bug也不少,最难的就是没有界面,对使用者要求太高,另外主要是针对流域的计算,比如黄河流域或者北京市等这些大范围的,模型是基于第一律物理机理,因此计算量大。所以想把老语法作些改动,至少得把固定数组改成动态,另外就是并行化。我是做科研的,主要是有这个情结,想把导师半生的心血以及我的5年时间的成果做成一个大家可以用的产品,商业化将来视情况看,目前的想法是将来把exe文件免费公布,大家一起用,在科研和工程上提供工具和形成影响。预算方面,根据合作人的工资要求看。我自己经费有限,但是一定会筹到足够的经费来在大家帮助下完成这项事业。
3 楼
臭石头雪球 [专家分:23030] 发布于 2012-06-12 13:35:00
***
4 楼
chengw1976 [专家分:130] 发布于 2012-06-12 13:39:00
是,一下子没有隐私了,晚点儿给你打电话请教。
5 楼
pasuka [专家分:670] 发布于 2012-06-12 13:49:00
[quote]多谢pasuka兄的指点,这个程序是我读书时在师兄师姐们工作的基础上写的,基本成形了,功能上比较全,但是bug也不少,最难的就是没有界面,对使用者要求太高,另外主要是针对流域的计算,比如黄河流域或者北京市等这些大范围的,模型是基于第一律物理机理,因此计算量大。所以想把老语法作些改动,至少得把固定数组改成动态,另外就是并行化。我是做科研的,主要是有这个情结,想把导师半生的心血以及我的5年时间的成果做成一个大家可以用的产品,商业化将来视情况看,目前的想法是将来把exe文件免费公布,大家一起用,在科研和工程上提供工具和形成影响。预算方面,根据合作人的工资要求看。我自己经费有限,但是一定会筹到足够的经费来在大家帮助下完成这项事业。
[/quote]
经费有限的话,调研和收集材料更显得重要了,有限元数值方面的开源代码很多,不妨在仔细找找看有没有合适的成熟代码可以参考的。另外,并行化也要有的放矢,有些时候求解线性方程组是程序热点,那么直接调用PARDISO这类已经并行化的求解器说不定可以事半功倍。
前后处理的话,后处理若只是云图、等值线显示的话,并不复杂,前处理是难点,若有三维几何建模、三维网格划分等内容。不妨先搞定后处理
6 楼
chengw1976 [专家分:130] 发布于 2012-06-12 13:59:00
pasuka兄所言极是,串行版程序已经完成杂,只是有一些细节小问题需要改进。并行和前后处理都有挑战,以前想我一个人做,后来发现我可能更多地需要解决经费问题,否则可能会花很长时间才能做完。经费方面我有信心解决,不会让帮忙的人在经济上吃亏,这方面完全按照市场规则来。
[/quote]
经费有限的话,调研和收集材料更显得重要了,有限元数值方面的开源代码很多,不妨在仔细找找看有没有合适的成熟代码可以参考的。另外,并行化也要有的放矢,有些时候求解线性方程组是程序热点,那么直接调用PARDISO这类已经并行化的求解器说不定可以事半功倍。
前后处理的话,后处理若只是云图、等值线显示的话,并不复杂,前处理是难点,若有三维几何建模、三维网格划分等内容。不妨先搞定后处理[/quote]
7 楼
pasuka [专家分:670] 发布于 2012-06-12 14:07:00
单独一个后处理的话,找人开发,5-10w肯定够用了,若仅仅只是导入数据,显示网格、云图、等值线、动画、导出成其它软件的数据格式、生成计算报告这些功能的话,国内小公司搞这类代码的不少
有限元数值计算就不好说了,倘若放弃商业化,仅仅从科研、教学出发,甚至可以考虑写一个Matlab版本的,matlab现在也支持并行计算、分布式计算,内存不够的话,装64位版本的,求解器什么的都是优化好的,做界面也方便,找1、2个研究生,用matlab/Fortran混合编程或纯粹matlab编程,等到他们毕业差不多也能够搞定了
8 楼
chengw1976 [专家分:130] 发布于 2012-06-12 14:28:00
还是想开发一个比较理想的模拟器,能够在工程中得到应用。
9 楼
dongyuanxun [专家分:7180] 发布于 2012-06-12 19:46:00
核心算法应该留出外部依赖的第三方库接口
推荐传统形式的blas和lapack导出
这样可以在矩阵操作进行优化选择,也较易维护(也不依赖编译器的性能)
并行可以以后再说,重要的是串行的实现(外部blas/lapack亦可以选择并行库)
并行可以作为另一个分支考虑,也得考虑所做的代码是不是商业运作,用现成的库和代码的授权问题。
并行有诸多的问题考虑,需要分析整体确立目标。
前后处理有了数据都不是难点,关键是实现的性能和精度如何。
10 楼
weixing1531 [专家分:2580] 发布于 2012-06-13 00:01:00
读研时 自己编了一套基于同位网格一般曲线坐标系下平面二维的水流计算程序
工作后 发现这些东西都没用
要计算 也用fluent算
我来回复