告別Fortran,只需要C++就可以編寫Abaqus UMat等用戶子程序

Fortran被稱為數學家語言,在計算效率方面有著得天獨厚的優勢,但因為許多歷史遺留問題以及發展問題,Fortran工程的開發和維護比較困難。隨著這些年編譯器和相應標準的發展,C++的運行效率已經與Fortran旗鼓相當,而在開發和維護問題上,大型應用軟件幾乎都采用C++編寫框架底層,優勢自不必說。再者,受國內教學環境的影響,大多數人在編程這塊也只能是對C++算得上熟悉了。這里,筆者將給出使用C++編寫Abaqus用戶子程序的方法,并不是替代Fortran,而是給用戶多一種選擇。采用本文中的方法,用戶將無需再安裝Fortran編譯器。

從編程角度看本文方法的實現原理比較簡單。以UMAT為例,Abaqus在提交計算任務后會將用戶指定的for文件或者obj文件編譯成為standardU.dll,然后連同安裝目錄下的standard.exe一起拷貝到臨時目錄下,然后運行standard.exe進行計算。在計算進行到用戶自定義材料時,Abaqus會自動去standardU.dll里尋找umat函數,也就是用戶指定源文件里的umat函數。因此,如果用C++寫出一個函數能夠讓standard.exe識別為 umat函數,并且接口變量一致,那么用戶自然就可以用C++寫出umat的用戶子程序。至于如何讓standard.exe認為就是umat函數,附件給出了具體的實現方法。

告別Fortran,只需要C++就可以編寫Abaqus UMat等用戶子程序的圖1C++編寫用戶子程序實現方法.pdf



以下內容為付費內容,請購買后觀看

   54人購買

示例文件和編譯命令文件

App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

6
5
8