版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、開源計算力學軟件開源計算力學軟件OpenFOAM講座講座OpenFOAM的結構和能力的結構和能力南京工業(yè)大學城市建設與安全工程學院OpenFOAM研討小組研討小組QQ群號碼:127471850殷亮2010.12.18于南京本講稿的內容參考了Hrvoje Jasak的演講內容,版權OpenFOAM研討小組,遵守GPL協(xié)議,歸可自由的復制和拷貝。1、OpenFOAM介紹 OpenFOAM:面向對象的計算力學數值模擬庫 對偏微分方程算子實施有限體積離散(積分形式) 故最多處理二階方程(傳遞方程適用) 使用非結構化網格(但精度與網格相關性較大) 以類封裝的形式提供離散和數值算法(最大優(yōu)點) 有效的進行
2、大規(guī)模并行化計算,并且在很多平臺可以移植和調試(底層并行化實施) 同時提供: 自動網格運動 網格拓撲改變:體單元的層化,滑動界面(ggi)及其它 拉格朗日粒子追蹤及噴射 有限元離散及有限面積離散(ext版本) 工具類庫:ODE求解器、熱物理屬性、CHEMKIN界面OpenFOAM是什么是什么1.1、OpenFOAM歷史 上世紀90年代掀起的C+及面向對象編程(主要解決軟件危機) OpenFOAM與英國帝國大學Gosman 的小組和熱流體分部相關聯(lián)(Spalding、帕帕坦卡S.V.Patankar的研究相關,PHOENICS與STAR-CD-非結構網格) 初始類來自于Charlie Hill
3、(1993)的博士論文 數值工作來自于1993年Henry Weller和Hrvoje Jasak(兩個版本)1、 OpenFOAM背景2開發(fā)與應用 OpenFOAM 的的PhD項目包括:數值分析、誤差估計、網格自適應、RANS、LES湍流模型、自由液面、多相流等等 材料力學:非線性結構分析(如何分量解耦)、接觸彈塑性、流固耦合 在Chalmers大學的Diesel噴射模型 瑞士軍方應用(水動力) 多所大學貢獻:Imperial College: Poly Milano, Chalmers University, University of Zagreb, Croatia, Universit
4、y College Dublin, Kings College London等 在cfd-online上其活躍程度與FLUENT相當3、版本發(fā)展 在2000年,F(xiàn)OAM作為Nabla公司的商業(yè)版本 與Fluent公司進行策略合作:為下一代CFD軟件進行軟件設計( Hrvoje Jasak) 自2002年提供了大學免費版本 滿足復雜要求的高端客戶 在2004年10月提供公共域版本支持4、 OpenFOAM和C+ OpenFOAM基于堅實而徹底的C+開發(fā) OpenFOAM實施要早于C+的穩(wěn)定版本的推出,故其并未用標準庫,但其類庫也隨語言而進化 其核心代碼不斷的重寫或提煉:清除冗余代碼、使用新的語言
5、知識和程序理念 其代表了在面向對象、模塊化、代碼重用方面的經典案例,值得研讀。5、 OpenFOAM完成了以下的創(chuàng)新 多面體網格支持 新的自由液面算法 Halo-free并行化(無ghost) 自動多面體(任意)網格求解器 新方法進行拓撲網格變化 通過實時選擇表進行用戶定制1.2設計理念 用戶修改要預先定義 模型與模型作用的矩陣過于復雜 難于開發(fā)、維護及支持 缺少支持層:不同相關性的代碼混合在一起難以區(qū)分 開發(fā)與維護需要大的團隊 即使小的改變也需要專業(yè)的知識 化很長時間才能變得專業(yè) 封閉的框架,對用戶而言存在代碼重用性問題 單一的開發(fā)使得需要單一的測試1曾經主流的設計特點 有利于新模型的實現(xiàn)
6、無介入的分層開發(fā) 便利的代碼重用及模塊化 能應用于超出流體流動的更多應用 在不改變已有組件的條件下實現(xiàn)代碼的開發(fā)和定制化 如下例2、新的理念軟件中方程的表達為 solve ( fvm:ddt(k) + fvm:div(phi, k) - fvm:laplacian(nu() + nut, k) = nut*magSqr(symm(fvc:grad(U) - fvm:Sp(epsilon/k, k) );3、分層實現(xiàn) 軟件中不同的功能層 張量代數 場代數 場的映射和差分 不同類型的離散 有限體積方法 有限元 網格處理、網格運動、拓撲改變 差分格式 拉格朗日追蹤 邊界條件定制化 線性方程組求解技術
7、 分離的物理模型 應用程序的定制 流體流動、傳熱 燃燒、湍流、噴射 電磁學 其它 模型組合:流固耦合 各層可以獨立開發(fā),同時又相互依賴。4、用戶考慮因素 功能能交換,考慮使用同一界面,使用實時選擇表 功能塊可選 用戶定制:線性方程求解、梯度計算、對流差分格式 開源高層代碼共享 自動優(yōu)化:內存和執(zhí)行分支1.3、使用 面向問題的求解器框架 通用的CFD軟件包不可能預先知道并滿足求解器需求 不能寫出完全通用的求解器 取而代之的是數值庫及實施代碼重用 通過重用提供基本工具直至需求滿足 如果重用很難,繼續(xù)分解代碼,并重寫代碼 伴隨著高層應用的工具開發(fā) 求解器的編寫及優(yōu)化 所有這些,使得要檢查建立求解器必
8、要的部件,再檢查能否用在其它處(重用性)。2、主要的對象及相互關系 從面向對象的觀點,在于識別對和它們所需提供的功能。2.1 元類及容器類其封裝了label,scalar,bool,string,complex1、元類2、容器類(內存管理問題) OpenFOAM寫在STL之前,所以有自己的容器類 容器類對代碼的優(yōu)化相當重要,需要緊密的控制 所有的容器類都以內容類型作為模板具體實現(xiàn) Lists:數組容器 List:提供序列存儲的容器,類似于數組,為數值求解的主要容器,將其視為對單一內存的封裝 SubList:對List的片段抽取(基于效率考慮) DynamicList: 具有動態(tài)長度的List
9、Linked List:動態(tài)數組 SLList:單鏈 DLList:雙鏈 Hash Tables HashTable HashSet:無內容 指針物體的容器: List被創(chuàng)建時,默認為無參構造函數,但有些對象沒有無參構造,或不能被拷貝,則要使用指針列代替對指針列需要附帶操作:哪一個元素已經被設置了在列的構析函數執(zhí)行中,誰負責刪除指針PtrList存儲指針的容器 字典(Dictionary)處理數據的輸入和輸出關鍵字-值對的嵌入次序無關,用分號隔開允許嵌入表:表的表 處理數據的輸入和輸出Ioobject封裝了隱式對象注冊管理(樹形結構)所有的物體都應該從一個文件讀或寫IOobject由名字、類名
10、、路徑、對注冊對象objectRegistry的應用、決定儲存狀態(tài)的參數來創(chuàng)建:MUST_READ、READ_IF_PRESENT、NO_READ 、AUTO_WRITE、 NO_WRITE objectRegistry管理者讀寫請求2.2、空間和時間的描述 1空間的描述 空間為基本的計算網格。其主旨為網格獨立于離散,應該滿足合法的網格需求網格元 點 邊(兩點) 面(點列) 體(面列) 提供體網格的識別,主要可以實現(xiàn)網格轉化及后處理多面體網格 點列 面列 體列 邊界網格(元面網格列) 要保證有序 元網格和元面網格 此兩類提供了網格特拓撲和幾何信息 幾何 體中心 面中心 體體積 面面積 邊界長
11、拓撲信息 圍繞體的面 體-體 點-面 支持網格運動,拓撲改變2時間描述 控制時間和迭代次數 控制數據庫讀寫 Time類為頂層類 時間記錄 起始時間 結束時間 時間步長 CPU時間 經歷時間 處理物體注冊功能 I/O注冊 Root和case路徑 讀寫控制、格式及精度2.3、張量運算1、張量基礎 矢量和張量的運算 采用笛卡爾坐標描述 采用自動的擴展到n階的張量運算,三維, 現(xiàn)為二階 使用模板2、實施 模板的使用,可以拓展到complex VectorSpace解決通用性 類型的自動演繹(typname功能) 運算符重載 分量采用枚舉類,不用列舉多個函數名 包含維數和階數信息2.4 場及場的代數1.
12、 場對象張量列+運算的再實施場的場2.邊界條件:面網格場 不光是數,包含了行為信息,如本值和梯度值 實時讀取 虛界面虛函數界面繼承與面網格場類可定制與特性和功能相關,與并行3.單位 單位一致可運算 單位檢查 自動單位運算(嵌于場)4、幾何場必要條件 值和邊界條件 網格 值在幾何下的關系 內部場和邊界場分離如此 對mesh的引用 內場 邊界場-場的場:含邊界幾何、訪問內場、邊界條件由于面場為離散服務,模板處理不同類型單位幾何場為一完整的獨立單元 為其注冊入數據庫 繼承于IOobject,讀寫處理3、矩陣支持lduMatrix類 矢量稀疏矩陣 對角線,上三角和下三角分別存儲 lduAddressi
13、ng類地址索引1、稀疏矩陣具有基本的矩陣代數 M+M S*M 低松弛因子 矩陣矢量乘矩陣結構的識別和求解器的選擇 只有對角線 對稱性矩陣 非對稱性矩陣2、線性方程求解器 繼承于lduMatrix:solver 實施了迭代求解器ICCGBi-CGAMG 通過C指針優(yōu)化 并行化通過lduCoupledInterface類,升級矩陣矢量乘3、有限體積矩陣 對矢量和張量采用分離求解 儲存b 處理邊界條件 實施FV相關的操作 H()4、偏微分方程表達高層機制 網格代表空間 時間代表進展和迭代 帶有單位和邊界條件的幾何場 微積分類 矩陣支持、儲存及吸收處理 線性方程求解器 方法類,轉化算子為矩陣處理方程 方程離散現(xiàn)在能通過算子的復合操作 最終體現(xiàn)為對矩陣的貢獻 單位檢查,單元離散,網格支持,并行化都在底層完成,與方程看似無關 離散受表控制 如此,其能解決一大類計算力學問題。5、物理模型 當前的機理足夠寫出復雜的物理模型 但不方便,如湍流模型等使流動求解器復雜化 模型可實時選擇 不是寫大通用的湍流問題可執(zhí)行程序 而是要分裝這些模型1、方程表達2、物理模型相互作用數值模擬軟件的復雜性多數在于模型與模型的相互作用如:動量方程和湍流模型 動量方程需要雷諾應力和湍流粘度 湍流方程需要速度場合應力信息 湍流不同,結果不同 還有如非牛頓粘性模型,矩陣的相互作用等3、模型庫 將同
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人綜合授信貸款合同范文
- 個人房屋租賃合同樣本范本
- 個人房產轉讓合同樣本修訂版
- 中小學教師工資集體合同范本
- 業(yè)務員委托合同范本
- 個人小額信貸合同樣本
- 個人設備租賃標準合同
- 個人車輛保險合同標準模板
- 個人友情借款合同樣本
- 個人合伙投資合同格式范本
- 2025年廣西教育出版社有限公司招聘筆試參考題庫含答案解析
- 中醫(yī)膏方臨床應用與制備工藝規(guī)范 DB32/T 4870-2024
- JJG(交通) 208-2024 車貨外廓尺寸動態(tài)現(xiàn)場檢測設備
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調研考試(一模)英語試卷(含答案)
- 2025年信息系統(tǒng)集成服務公司組織架構和業(yè)務流程
- 西藏自治區(qū)拉薩市城關區(qū)多校2024-2025學年六年級上學期期中英語試題
- 胸外科講課全套
- 2023年海南省公務員錄用考試《行測》真題卷及答案解析
- 公安法制培訓
- 中醫(yī)診斷學八綱辨證課件
- 淺談如何有效提高小學數學教學質量課件
評論
0/150
提交評論