展:從本構(gòu)到工程實(shí)踐)
1. 項(xiàng)目概述做材料數(shù)值模擬的朋友多少都碰過(guò)這么個(gè)場(chǎng)景文獻(xiàn)里那個(gè)晶體塑性本構(gòu)寫得清清楚楚公式推導(dǎo)漂亮得很但真要自己寫成UMAT塞進(jìn)Abaqus里又是另一回事了。要是再疊加裂紋擴(kuò)展普通的各向同性J2塑性加個(gè)損傷起始判據(jù)還能糊弄過(guò)去可一旦涉及晶粒取向、滑移系開動(dòng)、織構(gòu)演化這些細(xì)活兒常規(guī)的擴(kuò)展有限元XFEM框架根本接不住你這個(gè)內(nèi)變量更新的節(jié)奏。這個(gè)項(xiàng)目的核心就是用UMAT同時(shí)干了本構(gòu)更新和XFEM裂紋啟裂判據(jù)兩件事實(shí)現(xiàn)晶體塑性本構(gòu)與裂紋擴(kuò)展的耦合模擬。這個(gè)題目里的“科研自用”四個(gè)字很關(guān)鍵意味著你不需要做商業(yè)軟件級(jí)別的完整度但你必須搞清楚每個(gè)環(huán)節(jié)的物理意義和數(shù)值實(shí)現(xiàn)邏輯否則參數(shù)調(diào)起來(lái)完全是黑盒。這個(gè)項(xiàng)目能解決的問(wèn)題非常明確多晶材料或者單晶材料在外載作用下滑移系開動(dòng)導(dǎo)致局部塑性變形集中進(jìn)而萌生裂紋裂紋再沿著特定晶面或者損傷集中區(qū)擴(kuò)展。它適合誰(shuí)去參考正在做晶體塑性UMAT開發(fā)但想擴(kuò)展裂紋功能的人、用Abaqus做XFEM但覺得內(nèi)聚力模型不夠“物理”的人、以及被“晶體塑性斷裂”這個(gè)組合折磨到想放棄的研究生。一句大白話總結(jié)這活兒干成了你就能回答“這個(gè)晶粒裂了之后裂紋下一個(gè)往哪兒走走多快”這一類問(wèn)題而不是只能給一堆應(yīng)力應(yīng)變曲線然后靠猜。2. 為什么要把晶體塑性和XFEM揉在一起2.1 傳統(tǒng)斷裂模擬的痛點(diǎn)做斷裂模擬大家上手最多的路線無(wú)非兩條一是Griffith準(zhǔn)則加線彈性算個(gè)應(yīng)力強(qiáng)度因子判斷裂紋起裂和擴(kuò)展方向二是用內(nèi)聚力模型cohesive zone model在預(yù)設(shè)裂紋路徑上定義牽引-分離關(guān)系。這兩條路都有各自的價(jià)值但放到晶體材料里就會(huì)很尷尬。線彈性斷裂力學(xué)默認(rèn)材料是均勻連續(xù)體可晶體材料天生就不均勻——每個(gè)晶粒的彈性矩陣不一樣塑性變形靠有限個(gè)滑移系的剪切來(lái)承載裂紋并不會(huì)老老實(shí)實(shí)穿透“均勻介質(zhì)”它是在晶界、滑移帶、孿晶界這些微結(jié)構(gòu)特征附近折騰的。你用宏觀J積分去描述這東西物理上就丟了最重要的一層信息塑性變形是怎么在晶粒內(nèi)部不均勻地累積的位錯(cuò)滑移如何導(dǎo)致局部損傷局部損傷如何演化成裂紋表面。內(nèi)聚力模型的問(wèn)題是另一個(gè)維度。它本質(zhì)上是一條“假想裂紋路徑”你得預(yù)先知道裂紋往哪兒走??蓪?shí)際晶體材料里裂紋經(jīng)常拐彎沿著某組滑移面斜切或者沿著晶界繞行路徑你根本預(yù)判不了。Kalthoff-Winkler實(shí)驗(yàn)這種動(dòng)態(tài)裂紋分支的場(chǎng)景就是典型例子路徑未知的裂紋擴(kuò)展用路徑預(yù)設(shè)型方法去做等于盲人摸象。XFEM的優(yōu)勢(shì)恰好是把“路徑無(wú)所謂”這個(gè)事兒給解決了——它讓裂紋穿過(guò)單元內(nèi)部不用網(wǎng)格重劃分裂紋路徑跟著損傷場(chǎng)走裂到哪兒算哪兒。也就是說(shuō)XFEM管“裂紋面在空間上怎么擺”UMAT管“這個(gè)位置的材料還扛不扛得住該不該裂”分工明確互不干涉卻又深度耦合。2.2 UMAT在Abaqus斷裂模擬中扮演的角色很多人有個(gè)誤解以為UMAT只是用來(lái)更新應(yīng)力的裂紋的事兒交給XFEM的損傷準(zhǔn)則去干就行。理論上沒(méi)錯(cuò)但實(shí)際操作里你的損傷起始判據(jù)和演化法則都要依賴UMAT提供的力學(xué)狀態(tài)。Abaqus的XFEM損傷起始判據(jù)有很多QUADS二次名義應(yīng)力準(zhǔn)則也好最大主應(yīng)力準(zhǔn)則也好它們都在算“當(dāng)前應(yīng)力達(dá)到什么水平就裂紋萌生”。問(wèn)題是晶體塑性UMAT返回的應(yīng)力本身就帶著你的滑移系硬化、晶粒旋轉(zhuǎn)、率相關(guān)塑性這些物理信息比起純線彈性算出來(lái)的應(yīng)力在局部要準(zhǔn)確得多尤其在高約束、大變形區(qū)域差異能大到幾倍。更實(shí)際的一點(diǎn)Abaqus的XFEM配合UMAT時(shí)有一個(gè)很微妙的技術(shù)限制當(dāng)裂紋穿過(guò)單元時(shí)單元的剛度會(huì)急劇下降UMAT里的雅可比矩陣算得準(zhǔn)不準(zhǔn)直接決定了牛頓迭代能不能在全局層面上平穩(wěn)收斂。很多人的UMAT單獨(dú)跑塑性沒(méi)問(wèn)題一掛XFEM就瘋狂報(bào)錯(cuò)“負(fù)特征值”或者“time increment too small”十有八九是雅可比矩陣數(shù)值上有問(wèn)題和裂紋關(guān)系不大。3. 晶體塑性本構(gòu)怎么寫才對(duì)得起“科研”兩個(gè)字3.1 運(yùn)動(dòng)學(xué)框架和滑移系設(shè)定晶體塑性本構(gòu)的理論基礎(chǔ)是單晶體變形分解變形梯度F拆成彈性部分Fe和塑性部分Fp塑性形變由滑移系的簡(jiǎn)單剪切累加而成。最經(jīng)典的單晶運(yùn)動(dòng)學(xué)關(guān)系是Fe和塑性速度梯度Lp的關(guān)系塑性速度梯度可以寫成所有滑移系上剪切應(yīng)變率與滑移方向矢量、滑移面法向矢量叉積的疊加。這個(gè)分解看起來(lái)平淡但后邊所有UMAT計(jì)算的復(fù)雜性都從這里來(lái)——你必須更新Fp的歷史值因?yàn)橄乱辉隽坎降腇e由當(dāng)前總F減去上一步的Fp得到?;葡翟趺催x取決于晶體結(jié)構(gòu)。最常見的是面心立方FCC的12個(gè){111}110滑移系體心立方BCC有{110}111、{112}111、{123}111共48個(gè)潛滑移系密排六方HCP就更麻煩基面、柱面、錐面加起來(lái)二十來(lái)個(gè)還要帶非施密特效應(yīng)。寫UMAT之前先把滑移系表格準(zhǔn)備好這是一切的起點(diǎn)。這里有一個(gè)新手特別容易搞錯(cuò)的問(wèn)題滑移系矢量的方向余弦矩陣一定要做晶粒取向的旋轉(zhuǎn)。你用歐拉角把初始取向轉(zhuǎn)出來(lái)之后滑移系的滑移方向和滑移面法向都要跟著旋轉(zhuǎn)矩陣走一遍不然多晶體里所有晶粒的滑移系全是同一個(gè)朝向算出來(lái)就是一塊完美的偽單晶。3.2 率相關(guān)流動(dòng)法則和硬化模型晶體塑性的流動(dòng)法則普遍采用冪律形式每個(gè)滑移系的剪切應(yīng)變率由分解剪切應(yīng)力和滑移阻力共同控制。公式里有三個(gè)關(guān)鍵參數(shù)參考剪切應(yīng)變率、應(yīng)力指數(shù)率敏感指數(shù)、滑移阻力。率相關(guān)模型數(shù)值上很方便因?yàn)槟悴恍枰袛唷澳膫€(gè)滑移系開動(dòng)了”所有滑移系同步計(jì)算剪切速率自然有強(qiáng)弱之分。硬化模型是另一個(gè)大項(xiàng)。最簡(jiǎn)單的Voce硬化律飽和應(yīng)力隨累積剪切應(yīng)變指數(shù)上升但要考慮潛硬化某一滑移系的滑移會(huì)讓另一滑移系的阻力也上升需要一個(gè)潛硬化矩陣。自硬化模量h_aa和潛硬化模量h_ab之間那個(gè)系數(shù)q對(duì)于FCC材料來(lái)說(shuō)通常取1到1.4之間很多文獻(xiàn)里直接取大值如q1.4來(lái)模擬交叉滑移對(duì)硬化影響大的場(chǎng)景。比如你選了FCC鋁退火態(tài)初始滑移阻力大約十幾兆帕量級(jí)硬化系數(shù)幾百兆帕這些參數(shù)據(jù)說(shuō)要有實(shí)驗(yàn)做底。文獻(xiàn)上的參數(shù)“借用”一定要謹(jǐn)慎因?yàn)榫w塑性參數(shù)對(duì)織構(gòu)演化和應(yīng)力應(yīng)變預(yù)測(cè)的敏感性極高差個(gè)20%的結(jié)果會(huì)是另一個(gè)故事。3.3 UMAT的應(yīng)力更新和雅可比矩陣UMAT不管在隱式還是顯式里核心任務(wù)都是給定應(yīng)變?cè)隽糠祷貞?yīng)力增量和材料雅可比。晶體塑性的隱式更新通常采用“彈性預(yù)測(cè)-塑性校正”兩步策略先假設(shè)步內(nèi)完全彈性然后根據(jù)各滑移系的剪切增量修正——注意這里需要選一個(gè)變量做迭代求解。最常見的方法是選取滑移系剪切增量為未知量用牛頓迭代來(lái)滿足分解剪切應(yīng)力和滑移阻力之間的平衡關(guān)系。每一個(gè)迭代步里你都要重新計(jì)算Fe再算各滑移系的Schmid張量再更新硬化變量。雅可比矩陣DDSDDE的計(jì)算很令人頭疼但這里有一個(gè)工程捷徑如果你求準(zhǔn)確切一致切線模量非常困難可以先取簡(jiǎn)化切線比如直接用小變形J2塑性的格式替代只要全局迭代可以收斂就行。代價(jià)是你需要的增量步更小但代碼穩(wěn)定性和迭代效率都會(huì)好很多??蒲凶杂玫脑捑葍?yōu)先還是穩(wěn)定性優(yōu)先要自己想清楚我傾向于穩(wěn)定性優(yōu)先因?yàn)閄FEM全局收斂比單點(diǎn)精度更加要命。4. XFEM怎么和UMAT銜接才不出鬼4.1 初始裂紋和擴(kuò)展裂紋的布置方式做XFEM和UMAT耦合之前要明白一個(gè)非常重要的“潛規(guī)則”Abaqus默認(rèn)的XFEM富集方法可以和用戶子程序并存但裂紋幾何需要你在CAE或者inp文件里主動(dòng)定義。一個(gè)常見手段是用“Rich crack”的方式在inp文件里定義初始裂紋面和擴(kuò)展區(qū)域這樣你的裂紋不需要完全穿透初始網(wǎng)格可以停在單元內(nèi)部。具體操作上建議用“XFEM裂紋萌生擴(kuò)展”模式而不是“預(yù)置裂紋擴(kuò)展”模式。前者只需要定義損傷起始準(zhǔn)則裂紋自己找地方長(zhǎng)出來(lái)實(shí)現(xiàn)的是“無(wú)初始缺陷”的模擬后者要在幾何上就放一條縫適合研究預(yù)裂紋對(duì)剩余強(qiáng)度的影響。在晶體塑性模擬中初始裂紋的布置要和晶粒分割位置匹配好——通常先在晶界上放一條短裂紋觀察它什么時(shí)候朝晶內(nèi)偏轉(zhuǎn)。4.2 損傷起始與演化判據(jù)的選擇XFEM的損傷起始判據(jù)和UMAT的應(yīng)力輸出是解耦還是耦合這直接決定你的代碼結(jié)構(gòu)。最大主應(yīng)力準(zhǔn)則最簡(jiǎn)單的做法是檢查UMAT返回的第一主應(yīng)力是否超過(guò)臨界值。這個(gè)方法很方便但它沒(méi)有考慮剪應(yīng)力對(duì)裂紋的驅(qū)動(dòng)晶體材料的裂紋常常沿滑移面以混合模式擴(kuò)展因此單純最大主應(yīng)力準(zhǔn)則偶爾會(huì)給你一個(gè)過(guò)于“拉張”的裂紋面和實(shí)驗(yàn)觀察對(duì)不上。稍微進(jìn)階一點(diǎn)的做法是在UMAT里加用戶定義損傷變量——對(duì)每個(gè)材料點(diǎn)計(jì)算一個(gè)損傷驅(qū)動(dòng)力比如累積滑移量控制或者滑移面正應(yīng)力控制——然后通過(guò)狀態(tài)變量輸出給XFEM的富集判據(jù)使用。這種思路確實(shí)會(huì)和Abaqus內(nèi)置的XFEM失效準(zhǔn)則產(chǎn)生一些交互問(wèn)題但如果你最終走的是“人為定義損傷變量刪除單元”的路線這條路的自由度會(huì)大很多。值得提醒的是在Abaqus里面XFEM損傷和UMAT狀態(tài)變量之間不存在“自動(dòng)通信”的通道你必須借助狀態(tài)變量把損傷狀態(tài)傳給輸出文件然后在后處理里人工判斷。別指望Abaqus會(huì)幫你自動(dòng)可視化“哪些單元被裂紋穿過(guò)了”那個(gè)“STATUS”輸出大致能用但黏著裂紋的開關(guān)細(xì)節(jié)還是需要自己管理。4.3 刪除單元思路和XFEM思路的取舍不少人不愿意碰XFEM里的富集函數(shù)和水平集他們喜歡比較“暴力”的做法UMAT算應(yīng)力損傷值累計(jì)到某個(gè)閾值直接把單元?jiǎng)偠日蹨p到幾乎為零或者直接移除。這就是“單元?jiǎng)h除法”。它的優(yōu)點(diǎn)極其明顯實(shí)現(xiàn)難度低你的UMAT自己控制生死不需要和Abaqus富集交互細(xì)節(jié)打交道。但單元?jiǎng)h除法有兩個(gè)致命傷。第一單元?jiǎng)h除之后力學(xué)的守恒性變差刪除單元周圍的應(yīng)力場(chǎng)會(huì)發(fā)生非物理擾動(dòng)第二刪除單元本質(zhì)上是在創(chuàng)造“材料消失”不是“裂紋張開”因此表面的摩擦、裂紋面的接觸、裂紋尖端奇異場(chǎng)的漸進(jìn)性都搞不對(duì)。對(duì)研究晶體塑性裂紋擴(kuò)展方向、織構(gòu)對(duì)路徑影響這類半定量問(wèn)題單元?jiǎng)h除法已經(jīng)能給出有用的對(duì)比結(jié)果但如果目標(biāo)是定量預(yù)測(cè)斷裂韌性值或者裂紋偏轉(zhuǎn)角XFEM富集還是繞不過(guò)去。這里我的建議是科研自用場(chǎng)景下先把單元?jiǎng)h除法跑通作為對(duì)照基線。如果時(shí)間允許再上XFEM。不要一上來(lái)就正面硬剛整個(gè)XFEM體系尤其是還要嵌一個(gè)復(fù)雜的晶體塑性UMAT進(jìn)去的時(shí)候。5. 實(shí)操過(guò)程記錄從零到一跑通這個(gè)模擬5.1 第一步準(zhǔn)備工作與工具鏈我的環(huán)境是單機(jī)Linux工作站Abaqus版本用的是一套可以接Intel編譯器的Linux版本Fortran編譯器用的Intel Parallel Studio里的ifort也試了gfortran除了個(gè)別內(nèi)置函數(shù)行為略有差異外gfortran也可以勝任。做之前先把編譯工具鏈檢查好用一個(gè)最簡(jiǎn)單的彈性UMAT跑通調(diào)用流程確認(rèn)Abaqus能找到你的so庫(kù)。UMAT子程序和自己調(diào)試的Fortran程序差異很大Abaqus傳入的變量比如DSTRAN、STRAN、DTIME在增量步之間被程序自己管理系統(tǒng)調(diào)度你在本地寫測(cè)試臺(tái)的時(shí)候要模擬出這些變量傳遞的整個(gè)邏輯流程。5.2 第二步UMAT主體框架搭建UMAT的框架大致分成幾個(gè)模塊。第一是初始化讀取材料參數(shù)彈性常數(shù)、初始滑移阻力、率敏感指數(shù)等把滑移系參數(shù)算好。第二是計(jì)算當(dāng)前變形梯度上一增量步結(jié)束時(shí)的塑性變形梯度需要保存到狀態(tài)變量數(shù)組里意味著狀態(tài)變量至少要存幾十個(gè)甚至上百個(gè)實(shí)數(shù)每滑移系對(duì)應(yīng)兩個(gè)變量還有累積滑移量等。第三是應(yīng)力更新。核心代碼過(guò)程中有個(gè)常見的“幽靈陷阱”晶體塑性UMAT看文獻(xiàn)大家都會(huì)用到Schmid張量的對(duì)稱部分但對(duì)非對(duì)稱部分視而不見。實(shí)際上為了避免轉(zhuǎn)動(dòng)效應(yīng)和晶格旋轉(zhuǎn)產(chǎn)生的誤差應(yīng)力更新最好考慮完整Schmid張量尤其是在材料點(diǎn)經(jīng)歷大變形轉(zhuǎn)動(dòng)的場(chǎng)景。如果一直用對(duì)稱Schmid張量裂紋尖端大變形區(qū)域的應(yīng)力方向就會(huì)逐漸失真。塑形更新過(guò)程中的晶格旋轉(zhuǎn)是通過(guò)極分解Fe得到的旋轉(zhuǎn)矩陣作用于滑移系方向?qū)崿F(xiàn)的這個(gè)旋轉(zhuǎn)量如果忽略多晶體織構(gòu)對(duì)裂紋路徑的影響就完全體現(xiàn)不出來(lái)——等于把你前邊辛辛苦苦寫的晶體塑性一架核心本構(gòu)退化成各向異性彈性加標(biāo)量硬化。5.3 第三步XFEM初始裂紋和富集區(qū)布置Abaqus的inp文件里定義XFEM裂紋大體上就是關(guān)鍵段里寫初始裂紋名稱、裂紋面的幾何以及裂紋可以擴(kuò)展的區(qū)域。如果你希望在“未開裂”的材料里萌生裂紋就不要設(shè)置初始裂紋幾何而是靠損傷起始準(zhǔn)則讓程序在當(dāng)前沒(méi)裂紋的模型上自動(dòng)判斷裂紋萌生的位置。設(shè)置模型的時(shí)候我還試過(guò)把XFEM區(qū)域設(shè)成一個(gè)很細(xì)的帶狀區(qū)域預(yù)判裂紋潛在路徑帶把裂紋約束在這個(gè)區(qū)域內(nèi)擴(kuò)展。結(jié)果是路徑確實(shí)穩(wěn)定了不少但這樣的話已經(jīng)帶了一半人為預(yù)設(shè)的意味對(duì)于“自然擴(kuò)展方向”的研究來(lái)講有一定干擾取與舍還需要你自己去平衡。5.4 第四步損傷判據(jù)耦合的實(shí)現(xiàn)以最大滑移剪切累積量為例這里給一個(gè)具體的實(shí)現(xiàn)示例很直觀。在UMAT中除了更新應(yīng)力和硬化變量我額外定義了一個(gè)損傷狀態(tài)變量D_damage它的演化由等效累積剪切應(yīng)變控制。當(dāng)某個(gè)材料點(diǎn)的累積剪切應(yīng)變超過(guò)閾值就在狀態(tài)變量里標(biāo)記為“可損傷”。在輸出這個(gè)狀態(tài)變量之后根據(jù)Abaqus的“場(chǎng)變量依賴”機(jī)制或者“材料點(diǎn)失效”機(jī)制讓該單元?jiǎng)偠人p。示例代碼偽代碼風(fēng)格C 等效累積滑移更新 GAMMA_ACC GAMMA_ACC SUM(ABS(DGAMMA(:))) STATEV(1) GAMMA_ACC C 損傷判據(jù) IF (STATEV(1) .GT. CRITICAL_GAMMA) THEN STATEV(2) 1.0D0 ELSE STATEV(2) 0.0D0 END IF這段邏輯談不上嚴(yán)謹(jǐn)損傷起始的物理依據(jù)其實(shí)還可以往上靠比如說(shuō)用滑移面上正應(yīng)力組合或者存儲(chǔ)能密度不等。但是作為第一個(gè)能跑起來(lái)的版本它足以讓你確定整條鏈路的通信機(jī)制是否正常。5.5 第五步算法穩(wěn)定性和收斂調(diào)節(jié)晶體塑性UMAT和XFEM結(jié)合之后增量步的收斂會(huì)變得很敏感。我實(shí)際調(diào)參的時(shí)候發(fā)現(xiàn)加載速率的影響比想象中大得多用準(zhǔn)靜態(tài)加載位移增量給很小配合固定增量步比如每步1e-4秒全局收斂就會(huì)穩(wěn)定很多。Abaqus默認(rèn)的自動(dòng)增量策略在XFEM加上晶體塑性UMAT的組合下經(jīng)常變得像一只無(wú)頭蒼蠅時(shí)而因?yàn)槟硞€(gè)單元的應(yīng)力振蕩把增量步縮到極小。建議設(shè)置固定增量步或限制最大增量步縮減次數(shù)同時(shí)把塑性迭代的容差設(shè)置得比默認(rèn)略寬松比如容許1e-6量級(jí)的不平衡力這樣可以比較順利地走過(guò)裂紋起始的敏感段。5.6 第六步后處理與結(jié)果提取裂紋擴(kuò)展模擬的后處理要看幾樣?xùn)|西。第一是裂紋面的幾何形態(tài)用云圖顯示損傷變量或者狀態(tài)變量確認(rèn)裂紋是否沿著你預(yù)期的晶界或者滑移面方向偏轉(zhuǎn)。第二是應(yīng)力-應(yīng)變曲線的整體響應(yīng)——當(dāng)裂紋開始擴(kuò)展時(shí)整體力-位移曲線會(huì)有一個(gè)明顯的“軟化段”對(duì)脆性和韌性材料的區(qū)分非常直觀。數(shù)據(jù)輸出時(shí)狀態(tài)變量的采樣頻次要調(diào)高否則裂紋擴(kuò)展中間時(shí)刻的損傷分布細(xì)節(jié)會(huì)丟。還要考慮把變形后的幾何輸出打開這樣能夠直觀看到裂紋張開的位移輪廓。6. 常見問(wèn)題和調(diào)試記錄6.1 報(bào)錯(cuò)“負(fù)特征值”這個(gè)報(bào)錯(cuò)在XFEM和材料軟化共存時(shí)極為常見。很多人第一反應(yīng)是材料本構(gòu)有問(wèn)題但排模下來(lái)多數(shù)時(shí)候是全局切線剛度矩陣因?yàn)閱卧獎(jiǎng)偠人p而局部奇異了。對(duì)策有三個(gè)方向檢查UMAT返回的雅可比矩陣是否對(duì)稱正定檢查增量步是否太大以及看是不是某些單元變形過(guò)度導(dǎo)致幾何退化。如果三者都沒(méi)問(wèn)題把損傷演化改成更“平滑”的柔化方式也能緩解。6.2 裂紋不擴(kuò)展或者擴(kuò)展方向“不符合物理”往往是判據(jù)的問(wèn)題。最大主應(yīng)力準(zhǔn)則在單拉工況下尚可但只要加載路徑有剪切分量裂紋面方向會(huì)偏得離譜。換成能量型或者滑移累積型判據(jù)再結(jié)合晶粒取向的局部Schmid因子分布去校正擴(kuò)展方向就能回到“沿著高施密特因子方向”這類教科書結(jié)論。6.3 多晶模型的周期性邊界條件和XFEM區(qū)域設(shè)置沖突多晶體代表體積元模型通常加周期性邊界條件PBC各個(gè)晶粒的網(wǎng)格和節(jié)點(diǎn)映射關(guān)系比較復(fù)雜。XFEM裂紋擴(kuò)展可以通過(guò)周期性邊界也可以在周期邊界處停下來(lái)這個(gè)選擇直接影響裂紋和相鄰晶粒的交互模式。如果你覺得裂紋“不該在邊界處拐彎”卻拐了大概率是PBC的約束方式限制了裂紋尖端的非對(duì)稱變形導(dǎo)致裂尖應(yīng)力狀態(tài)發(fā)生了非物理變化。換用更柔性的約束方式或者擴(kuò)大富集區(qū)域邊界可以緩解。6.4 關(guān)于參數(shù)標(biāo)定的個(gè)人體會(huì)晶體塑性加XFEM的參數(shù)組合真是天文數(shù)字。我的建議是分階段標(biāo)定先做不含裂紋的單晶體拉伸試驗(yàn)標(biāo)定滑移系統(tǒng)硬化參數(shù)再做多晶拉伸標(biāo)定晶界傳遞和平均取向誤差最后做帶缺口的斷裂實(shí)驗(yàn)單獨(dú)標(biāo)定損傷起始閾值。別指望一次擬合搞定所有參數(shù)那是做反問(wèn)題不是做正問(wèn)題。7. 一些真實(shí)使用的后續(xù)擴(kuò)展想法跑通這個(gè)UMAT和XFEM耦合流程之后后面能玩的方向非常多。比如加入孿生機(jī)制HCP材料的孿晶誘發(fā)塑性TWIP效應(yīng)會(huì)和裂紋萌生強(qiáng)耦合比如加入晶界滑動(dòng)機(jī)制高溫蠕變工況下的晶界裂紋就會(huì)和晶內(nèi)滑移裂紋形成競(jìng)爭(zhēng)再比如和多尺度方法結(jié)合通過(guò)晶塑性UMAT把細(xì)觀變形信息傳到更大尺度的損傷模型中。也有人把這套東西做成“虛擬實(shí)驗(yàn)”把實(shí)驗(yàn)測(cè)不到的、晶粒分辨率的應(yīng)力應(yīng)變場(chǎng)拿出來(lái)分析去支撐斷裂機(jī)理的討論。這個(gè)方向的學(xué)術(shù)價(jià)值很高因?yàn)閷?shí)驗(yàn)上測(cè)晶粒內(nèi)部的應(yīng)力場(chǎng)分布需要同步輻射或者高精度EBSD成本高且樣本小如果能用數(shù)值方法把類似信息逼近出來(lái)對(duì)很多機(jī)理分析的幫助立竿見影。我個(gè)人在實(shí)際操作中的體會(huì)是跑這個(gè)項(xiàng)目最大的挫折不是本構(gòu)寫不出來(lái)而是你往往要同時(shí)跟“物理圖像”和“數(shù)值游戲”兩個(gè)敵人打架。UMAT要更新滑移系變形XFEM要處理非連續(xù)場(chǎng)兩邊不論哪一邊出現(xiàn)奇異性可能都不是對(duì)方的問(wèn)題而是你自己設(shè)計(jì)里有個(gè)隱藏的假設(shè)沒(méi)有檢查清楚。多給自己寫點(diǎn)檢查工具、多留點(diǎn)狀態(tài)變量輸出會(huì)讓調(diào)試效率翻倍。