热门问题
时间线
聊天
视角
Gerris
来自维基百科,自由的百科全书
Remove ads
Gerris 是一個跨平台的計算流體力學軟件, 並且是遵守GNU通用公共許可證的自由軟件. 創建者是 Stéphane Popinet, 由 NIWA (National Institute of Water and Atmospheric research) 和 Institut Jean le Rond d'Alembert 進行維護. "Gerris" 是拉丁文(以及法文)中水黽的意思. [1]
Remove ads
歷史
2001年, Stéphane Popinet 從零開始編寫 Gerris. 第一個版本以 GNU通用公共許可證 於 2001 年 9 月發布. Gerris 是原創項目, 不是任何已有代碼的改編版. [2] 最近一個穩定版是 2009-07-21 發布的. Gerris 常以發布日期標註(特別是開發中的)版本, 雖然也有正規的版本號.
嚴格的說 Gerris 指的僅僅是一個命令行界面的非交互式程序. 該程序依據給定的模擬文件讀入各種模擬要用到的參數和物件, 並依據模擬文件的指示輸出數據(可以是指定位置的物理量也可以是圖形).
但通常提到 Gerris 的時候專門配合使用的計算結果查看器 GfsView 也會算在內. Gerris 計算時會自動生成離散八叉樹(octree)形式的網格數據結構, 而一般的可視化軟件沒法處理這種結構, 故作者自己開發了 GfsView 來實現這一功能.
雖說是跨平台軟件, 但在Windows平台需要使用cygwin進行編譯.
Remove ads
主要功能
計算精度
缺點
- 不支持可壓流體的計算----適用範圍較小.
- 僅支持立方形的網格.
- 全程序使用無量綱化的物理量, 單位轉換不夠方便[6].
示例文件
參見教程 [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 文件.
Remove ads
參見
外部連結
參考文獻
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads