1

好吧,这不是核心编程问题;这更多的是关于 cgns(CFD 通用符号系统)API 的问题。

我已经从 ANSYS Fluent(最初在 Gambit 2.46 中创建)导出了一个网格/网格文件,并且我编写了一个非常简单的 Fortran 程序来打开和关闭它(什么都不做)。为了检查文件没有损坏,我在 Tecplot 中绘制了它。

所以,当我使用 gfortran 和提到的 cgns 编译并运行程序时,我得到了这个错误(作为 cg_error_exit_f() 的一部分)

ADF_Database_Open:文件不存在或不是 HDF5 文件

这是程序

program cavity
include "/usr/include/cgnslib_f.h"
call cg_open_f("Cavity.cgns",CG_MODE_READ,index_file,ier)
!check for error if so exit
if (ier .ne. CG_OK) then
call cg_error_exit_f()
end if
write(*,*)"I kind of opened the file?"
call cg_close_f(index_file,ier)
stop
end program cavity

我能够以 cgns 格式编写结构化和非结构化网格,没有任何问题。

我怀疑我正在使用的 cgns 库(版本 2.5.5 打包在 Fedora 15 和 Scientific linux 6.1 中)仅支持 HDF5,而导出的网格文件是以 ADF 格式编写的。

有什么想法可以规避这个或添加 ADF?顺便说一句,这两个发行版中都没有打包。任何其他与 cgns 版本 2.5.5 兼容的网格生成器?

我希望我很清楚。需要任何进一步的信息,我会提供。

4

2 回答 2

0

当我遇到这种情况时,我发现了以下工具: hdf2adf adf2hdf

它们位于 Ubuntu 上的 cgns-convert 包中,并且可能也可用于您的发行版。

于 2013-07-04T18:59:55.980 回答
0

这里有很多可能出错的地方,恐怕你没有完全缩小问题的范围。

您说您从 Fluent 导出了一个文件(它是什么类型的文件?一定要!)。cg_error_exit_f()列出了一个错误。我假设您有上述例程的来源?在程序中包含一个 cgnslib_f.h 文件——里面有什么?我假设编译的程序没有任何类型的错误,这是一个文件格式问题,而不是一个 fortran 问题。

再次验证 Fluent 生成的文件类型。

于 2011-08-31T12:56:28.573 回答