找回密码
 注册
楼主: lixl-imech

发布OpenCFD-EC2D; 更新 Ver 1.5.4 ; 三维软件使用协议

  [复制链接]
发表于 2012-5-15 04:33:59 | 显示全部楼层

OPENCFD development

opencfd-sc 是 parallel 的,opencfd-ec 会往 parallel 发展吗?opencfd-sc 是否支持 multiblock和multigrids?

这里有没有opencfd-ec的讨论群啊?
 楼主| 发表于 2012-5-16 10:33:45 | 显示全部楼层
原帖由 entropies 于 2012-5-9 15:14 发表
代码更新地好快,粗略地看了一下笔记部分,感觉如果用LATEX写出来排版就更漂亮了。
LUSGS出来了,GMRES或者 BiCGSTAB应该也会有吧??
代码如果还可以modular一些就更漂亮了!

一步步地见证一个代码的成长总是很 ...

最近一段时间主要放在完善湍流模型上。以后会在加速收敛方面进行改进。后续版本应当会支持GMRES。
 楼主| 发表于 2012-5-16 10:40:10 | 显示全部楼层
原帖由 entropies 于 2012-5-15 04:33 发表
opencfd-sc 是 parallel 的,opencfd-ec 会往 parallel 发展吗?opencfd-sc 是否支持 multiblock和multigrids?

这里有没有opencfd-ec的讨论群啊?


目前opencfd-ec只支持OpenMP并行。 MPI并行版正在开发中。由于多块网格MPI的并行稍显复杂,需要在负载均衡及通信均衡方面做些工作,因而开发得慢一些。
我开发了一个差分-有限体积混合程序opencfd-sec,  相当于opencfd-sc的多块版本。 该程序支持多块网格,在每个块内可选择使用高精度差分法(opencfd-sc求解器)或有限体积法(opencfd-ec求解器)。 为了保证块-块之间的守恒性,块-块边界上的几层网格仍使用有限体积法计算。这是因为块-块连接处不能保证几何量的连续,因而使用高精度差分会有些问题,因而连接处的几层网格使用有限体积法。
差分-有限体积混合程序 opencfd-sec 将在其发展相对成熟后开源。
发表于 2012-5-17 01:41:31 | 显示全部楼层

linux下编译opencfd-ec-2d

我是在linux ubuntu下面编译的,用的是 intel fortran compiler.

serial的感觉没有问题,命令是 ifort -g -O2 -check bounds opencfd_ec_2d_1.4.f90 -o opencfd

但是添加 -openmp 在 ifort 之后就出来问题了, 提示错误如下:

=========================================================================
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(i,j,k,m,alfa,dui,duj,duk,DF)
----------------------------------------------^
sub_LU_SGS2.f90(72): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [K]
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(i,j,k,m,alfa,dui,duj,duk,DF)
----------------------------------------------^
sub_LU_SGS2.f90(72): error #6404: This name does not have a type, and must have an explicit type.   [DUK]
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(i,j,k,m,alfa,dui,duj,duk,DF)
---------------------------------------------------------------^
sub_LU_SGS2.f90(72): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [DUK]
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(i,j,k,m,alfa,dui,duj,duk,DF)
---------------------------------------------------------------^
compilation aborted for opencfd_ec2d_v1.4.f90 (code 1)
=======================================================================

我不懂 openmp, 但是很想学,很想用下看看,这个问题可以解决吗?谢谢
发表于 2012-5-17 01:43:00 | 显示全部楼层

linux 编译 opencfd_ec2d

sub_LU_SGS2.f90 就是 原来的 sub_LU_SGS.f90
发表于 2012-5-17 04:59:49 | 显示全部楼层
OpenCFD-EC2D ver 1.4 的 control.in 里 参数 Iflag_init 似乎应该改成 0, 因为没有提供 flow2d.dat 作为 initialization 的方法。
发表于 2012-5-17 07:31:26 | 显示全部楼层
用LU-SGS solver 解到
Kstep, t=       45870  0.229350000000159
出现了
T <0.1 !          162          13           2 -6.408313519526655E-002

大家是不是都是这样啊?
发表于 2012-5-17 07:38:40 | 显示全部楼层

Cp tecplot

出现 T<0.1 后的 Cp 图如附件所示,感觉 X = 0.5 处与手册里不太一样。
Cp.png
 楼主| 发表于 2012-5-17 08:20:32 | 显示全部楼层
原帖由 entropies 于 2012-5-17 01:41 发表
我是在linux ubuntu下面编译的,用的是 intel fortran compiler.

serial的感觉没有问题,命令是 ifort -g -O2 -check bounds opencfd_ec_2d_1.4.f90 -o opencfd

但是添加 -openmp 在 ifort 之后就出来问题了,  ...


2维程序的openmp版本没有经过太多调试。也许还有些Bug, 请先用串行编译。 另外,RAE2822的计算结果也是在Visual Fortran编译器下计算的结果。 没有使用ifort编译器测试过。 我再测试一下试试,看看程序里面是否有Bug.
发表于 2012-5-17 08:32:06 | 显示全部楼层

openmp parallel

我才开始看openmp
是不是要加上一个 use omp_lib ?
发表于 2012-5-17 09:25:46 | 显示全部楼层
另一个问题,文件夹中read_flow-1.1.opt是用来干什么的啊?
发表于 2012-5-17 12:18:59 | 显示全部楼层
很奇怪,晚上在另外一台计算机上算,结果算到了
Kstep, t=      108710  0.543549999999327
然后终于出现:
T <0.1 !          166          16           2  -9.67460523885322

(T<0.1 应该是nondimensional temperature小与设定limit了吧?)
发表于 2012-5-18 00:43:29 | 显示全部楼层

linux 编译 opencfd_ec2d (v1.4)

在linux上用ifort编译opencfd_ec2d:

1. 如果想用openmp的话,必须在主程序open_ec2d_v1.4.f90在use Global_Var下加入 use omp_lib;

2. 要更改 ~/.bashrc,加入:
export LD_LIBRARY_PATH=<absolute path to libiomp5.so>

这样编译就没有问题了
发表于 2012-5-18 12:04:13 | 显示全部楼层
突然发现在linux上 即便是编译通过了, openmp还是不能work. PS: 我已经去掉了 sub_LUSGS里的 k, DUK

。。。神人帮助啊
发表于 2012-5-18 12:14:03 | 显示全部楼层

回复 140# lixl-imech 的帖子

李老师, 是不是opencfd-ec2d-1.4 之前的版本不支持 openmp啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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