bucket sort sample sort 并行_MOOSE: 实现大规模并行多物理场仿真(二)
轉載自wx公眾號:CS guy
來源于文章 MOOSE: Enabling massively parallel multiphysics simulation
網址:https://www.sciencedirect.com/science/article/pii/S2352711019302973?via%3Dihub
2.軟件說明
2.1 軟件架構
MOOSE旨在促進創建FEM工具,以運行高保真多物理場仿真。該軟件由“系統”組成,每個系統都提供了一個擴展點,用于定義仿真特性。這些系統使用接口進行通信,通過解耦以允許更多的代碼重用。 MOOSE中的每個系統都有一個特定的C++基類,應用程序開發人員繼承該基類并覆蓋虛函數,擴展該類以執行所需的計算。這種方法有兩個優點:首先,應用程序開發人員可以使用標準C++的規范,完全控制計算流程;其次,繼承鏈可以擴展,可超出框架所提供的基線功能,從而為下游應用程序提供豐富的功能。MOOSE有大約40個可以擴展的系統。單獨討論其中的每一個系統超出了本文的范圍,但是提供框架核心功能的系統可以分為三類:與偏微分方程(PDE)相關的系統,材料屬性和原位后處理(in-situ postprocessing)
定義PDE的兩個系統是Kernel和BoundaryCondition系統。 Kernel對象定義了體積積分項,而BoundaryCondition對象定義了由FEM弱形式推導得出的表面積分項[15]。 例如,清單1中的C++代碼片段是PDE對流項的實現示例。 此示例展示了支持自動微分(AD)的內核系統(請參閱第2.2節),必須實現precomputeQpResidual方法。
這是一種定義PDE方程式項的很強大的方法,優點如下:
1)該對流算子可以在1D,2D或3D中使用;
2)它可以使用恒定速度,可以與求解另一個PDE計算得到的場耦合,可以使用另一個應用程序計算出的場,甚至可以使用來自實驗的速度場;
3)該內核可以在一個處理器上工作,也可以在100,000個處理器上并行工作,無需進行任何修改;
4)任何需要該方程式項的應用程序都可以重用此對象,而無需對其進行重新編碼;
5)最后,還能以受控的隔離方式對其進行測試,以確保正確性。
Material系統允許定義“材料屬性”,通常表示PDE中的系數。 這些屬性可能是非線性的,它們本身可能依賴于PDE中的變量。使用框架的自動微分功能,這種依賴關系可以自動傳播到系統的Jacobian矩陣。 材料系統定義后,框架中的其他系統會通過簡單的生產者/消費者模型(producer/consumer)來使用材料屬性。 然后,MOOSE確保系統對象在需要時計算這些材料屬性。 材料屬性可以與其他材料屬性耦合或依賴于其他材料屬性,相互依存關系會被跟蹤,并以正確的順序執行。這種設計將物理計算與所需的系數分離開來,從而使屬性可以在應用程序內、跨應用程序共享和重用,而無需修改使用該屬性的對象的代碼。
“原位后處理”,描述了一組用于數據計算的系統(原文:describes a set of systems used for data computation that is typically performed post-simulation which are computed along with other calculations after, during or in-between solves)。此類系統包括Postprocessor,VectorPostprocessor和AuxKernel系統。Postprocessor和VectorPostprocessor系統分別計算標量和矢量值(例如,通過側面的總熱流量或總化學濃度)。這些計算本身可以取決于其他變量,材料屬性或其他后處理值。 MOOSE包含多個實用函數,可協助在后處理階段進行并行聚合,廣播和分散。 AuxKernel系統允許使用有限元基函數計算“場”或空間變化的數據。原位后處理可在大規模并行時執行計算。這些值可以反饋到其他系統中,包括反饋到PDE項或材料屬性的計算中。該系統還可在模擬時生成用于可視化的數據。
MOOSE框架的“系統”和“接口”體系結構允許應用程序開發人員構建仿真工具,該工具能夠解決從基本的單個物理問題到只有多個開發團隊才能實現的廣泛的,跨學科的多物理問題。 由此產生的應用程序,無論復雜性如何,都易于擴展,對研究團隊和分析人員均有用。 MOOSE支持幾種耦合機制:松散(交錯),緊密(迭代)和完整(整體)( 對應的英文為loose (staggered),tight (iteration), and full (monolithic) ) [7],[16],并提供了幾種方式來定制每種仿真類型的行為。 耦合的物理場不需要共享相同的網格或離散化,甚至不需要存在于相同的空間或時間尺度上。 可以使用Picard或定點迭代來實現非線性,同時使用內置或自定義邏輯在多個耦合模擬之間通過內存傳遞數據。
未完待續
[7]Gaston D.R., Permann C.J., Peterson J.W., SlaughterA.E., Andr? D., Wang Y., et al.Physics-based multiscale coupling for full core nuclear reactor simulation
Ann Nucl Energy (2014)
[15]Fish J., Belytschko T.A first course in finite elements Wiley (2007)
[16]Novascone S., Spencer B., Andrs D., Williamson R., Hales J., Perez D.Results from tight and loose coupled multiphysics in nuclear fuels performance simulations using BISON: Technical report
Idaho National Laboratory (INL) (2013)
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的bucket sort sample sort 并行_MOOSE: 实现大规模并行多物理场仿真(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fluidsim元件库下载_FluidS
- 下一篇: robocode 创建机器人