2011-08-31 42 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和可能是適用於您的分佈以及。