2011-08-31 583 views
1

okey,这不是一个核心编程问题;它更像是一个关于cgns(CFD通用符号系统)API的问题。无法打开一个cgns文件

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

所以,当我使用与提到的小脑颗粒神经gfortran编译和运行我得到这个错误的程序(如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库(版本2.5.5打包在Fedora 15和Scientific linux 6.1中)仅支持HDF5,而导出的网格文件是以ADF格式编写的。

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

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

+0

你必须给我你在粘贴bin站点得到的链接,以便我看到你留在那里的文件。 – Rook

回答

0

有这么多可能已经走了错在这里了,我怕你没有完全缩小问题了。

你说你从出口流利的文件(一个什么样的文件是什么?请务必!)。 cg_error_exit_f()给你列出了一个错误。我假设你有上述例程的来源?在程序中你包含一个cgnslib_f.h文件 - 里面包含了什么?我假设编译的程序没有任何错误,这是一个文件格式问题,而不是一个Fortran问题。

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

+0

是啊这是一个文件格式问题,特别是cgns API问题(更具体到2.5.5版本),是的,因为我提到的文件Cavity.cgns正在验证,因为我能够形象化网格(在计算力学的离散化问题感兴趣的领域)更多关于cgns这里[链接](http://cgns.sourceforge.net/)和这里[链接](http://en.wikipedia.org/wiki/CGNS),是的编译去了没有任何问题,我形成了可执行文件并运行它。 – fedvasu

+0

包含的头文件cgnslib_f.h包含函数和子例程以及一些数据,这些数据提供了一种以cgns格式读取和写入数据的方式(实际上是它的API),我很确定从Fluent我将这个文件导出为.cgns (标准扩展名) – fedvasu

+0

@Vasu - Okey,让我们来看看它有什么问题。因为我认为你有权访问cg_error_exit_f()正在做什么,你可以尝试找到上面提到的行(“ADF_database_open ...”“东西),并检查它看看有什么抱怨?如果你想要你可以将这部分代码粘贴到一些粘贴网站或在这里介绍它,我会尽力弄清楚我能做什么 – Rook

0

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

他们在小脑颗粒神经变频包在Ubuntu和可能是适用于您的分布以及。