damask 子程序在windows平臺直接編譯使用

前面介紹了damask2.03版本和abaqus配合使用,以及damask3.0版本和marc配合使用的案例介紹,當前推文的主要介紹如何把damask子程序正確移植到windows平臺下并被abaqus正確調用,把 DAMASK 跑在 Windows 上這件事,看起來像是在“折騰編譯環境”,但它真正的價值并不是讓程序“能跑”,而是讓晶體塑性與位錯密度這類微觀機制模型真正進入一個更高效、更可復現、更貼近工程實際的工作流。

很多材料模擬研究者和工程仿真團隊的日常平臺其實仍然以 Windows 為核心:Abaqus/CAE 的建模、網格與接觸邊界設置,實驗配套軟件(EBSD 取向處理、DIC 應變場分析、顯微圖像工具)、常用的腳本與可視化流程往往都圍繞 Windows 生態展開。如果 DAMASK 必須依賴 Linux 才能穩定使用,那么在實際科研中就不可避免地出現“系統割裂”:前處理在 Windows、計算在 Linux、后處理又回到 Windows,過程中伴隨文件搬運、路徑差異、編碼與環境變量問題、版本與庫依賴不一致等大量隱性成本,而晶體塑性研究偏偏又是高頻迭代的工作——要不斷修改材料參數、控制文件、微結構與紋理、加載路徑,再反復校準與驗證。

把 DAMASK 在 Windows 下穩定編譯并能直接接入 Abaqus 的 UMAT/VUMAT,本質上是把“建模—計算—后處理—實驗對比—模型迭代”的閉環放進同一套系統里,減少無意義的遷移,讓時間回到真正決定論文質量與工程可信度的環節:模型、數據與物理機制。

對科研而言,這種一致性最直接的收益就是迭代速度變快、復現更可靠:同一個工程文件夾里同時管理 Abaqus 輸入、DAMASK 的材料與控制文件、紋理與微結構配置、以及 Python 后處理腳本,不再需要為了跑一次材料點或者做一次參數擬合而準備另一套系統環境;對實驗對比而言,Windows 上更成熟的 EBSD/DIC/顯微分析工具鏈能與仿真輸出更緊密地銜接,紋理導入、局部應變場對比、參數反演與不確定性評估都更順暢;

對工程落地而言,Abaqus 強大的接觸、復雜邊界、幾何非線性與多物理耦合能力可以與 DAMASK 的微觀本構優勢直接結合,使微結構機制模型不再停留在“材料點驗證”,而是更容易走向復雜構件與真實工況的結構仿真;對團隊協作而言,Windows 環境的普及度更高,能顯著降低新同學入門門檻與組內維護成本,環境文件、編譯命令與目錄結構一旦標準化,新成員拿到模板工程就能復現結果,這會把 DAMASK 從“少數人能用的高手工具”變成“團隊可復制的生產力平臺”。

因此,做這件事的意義并不是證明 Windows 也能跑 DAMASK,而是讓晶體塑性與位錯密度模型在主流工程仿真與實驗數據生態中更容易被調用、被驗證、被迭代,并最終更接近可復現、可交接、可落地的研究與工程實踐。

再嘗試編譯過程中嘗試了大量的damask版本,發現2.02和2.01版本最適合作為移植到abaqus的軟件版本,原因是2.03雖然作為最后一個支持abaqus求解器的版本,然而當前版本不支持顯示求解器,因此為了方便后期的動態求解問題,不適合使用,同時2.0以前的damask版本相應的功能雖然已經滿足,但是存在各類不易輕易發現的bug,嚴重影響移植過程,同時damask移植過程中涉及到并行計算的問題,damask的子程序寫法對并行計算支持度一般,且存在大量的數值讀取和寫出,嚴重影響多核心并并行計算,因此建議調試時使用單核心進行,移植到windows下支持的編譯器和Fortran版本也有顯著差異,當前使用vs2017,Fortran2019,abaqus2022發現可以正常使用計算。對damask在windows下編譯感興趣的可以下載相應版本的abaqus嘗試編譯和運行。

damask在windows下使用的案例效果如下:

在編譯過程中測試了下圖所示的案例,分別是BCC鐵,位錯密度模型,FCC鋁,HCP鎂合金,HCP鈦合金,各項同性的粘塑性模型,taylor模型等以及動態顯示vumat的實現,發現運行結果良好,計算效率相較于linux平臺要稍快一些,指的注意的是,當前采用單核心計算,在后續的過程中會對整體的damask代碼進行完整的重構,充分支持多核心并行計算,即運算效率會顯著提到,運行效果如下:

同一個目錄下包含如下文件

damask 子程序在windows平臺直接編譯使用的圖1

預編譯為OBJ格式可以顯著較少每次編譯所消耗的時間,

damask 子程序在windows平臺直接編譯使用的圖2

使用包含200個晶粒進行拉伸拉伸測試,驗證程序的可靠性

運行過程中,會生成包含輸出變量含義的三個文件

damask 子程序在windows平臺直接編譯使用的圖3

damask 子程序在windows平臺直接編譯使用的圖4

damask 子程序在windows平臺直接編譯使用的圖5

整體運行結束需要的時間。

單位統一使用m,pa,運行結束后的應力分布

damask 子程序在windows平臺直接編譯使用的圖6

應變分布

damask 子程序在windows平臺直接編譯使用的圖7

晶粒旋轉角度分布

damask 子程序在windows平臺直接編譯使用的圖8

使用歐拉角作為輸出,變形結束后的極圖分布(初始隨機取向):

damask 子程序在windows平臺直接編譯使用的圖9

damask 子程序在windows平臺直接編譯使用的圖10

相應結果和linux平臺下的進行了詳細對比,結果保持一致。感興趣的可以加入知識星球討論交流,掃描如下二維碼即可

damask 子程序在windows平臺直接編譯使用的圖11

知識星球上傳了原始damask2.02和2.01版本,感興趣的可以下載這兩個版本嘗試在windows下編譯使用

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP