找回密码
 注册
查看: 6170|回复: 5

CFD工程(二)

[复制链接]
发表于 2004-3-14 22:57:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[这个贴子最后由赵玉心在 2004/03/14 11:05pm 第 2 次编辑]

经过对CGNS的深入了解,本人有如下拙见,肯定大家提意见:
1.CGNS作为CFD文件的组织协议目前完全免费公开,鉴于我们的实力目前较弱,暂时完全依靠CGNS平台进行文件组织和传输。
2.目前或近期将支持CGNS的前后处理器包括:ICEM CFD、Gridgen、Tecplot、FieldView、CEi Ensight、AVS Express等。在傲雪论坛,Supersonic兄认为CFD的前处理过于复杂暂时不应该考虑,我也觉得确实如此。因此我们目前应该以Gridgen和ICEM CFD为基础进行网格划分,然后集中突破CFD求解的障碍。
3.在CFD求解方面,不可压缩流动主要是Simple的一系列算法,该算法可以扩充到Ma数小于二的情况,具体的对流项和耗散项如何进行离散有很多方法。目前说来我对这些基于压力校正的算法了解并不多,因此非常需要对于水力学和低速空气动力学研究较为透彻的兄弟加盟。当然如果人手不够,我可以考虑自己多看看书。
4.可压缩流动算法相对较多,最基本的对流项差分格式包括迎风格式、MacComack格式、NND格式、ENO格式、WENO格式、紧致格式以及时空守恒格式等。为了一步一个脚印地走好并积累经验,我的计划是从一阶迎风格式开始进行。同时时间方向采用最简单的多步Runge-Kutta法。
5.有限差分和有限体积两种方法有一定的差别,就编程来看,有限差分相对容易但灵活性不好,有限体积则反之,大家看看怎么处理较好?
6.其实要使求解器通用,最重要的一个方面就是要它能够处理复杂的拓扑结构,这一方面还请大家多多思考,并请大牛们光临指导。
发表于 2004-3-15 14:00:20 | 显示全部楼层

CFD工程(二)

[这个贴子最后由supersonic在 2004/03/15 02:45pm 第 4 次编辑]

    俺的意见:
        主要采用C++,实现一套模板类。AMROC的结构,在我看来还是很不错的。
    所以我想
1.网格(几何属性等)、网格操作(网格的细化和粗化、网格之间的区域布尔运算……),网格包含的求解数据及其操作类模板(网格之间的数据交换、通信、限制与插值,网格的物理外边界和计算内边界处理……)。复杂拓扑结构完全是这一部分的任务。
2.针对单块网格的"一步"积分器以及相关操作的类(初始条件、边界条件、残差光顺、守恒性修正、细化点标记、求解变量修正、辅助变量的计算、各种线性方程组解法、各种格式的通量计算、各种限制器……)。这个单步积分器和整套网格的拓扑无关,它仅仅是一块结构网格的积分器。所以便于各种算法的添加和修改。而且,这样以来,差分法和有限体积法的差别就不大了。
3.求解器类。包含求解器类(属于一个顶层组合类,将网格、数据、"一步"积分器等等组合起来,实现一个整套网格上一个时间步长的推进)、求解控制类……
4.CGNS封装(CGNS输入输出、访问、修改)以及辅助类(如格式转化)。
5.辅助类。包含结果的输入输出、外部求解控制参数的透明化输入(指不依赖设备)、STL……
   
    分类1和分类2之间由网格包含的求解数据类耦合
    分类2组合成为分类3的求解器类
    分类1、2、3以分类4为总线
   

    各模板类中对计算要求高的函数可以采用fortran90、C或者不包含抽象数据操作的C++实现。
   
   
开发平台是个有点头疼的问题。俺希望这个东西是跨平台的。本来UNIX/Linux是首选,资源丰富,效率高。但是国内条件有限,不少单位还在用M$ Windows。但是偶目前好像还没听说M$ Windows上有比较好的C/C++/F90全套解决方案。Visual Studio那套做混编还是很麻烦,而且MS的NMake和UNIX的Make不兼容;PGI for WIN32居然不包含C++;GNU还没有实现f90。也许只能用GNU的C++和fortran77的。
        此外,我还是希望先化功夫分析一下Overture这个东西。
发表于 2004-3-15 20:18:39 | 显示全部楼层

CFD工程(二)

“AMROC的结构”“ 网格之间的区域布尔运算”,偶不是很明白,能解释一下吗,另外偶觉得结构、非结构现在问题不大了,笛卡儿在近壁的处理还不是很明白。能否讨论一下。
发表于 2004-3-28 20:19:23 | 显示全部楼层

CFD工程(二)

希望跨平台的话,为什么不用java来实现?
发表于 2005-6-3 23:21:17 | 显示全部楼层

CFD工程(二)


gcc4
gfortran 也可用了
也有第三方free
f95
发表于 2005-6-9 09:33:17 | 显示全部楼层

CFD工程(二)

关于
  5.有限差分和有限体积两种方法有一定的差别,就编程来看,有限差分相对容易但灵活性不好,有限体积则反之,大家看看怎么处理较好
  我认为有限体积格式求解器的开发,按supersonic兄讲的,可以进行规范化的尝试,时间推进一步(或者Runge-kutta推进)都是可以的,关键问题可能还是对有限体积格式进行细分,然后分类来编程,并最终将每个类封装起来,安用户的指令进行计算!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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