Gerris
原作者 | Stéphane Popinet, NIWA (National Institute of Water and Atmospheric research), Institut Jean le Rond d'Alembert |
---|---|
當前版本 | 20090721 (1.3)(2009年7月21日 | )
預覽版本 | 20120326(2012年3月26日) |
編程語言 | C |
操作系統 | Unix-like, Mac OS X, Microsoft Windows(通過cygwin) |
平台 | 32位/64位 |
語言 | 英文 |
類型 | 計算流體力學 |
許可協議 | GNU通用公共許可證 |
網站 | http://gfs.sourceforge.net/ |
Gerris 是一個跨平台的計算流體力學軟件, 並且是遵守GNU通用公共許可證的自由軟件. 創建者是 Stéphane Popinet, 由 NIWA (National Institute of Water and Atmospheric research) 和 Institut Jean le Rond d'Alembert 進行維護. "Gerris" 是拉丁文(以及法文)中水黽的意思. [1]
歷史
2001年, Stéphane Popinet 從零開始編寫 Gerris. 第一個版本以 GNU通用公共許可證 於 2001 年 9 月發布. Gerris 是原創項目, 不是任何已有代碼的改編版. [2] 最近一個穩定版是 2009-07-21 發布的. Gerris 常以發布日期標註(特別是開發中的)版本, 雖然也有正規的版本號.
嚴格的說 Gerris 指的僅僅是一個命令行界面的非交互式程序. 該程序依據給定的模擬文件讀入各種模擬要用到的參數和物件, 並依據模擬文件的指示輸出數據(可以是指定位置的物理量也可以是圖形).
但通常提到 Gerris 的時候專門配合使用的計算結果查看器 GfsView 也會算在內. Gerris 計算時會自動生成離散八叉樹(octree)形式的網格數據結構, 而一般的可視化軟件沒法處理這種結構, 故作者自己開發了 GfsView 來實現這一功能.
雖說是跨平台軟件, 但在Windows平台需要使用cygwin進行編譯.
主要功能
- 可計算 2D 或 3D 不可壓無粘/有粘流體.
- 可在計算上述流體的同時求解對流擴散問題.
- 支持固定邊界和運動邊界的計算.
- 支持自由邊界以及表面張力的計算.
- 流體中放置的物件可由其他 CAD 軟件(如 Blender [3]) 製作好後放入. 對於簡單的幾何體 Gerris 也提供了內置的模型供使用.
- 全自動打網格(方形(2D)/立方體(3D)網格), 並且支持自適應網格. 疏密程度以及自適應判據可由用戶指定.(GfsAdapt)
- 可直接輸出視頻文件(需要 FFmpeg 的支持).
- 支持平行計算
計算精度
- 在計算無粘流體時由於計算格式的數值粘性, 結果與理論無粘流會有些差別. 網格剖分加細6次時, 等價的雷諾數大致是 104 ~ 106. 該粘性會隨網格精細程度的提高而相應減小(雷諾數升高).[4]
- 時間和空間都有二階精度 [5].
缺點
示例文件
參見教程 [7]
文件 vorticity.gfs:
# 空间由两个单位立方体组成 1 2 GfsSimulation GfsBox GfsGEdge {} { # 模拟时间从 t=0 到 50 GfsTime { end = 50 } # 网格剖分加细 6 次, 即是平面分成 2^6 * 2^6 个网格. GfsRefine 6 # 流场的初态由随机数指定 GfsInit {} { U = (0.5 - rand()/(double)RAND_MAX) V = (0.5 - rand()/(double)RAND_MAX) } # 每计算10步在屏幕上输出一次时间, 以及计算误差相关的信息 GfsOutputTime { istep = 10 } stdout GfsOutputProjectionStats { istep = 10 } stdout # 每过 1 单位时间, 添加一帧涡量的 ppm 格式的图像到 vorticity.ppm GfsOutputPPM { step = 1 } vorticity.ppm { v = Vorticity } } # 两个单位立方体的连接关系 GfsBox {} 1 1 right 1 1 top
開始計算
gerris2D vorticity.gfs
計算完後當前文件夾下將生成一個 .ppm 文件, 保存有各時刻的渦量大小(以顏色表示)的圖像.
如在 Linux 下, 可以使用以下命令轉化圖像序列為視頻(需要安裝 ImageMagick)
convert vorticity.ppm vorticity.mpg
也可修改模擬文件使其直接輸出 .mpg 文件.
參見
外部連結
參考文獻
- ^ Gerris FAQ. Gerris Development Team. http://gfs.sourceforge.net/. 2012-04-16 [2012-04-16]. (原始內容存檔於2018-06-12).
- ^ FAQ:Where does Gerris come from?. Gerris Development Team. http://gfs.sourceforge.net/. [2012-06-14]. (原始內容存檔於2018-06-12).
- ^ Using Blender to create solids for Gerris. Gerris Development Team. http://gfs.sourceforge.net/. 2012-04-16 [2012-04-16]. (原始內容存檔於2018-03-20).
- ^ Estimation of the numerical viscosity. Gerris Development Team. http://gfs.sourceforge.net/. 2012-04-16 [2012-04-16]. (原始內容存檔於2020-02-20).
- ^ Quadtree-adaptive tsunami modelling (PDF). Gerris Development Team. http://gfs.sourceforge.net/. 2012-04-16 [2012-04-16]. (原始內容存檔 (PDF)於2017-08-11).
- ^ How would I redimensionalise U,V,W and P?. Gerris Development Team. http://gfs.sourceforge.net/. 2012-04-17 [2012-04-17]. (原始內容存檔於2018-06-12).
- ^ The Gerris Tutorial. Gerris Development Team. http://gfs.sourceforge.net/. 2011-03-23 [2012-04-16]. (原始內容存檔於2018-04-27).