力場設(shè)置全攻略:四種方法與實(shí)操技巧)
做巖土、隧道、邊坡數(shù)值模擬的朋友早晚都會撞上“初始地應(yīng)力場”這個詞。Abaqus里如果不把這個場設(shè)對后面算隧道開挖、基坑卸荷、邊坡穩(wěn)定性第一步就可能出現(xiàn)幾十厘米甚至幾米的虛假位移整個模型約等于作廢。我見過不少人在論壇問“為什么我開挖出來的位移這么大”“地應(yīng)力平衡永遠(yuǎn)不收斂”十有八九就是初始應(yīng)力沒給對。這篇文章我就把自己用Abaqus設(shè)置初始地應(yīng)力場的幾種常用方法、完整操作步驟、以及調(diào)試經(jīng)驗(yàn)一次性講清楚新手看完能照著做老手也可以對照檢查自己的設(shè)置流程。1. 為什么要設(shè)置初始地應(yīng)力場不設(shè)置會出什么亂子1.1 初始地應(yīng)力場是什么巖體本來就是“帶應(yīng)力上班”的很多沒接觸過巖土方向的人第一次聽到“初始地應(yīng)力場”會覺得抽象其實(shí)道理很簡單地面以下幾十米甚至幾百米的巖土體并不是一塊剛從Abaqus里新建的、無應(yīng)力無變形的“白紙材料”。它在上覆巖土自重、地下水、歷史構(gòu)造運(yùn)動等因素下早就處于一個受力平衡的應(yīng)力狀態(tài)。這個“與生俱來”的應(yīng)力狀態(tài)就是初始地應(yīng)力場。它由豎向自重應(yīng)力和水平構(gòu)造應(yīng)力組成通常用豎向應(yīng)力σv ρgh、水平應(yīng)力σh K0σv來近似。K0是側(cè)壓力系數(shù)對于正常固結(jié)土可以用K0 ν/(1-ν)估算巖石工程里更多是根據(jù)實(shí)測或經(jīng)驗(yàn)取0.5到1.5之間的一個值。Abaqus默認(rèn)模型是從零應(yīng)力狀態(tài)開始的。如果不人為設(shè)置初始地應(yīng)力直接施加重力相當(dāng)于把原本已經(jīng)穩(wěn)定平衡了幾千上萬年的巖體從“無應(yīng)力”狀態(tài)強(qiáng)行壓到“有應(yīng)力”狀態(tài)。這個加載過程會產(chǎn)生一個明顯的壓縮變形位移量級往往遠(yuǎn)大于你關(guān)心的工程位移。也就是說你第一步算出來的“沉降”“變形”根本不是工程要看的增量變形而是一個由“人為把重力加上去”造成的虛假壓縮量后續(xù)所有開挖、支護(hù)、卸載的分析結(jié)果都會被這個虛假位移污染。1.2 不設(shè)置初始應(yīng)力隧道開挖算出來全是“假位移”舉個具體例子。一個埋深50米的隧道上覆巖層平均密度按2000 kg/m3算重力加速度取9.8那么隧道所在位置的豎向應(yīng)力大約是1MPa。如果巖體的彈性模量只有100MPa量級應(yīng)變大約就是1%。從地表到隧道深度這50米厚的巖體在自重作用下理論上要被壓縮掉數(shù)十厘米。這個位移是地殼在漫長地質(zhì)年代里早已完成的變形不是工程開挖引起的位移。你要是把它留在計算結(jié)果里后面看隧道拱頂沉降云圖時會發(fā)現(xiàn)整個模型都在往下“沉”數(shù)值大得離譜但這不是隧道開挖造成的而是初始壓縮變形沒有扣除。地應(yīng)力平衡要做的事就是“先讓這個初始應(yīng)力場在重力和其他外載下自洽平衡并把由此產(chǎn)生的位移盡可能清零”。平衡做完之后模型處于“有應(yīng)力、無位移”的狀態(tài)。后續(xù)不管是開挖、加支護(hù)還是施加超載新得到的位移才是真正的增量位移才能拿去和現(xiàn)場監(jiān)測數(shù)據(jù)對比。這個邏輯是整個巖土數(shù)值模擬的地基地基不正樓蓋得再漂亮也沒用。1.3 哪些工程必須做地應(yīng)力平衡哪些可以偷懶只要你模擬的對象是巖土體而且關(guān)心的是“開挖/加載之后相對初始狀態(tài)的變形和應(yīng)力變化”那就必須做初始地應(yīng)力平衡。典型場景包括深埋隧道與地下洞室開挖、邊坡穩(wěn)定性分析、基坑開挖、樁基與地基沉降、礦山采動、油氣井井壁穩(wěn)定等。這些場景里初始應(yīng)力不僅影響位移還會直接影響破壞判據(jù)比如巖體是否進(jìn)入塑性、節(jié)理是否張開都和圍壓水平密切相關(guān)。初始應(yīng)力場給錯了破壞模式都會變。也有可以簡化的情況。比如你只做地表淺層的一個小型填方工程材料強(qiáng)度很低自重應(yīng)力影響本來就小又比如你根本不關(guān)注巖土體本身的初始位移只關(guān)心結(jié)構(gòu)構(gòu)件在外部荷載下的內(nèi)力響應(yīng)那這類問題可以只把重力當(dāng)作普通荷載加載不必嚴(yán)格做地應(yīng)力平衡。但我個人的建議是凡是模型里出現(xiàn)了“巖土體重力開挖或加載”這三個要素就老老實(shí)實(shí)把地應(yīng)力平衡寫上。很多期刊審稿人和工程評審專家對這個步驟有明確要求你模型里第一分析步不是Geostatic或者初始位移沒清零很容易被人一句話打回來。2. 四種主流設(shè)置方法怎么選自動平衡、SIGINI、ODB導(dǎo)入、分步法2.1 方法一GEOSTATIC自動平衡法適合自重應(yīng)力場Abaqus/Standard里專門提供了Geostatic分析步配合關(guān)鍵字*Initial Conditions, TypeStress, Geostatic可以在一個分析步內(nèi)自動完成初始應(yīng)力場的平衡。它的基本邏輯是你告訴Abaqus“這個區(qū)域的初始應(yīng)力隨深度按某個梯度分布”Abaqus在Geostatic分析步里把重力加上去反復(fù)迭代修正應(yīng)力使模型在重力下達(dá)到平衡并把由初始應(yīng)力引起的位移收斂到極小。這個方法的優(yōu)點(diǎn)是非常省事尤其適合水平成層、地表水平、邊界規(guī)則的模型。你只需要在CAE里給一個Geostatic分析步然后在Predefined Field里定義初始應(yīng)力或者直接改關(guān)鍵字輸入幾行數(shù)據(jù)就行。缺點(diǎn)是它假設(shè)初始應(yīng)力是以水平分層為基本規(guī)律的對于起伏地表、強(qiáng)烈構(gòu)造應(yīng)力、復(fù)雜地形條件下純靠這種方式給出來的應(yīng)力場不一定符合實(shí)際情況。而且Geostatic自動平衡對網(wǎng)格質(zhì)量和邊界約束要求比較高有時候會不收斂。2.2 方法二SIGINI用戶子程序適合復(fù)雜構(gòu)造應(yīng)力場如果你要模擬的初始應(yīng)力場不是簡單隨深度線性變化而是隨坐標(biāo)有更復(fù)雜的關(guān)系比如考慮了褶皺、斷層、水平構(gòu)造應(yīng)力非均勻分布或者你只是想寫一個自定義的側(cè)壓力系數(shù)表達(dá)式那最好用SIGINI子程序。SIGINI是Abaqus專門用于定義初始應(yīng)力場的用戶子程序Abaqus在計算開始前會調(diào)用它在每個積分點(diǎn)上給你當(dāng)前單元的坐標(biāo)和積分點(diǎn)信息你再把應(yīng)力分量填進(jìn)SIGMA數(shù)組就行。用SIGINI的好處是靈活你可以在程序里寫任意函數(shù)讀取外部數(shù)據(jù)文件甚至按照不同材料區(qū)域做不同處理。缺點(diǎn)是First你得會一點(diǎn)Fortran或者Python風(fēng)格的程序思維Second調(diào)試要比CAE里點(diǎn)幾下鼠標(biāo)麻煩一些。實(shí)際上SIGINI的Fortran模板很固定把公式填對編譯通過再用一個小模型驗(yàn)證結(jié)果后面就能穩(wěn)定復(fù)用了。我在3.2節(jié)會直接給一個可以套用的模板。2.3 方法三ODB/文件導(dǎo)入法適合已有模型或復(fù)雜初始場有時候你不想手動寫公式只想“用Abaqus算出來的應(yīng)力場作為下一次分析的初始應(yīng)力場”。最典型的做法是先建一個模型只施加重力和邊界條件跑一遍靜力分析得到應(yīng)力場確定這個應(yīng)力場是自己滿意的、符合實(shí)測規(guī)律的然后把這份應(yīng)力場作為初始條件導(dǎo)入到正式計算模型里。在Abaqus里可以通過兩種方式實(shí)現(xiàn)。一種是用Initial Conditions, TypeStress, Filejob.odb直接把之前分析得到的ODB文件作為初始應(yīng)力來源另一種是先把應(yīng)力分量提取出來寫成數(shù)據(jù)文件再用Initial Conditions, TypeStress, Inputxxx.dat讀入。這種方式尤其適合“先算一個小子模型得應(yīng)力再映射到大模型”“地質(zhì)體很復(fù)雜用數(shù)值方法先算地應(yīng)力場再做工程分析”這類工作流。操作上稍微繁瑣一點(diǎn)但精度和可控性都不錯。2.4 方法四分步重力加載法做不了子程序時的備用方案如果你既不想寫SIGINI又擔(dān)心GEOSTATIC自動平衡不收斂還有一招“土辦法”先用一個Static, General分析步把重力加載上去得到一個包含自重應(yīng)力且包含自重位移的結(jié)果然后在下一步分析前把位移場清零不是把應(yīng)力清零這樣相當(dāng)于人為抹掉了自重引起的位移保留自重應(yīng)力。實(shí)現(xiàn)起來可以通過重啟動或者*Restart也可以在后處理里把位移場導(dǎo)出再減去初始位移。這個方法思路直白很多老工程師會用它做初步試探。它的缺點(diǎn)是位移清零不是一個嚴(yán)格的力學(xué)操作如果模型里有塑性、接觸等非線性因素直接清零位移可能會破壞應(yīng)力-應(yīng)變關(guān)系的一致性導(dǎo)致后續(xù)結(jié)果出現(xiàn)不協(xié)調(diào)。因此我一般把它當(dāng)作備選方案或者只用來快速驗(yàn)證整體量級正式的科研和工程分析還是優(yōu)先用前面三種。2.5 選型對比表方法原理優(yōu)點(diǎn)缺點(diǎn)適用場景GEOSTATIC自動平衡Abaqus內(nèi)置地應(yīng)力平衡分析步操作快自帶收斂修正對復(fù)雜地形/構(gòu)造應(yīng)力適應(yīng)性差水平成層、規(guī)則自重應(yīng)力場SIGINI子程序在每個積分點(diǎn)自定義初始應(yīng)力靈活支持任意函數(shù)和外部數(shù)據(jù)需要編程和調(diào)試復(fù)雜地形、非均勻構(gòu)造應(yīng)力場ODB/文件導(dǎo)入從已有分析結(jié)果導(dǎo)入應(yīng)力場精度高可銜接前序分析步驟多需保證坐標(biāo)系一致模型復(fù)雜、已有地應(yīng)力計算結(jié)果分步重力加載位移清零重力加載后清零位移思路簡單無需子程序非線性問題會破壞力學(xué)一致性快速驗(yàn)證、初步試算3. 新手必看CAE里設(shè)置初始地應(yīng)力場的完整實(shí)操步驟3.1 用GEOSTATIC自動平衡從建模到關(guān)鍵字修改的完整流程先說最常用的GEOSTATIC自動平衡法。假設(shè)你要做一個水平地層的隧道開挖模型地表水平模型范圍200m×100m隧道埋深30m。整體流程是建幾何、賦材料、裝配、設(shè)分析步、加荷載和邊界、定義初始應(yīng)力、提交計算。材料參數(shù)里必須包含密度和彈性模量、泊松比。密度是地應(yīng)力計算的第一要素沒有密度重力就無從談起。分析步方面第一步必須設(shè)置為Geostatic而不是默認(rèn)的Static, General。在Abaqus/CAE里Step模塊下選擇Create StepProcedure type選General然后找到Geostatic點(diǎn)開之后一般保持默認(rèn)設(shè)置即可。求解過程中允許迭代修正初始應(yīng)力所以建議把增量步數(shù)設(shè)為一個較大的值比如100防止第一次迭代就報錯。邊界條件方面推薦的做法是模型底部約束豎向位移左右兩側(cè)約束水平位移前后兩面如果是二維模型就是平面應(yīng)變約束約束對應(yīng)自由度。這樣模型在重力作用下不會整體剛體移動又能自由產(chǎn)生側(cè)向變形。如果模型很大你也可以用“底部豎向約束兩側(cè)法向約束”的常規(guī)巖土約束組合。荷載方面在Load模塊里創(chuàng)建重力荷載施加重力加速度方向沿Y軸負(fù)向大小9.8。注意Abaqus里體積力的單位取決于你用的單位系統(tǒng)如果用國際單位m·kg·s重力加速度就是9.8如果用mm·t·s單位制重力加速度要寫成9800。單位不一致是地應(yīng)力平衡不收斂的第一大原因務(wù)必先確認(rèn)。關(guān)鍵一步是設(shè)置初始應(yīng)力。在CAE中可以通過Load模塊的Predefined Field創(chuàng)建也可以直接修改inp文件。我更推薦在inp文件里增加關(guān)鍵字因?yàn)榭吹们宄卜奖愫笃谂空{(diào)整。在*Step, nameGeostatic之前插入*Initial Conditions, typestress, geostatic Eall, 0., 1000000., 0., -100., 0.65, 0.65這行的含義是單元集Eall在深度坐標(biāo)y0處的豎向應(yīng)力為0在y-100處的豎向應(yīng)力為1MPa模型頂面坐標(biāo)是0底面坐標(biāo)是-100水平側(cè)壓系數(shù)K0在面內(nèi)為0.65面外也為0.65。Abaqus會根據(jù)這兩個深度點(diǎn)的豎向應(yīng)力按線性關(guān)系插值出整個模型每一點(diǎn)的豎向應(yīng)力再乘以K0得到水平應(yīng)力。這里有個細(xì)節(jié)容易搞錯應(yīng)力值必須帶正負(fù)號Abaqus默認(rèn)壓應(yīng)力為負(fù)但Geostatic這種輸入格式它內(nèi)部會自動按土壓力習(xí)慣處理。更規(guī)范的做法是參考手冊里的符號規(guī)定最好先在簡單模型上試一次確保應(yīng)力的正負(fù)方向符合預(yù)期。提交計算后打開ODB看第一步的位移云圖。如果初始地應(yīng)力設(shè)置正確位移量級應(yīng)該非常小理想情況下達(dá)到10??m以下很多模型甚至能到10??m。如果位移云圖整體是紅彤彤向下沉的說明初始應(yīng)力與重力不匹配需要檢查K0、密度、邊界條件和單位。3.2 用SIGINI子程序一個可直接套用的Fortran模板SIGINI用起來其實(shí)不難它的核心邏輯是Abaqus在每個積分點(diǎn)開始計算前調(diào)用你寫的子程序你根據(jù)傳入的坐標(biāo)COORDS把該點(diǎn)的初始應(yīng)力分量賦值給SIGMA數(shù)組。先記住Fortran模板SUBROUTINE SIGINI(SIGMA,COORDS,NTENS,NCRDS,NOEL,NPT, * LAYER,KSPT,LREBAR,NAMES) INCLUDE ABA_PARAM.INC DIMENSION SIGMA(NTENS), COORDS(NCRDS) CHARACTER*80 NAMES(2) REAL rho, g, depth, K0 rho 2000.0 g 9.8 depth -COORDS(2) K0 0.65 SIGMA(1) -rho*g*depth SIGMA(2) -K0*rho*g*depth SIGMA(3) -K0*rho*g*depth SIGMA(4) 0.0 RETURN END這段代碼默認(rèn)你的重力方向是Y負(fù)向所以COORDS(2)是Y坐標(biāo)depth取負(fù)號后變成正值深度。SIGMA(1)是Y方向的正應(yīng)力也就是豎向應(yīng)力SIGMA(2)和SIGMA(3)是兩個水平方向的正應(yīng)力SIGMA(4)是剪切分量。對于平面應(yīng)變模型NTENS3或4需要根據(jù)實(shí)際的應(yīng)力分量順序調(diào)整。寫完子程序后需要在模型關(guān)鍵字里聲明使用SAF。在*Initial Conditions里面把type改成user*Initial Conditions, typestress, user然后在Job模塊提交任務(wù)時在Edit Job的General選項(xiàng)卡里把Fortran子程序文件添加進(jìn)去或者用命令行提交abaqus jobjobname usersigini.for調(diào)試SIGINI時有個很實(shí)用的技巧在子程序里臨時加一段文件輸出代碼把COORDS和SIGMA的值打印到一個txt文件里。這樣提交一個小模型后直接打開txt看各點(diǎn)的應(yīng)力是否正確。不要一上來就跑大模型先搞一個10×10的簡單模型驗(yàn)證等應(yīng)力分布符合預(yù)期了再上線。這樣調(diào)試速度快也避免被Abaqus的各種報錯信息繞暈。3.3 用ODB文件導(dǎo)入法從已有模型無縫傳遞應(yīng)力場ODB導(dǎo)入法比較適合“地應(yīng)力場很復(fù)雜已經(jīng)算好了一個穩(wěn)定應(yīng)力場要在它的基礎(chǔ)上接著做工程分析”的情況。我常用的流程是這樣先用一個不帶開挖的完整地質(zhì)模型在Static, General分析步里只施加重力和邊界條件算出穩(wěn)定狀態(tài)下的應(yīng)力場。這個模型可以包含起伏地形、多層地層、斷層影響只要你覺得它足夠真實(shí)就行。算完之后正式工程模型的開挖部分通常要在這個地質(zhì)模型上“切”出來。為了省去重新設(shè)置初始應(yīng)力的麻煩我會在正式模型的關(guān)鍵字里加入*Initial Conditions, typestress, filegeostatic.odb這個寫法的意思是從geostatic.odb這個輸出數(shù)據(jù)庫里讀取應(yīng)力場作為正式模型的初始應(yīng)力條件。注意兩個模型的幾何位置和坐標(biāo)系必須完全一致否則應(yīng)力場映射會出錯。如果你的正式模型網(wǎng)格和地質(zhì)模型網(wǎng)格不完全一致Abaqus會根據(jù)網(wǎng)格節(jié)點(diǎn)坐標(biāo)做插值通常問題不大但網(wǎng)格差異過大會導(dǎo)致應(yīng)力場不光滑。還有一種常見做法是把應(yīng)力場導(dǎo)出成數(shù)據(jù)文件再用*Initial Conditions, typestress, inputxxx.dat讀入。數(shù)據(jù)文件格式一般是單元號或單元集名然后跟著S11、S22、S33、S12等應(yīng)力分量。這個方法的好處是你可以在導(dǎo)入前對數(shù)據(jù)進(jìn)行后處理比如人為調(diào)整K0、濾掉某些奇異點(diǎn)的應(yīng)力值。缺點(diǎn)是數(shù)據(jù)文件可能很大手動編輯不現(xiàn)實(shí)最好通過Python腳本自動生成。更詳細(xì)的格式建議參考Abaqus Keywords Reference Manual不同版本之間稍微有點(diǎn)差異。3.4 判斷地應(yīng)力平衡成功的3個硬指標(biāo)很多朋友做完地應(yīng)力平衡后不確定自己到底算沒算對就盯著云圖顏色瞎猜。我總結(jié)了三個可量化的硬指標(biāo)滿足這三條基本就算平衡成功。第一條第一步分析能收斂。Geostatic分析步如果一直不收斂或者每步都瘋狂迭代說明初始應(yīng)力與荷載或者邊界條件不匹配。此時先不要急著往下算趕緊檢查材料參數(shù)、單位、約束和應(yīng)力輸入。第二條位移量級足夠小。在ODB里查看第一個分析步結(jié)束時的U magnitude好的平衡結(jié)果是10??m以下稍差一些也要在10?3m量級。如果你的模型尺寸是幾百米位移超過0.01m基本就是不合格的需要在后面分析里人為減去初始位移或者重新修正初始應(yīng)力。第三條應(yīng)力場分布合理。查看S22豎向應(yīng)力云圖應(yīng)該基本隨深度線性增加且最大值接近ρgh理論值水平應(yīng)力S11大約等于K0倍豎向應(yīng)力。每條深度的應(yīng)力曲線拉出來應(yīng)該是一條平滑直線。如果應(yīng)力云圖里面出現(xiàn)斑塊狀、鋸齒狀多半是網(wǎng)格質(zhì)量或者初始應(yīng)力插值出了問題。4. 初始地應(yīng)力場設(shè)置中的常見報錯與排查技巧4.1 自動平衡不收斂、負(fù)特征值先看這6個原因做初始地應(yīng)力場時最常見的報錯是Geostatic分析步不收斂或者出現(xiàn)負(fù)特征值警告。我自己排查這類問題基本按下面這個順序來命中率很高。第一單位不一致。密度、尺寸、彈性模量、重力加速度任何一個單位沒統(tǒng)一應(yīng)力場就會錯得離譜。檢查方式很簡單算一下模型最深處的理論自重應(yīng)力ρgh再對比初始條件里輸入的應(yīng)力值量級不應(yīng)該差太多。第二缺邊界條件或約束不足。模型如果缺少必要的約束在重力和初始應(yīng)力平衡過程中會出現(xiàn)剛體移動Abaqus會報零主元或負(fù)特征值。記住巖土模型的標(biāo)準(zhǔn)配置底邊固定豎向左右兩側(cè)約束法向必要時還應(yīng)在前后方向加約束。第三材料參數(shù)有問題。彈性模量太小、泊松比取值異常、密度沒賦上都會導(dǎo)致收斂困難。特別是有些模型用了線彈性材料彈性模量低到幾十MPa又剛好處于高應(yīng)力區(qū)變形量太大平衡就很困難。第四初始應(yīng)力輸入方向或數(shù)值符號不對。Geostatic數(shù)據(jù)行的應(yīng)力值正負(fù)搞反、側(cè)壓力系數(shù)填得太大都會讓初始應(yīng)力與重力不匹配。第五網(wǎng)格質(zhì)量太差。長細(xì)比夸張的單元、嚴(yán)重扭曲的單元在應(yīng)力平衡時會產(chǎn)生局部奇異Abaqus計算不收斂的概率會明顯上升。第六模型里有不該參與初始平衡的接觸或邊界條件。比如你設(shè)置了接觸對、彈簧、阻尼器它們會干擾Geostatic分析步的平衡過程。對于這類組件建議在初始應(yīng)力平衡階段通過Model Change將它們暫時移除或者不在此階段激活等平衡完成后再激活。4.2 初始應(yīng)力與塑性屈服同時出現(xiàn)怎么辦深埋高應(yīng)力區(qū)做地應(yīng)力平衡時還有一個讓人頭疼的報錯initial stress exceeds yield stress或者說初始應(yīng)力已經(jīng)超過材料屈服強(qiáng)度。這在高埋深軟巖、高地應(yīng)力區(qū)很常見。Abaqus在力平衡前要檢查初始應(yīng)力是否在屈服面內(nèi)如果不在會產(chǎn)生大量塑性應(yīng)變平衡就亂了。處理辦法有三條路。第一條把第一步平衡分析改為彈性模型。也就是說先用線彈性材料跑地應(yīng)力平衡讓應(yīng)力場穩(wěn)定下來然后在中途切換到彈塑性材料通過Field或材料狀態(tài)變量把泊松比、屈服強(qiáng)度等參數(shù)更新成真實(shí)值。第二條如果材料本來就是彈塑性可以在初始應(yīng)力設(shè)置時把應(yīng)力水平整體調(diào)低一點(diǎn)確保初始狀態(tài)處于彈性范圍內(nèi)再在后續(xù)分析中通過荷載逐步增加到真實(shí)應(yīng)力。第三條使用自動平衡并配合Abaqus的初始應(yīng)力修正讓Abaqus在迭代過程中自動調(diào)整應(yīng)力使其回歸屈服面。這種方法需要特別小心因?yàn)锳baqus可能會將超出屈服面的應(yīng)力投影回屈服面導(dǎo)致初始應(yīng)力場與目標(biāo)應(yīng)力場產(chǎn)生偏差。我個人的建議是對于深埋高應(yīng)力巖體優(yōu)先采用“彈性試算塑性切換”的方式。先算出一個滿足平衡條件的彈性初始應(yīng)力場確認(rèn)位移清零后再通過重啟動或者Field切換材料參數(shù)。這樣做既保證了初始應(yīng)力場穩(wěn)定又允許后續(xù)分析充分反映塑性行為。4.3 環(huán)境類問題速查libpng error、GPU加速、中斷卡死除了模型本身的問題Abaqus運(yùn)行環(huán)境也會在初始地應(yīng)力調(diào)試階段搗亂。按你搜到的熱詞我整理幾個常見的環(huán)境坑。一是libpng error。這個錯誤通常在Abaqus啟動或者打開CAE、ODB時彈出表現(xiàn)為一個帶“l(fā)ibpng error”字樣的警告框有些版本會直接導(dǎo)致圖形界面異常。多數(shù)情況是顯卡驅(qū)動與Abaqus自帶的圖形庫不兼容。解決辦法更新顯卡驅(qū)動在環(huán)境文件abaqus_v6.env里設(shè)置相關(guān)圖形選項(xiàng)如果還不行可以在命令行提交計算完全繞開圖形界面。這個問題不影響inp模型的求解所以遇到時不用太慌。二是GPU加速。Abaqus/Explicit支持GPU加速Abaqus/Standard從部分版本開始也能用GPU加速某些求解器。啟用GPU之前先確認(rèn)你的顯卡型號、驅(qū)動版本、CUDA版本和Abaqus版本匹配。如果不匹配最直接的表現(xiàn)就是計算中途報錯或者速度反而更慢。地應(yīng)力平衡這類小模型通常用不到GPU建議關(guān)閉GPU加速用CPU多核跑反而更穩(wěn)。三是運(yùn)行中中斷不了。Job運(yùn)行時點(diǎn)Stop沒反應(yīng)或者卡在“Writing ODB”這一步。常見原因是系統(tǒng)資源占用過高或者ODB文件被其他程序鎖定??梢韵葒L試等一會兒如果還不行就打開任務(wù)管理器結(jié)束Abaqus相關(guān)進(jìn)程。寫ODB時被殺進(jìn)程容易留下?lián)p壞的ODB文件下次計算前建議把原ODB刪掉或者另存一個新名稱。四是“節(jié)點(diǎn)沒有連接到任何單元”的警告。某些網(wǎng)格操作或刪除單元后模型里會殘留孤立節(jié)點(diǎn)。這類節(jié)點(diǎn)不參與計算但會在輸出診斷信息里反復(fù)出現(xiàn)干擾你判斷真正的報錯。找孤立節(jié)點(diǎn)可以用Mesh模塊的Verify功能檢查也可以用Python腳本遍歷網(wǎng)格把沒有歸屬單元的節(jié)點(diǎn)ID列出來然后通過Edit Mesh或者重新建模清理掉。我把這些環(huán)境坑放進(jìn)速查表便于對照現(xiàn)象常見原因建議操作libpng error彈窗顯卡驅(qū)動/圖形庫兼容問題更新驅(qū)動、設(shè)置圖形環(huán)境變量、用命令行計算GPU啟用后報錯/變慢CUDA版本或驅(qū)動不匹配關(guān)閉GPU使用CPU多核計算Job Stop無響應(yīng)ODB寫盤卡死/資源占用高結(jié)束相關(guān)進(jìn)程清理舊ODB后重啟孤立節(jié)點(diǎn)警告網(wǎng)格刪除/前處理殘留用Verify或Python腳本定位并清理5. 進(jìn)階實(shí)戰(zhàn)焊接仿真、cohesive單元和Voronoi模型中的應(yīng)力場處理5.1 焊接仿真為什么不能直接照搬地應(yīng)力平衡的思路焊接仿真在Abaqus里越來越多見但要注意焊接中的“應(yīng)力”和巖土中的“初始地應(yīng)力”并不完全是一回事。焊接模擬的核心是熱-力耦合材料經(jīng)歷快速升溫、局部熔化、冷卻收縮最終形成殘余應(yīng)力場。巖土里所謂的初始地應(yīng)力是為了在計算開挖前讓模型處于自平衡的天然應(yīng)力狀態(tài)而焊接模擬里你通常不是先給整個工件一個“初始應(yīng)力”而是通過移動熱源逐步把熱應(yīng)力算出來。真正和“初始應(yīng)力場”沾邊的是多道焊模擬。焊接完第一道之后工件里已經(jīng)存在殘余應(yīng)力第二道焊要在這個殘余應(yīng)力基礎(chǔ)上繼續(xù)計算。這時候就可以把第一道焊接算出來的應(yīng)力場通過ODB導(dǎo)入或者重啟動的方式作為第二道焊的初始狀態(tài)。方法上可以參考第3.3節(jié)ODB導(dǎo)入法但要注意焊接模型里還有溫度場、材料狀態(tài)、單元生死等額外變量導(dǎo)入時必須把溫度和相關(guān)狀態(tài)變量一起傳遞不能只傳應(yīng)力。否則第二道焊的溫度場和應(yīng)力場對不上計算結(jié)果虛得沒法看。5.2 cohesive單元搭配Voronoi模型做巖石破裂時初始地應(yīng)力怎么給cohesive單元和Voronoi模型的組合現(xiàn)在很多做巖石破裂、混凝土斷裂、多晶材料損傷的朋友都在用。Voronoi模型把材料劃分成很多不規(guī)則的多邊形“塊體”cohesive單元則鋪在塊體邊界上用來模擬裂縫的萌生和擴(kuò)展。這種模型在引入初始地應(yīng)力時會踩一個很典型的坑初始應(yīng)力平衡階段cohesive單元在還不需要開裂的時候就已經(jīng)提前損傷甚至破壞了。原因是地應(yīng)力平衡階段單元之間會有很大的壓應(yīng)力或者剪應(yīng)力如果cohesive單元的損傷初始閾值設(shè)置得比較低或者初始剛度比較小它可能在平衡過程中就被“壓壞”了。等后續(xù)正式加載時模型里全是已經(jīng)損傷的cohesive單元裂紋還沒加載就出現(xiàn)了完全失真。我有兩個比較實(shí)用的處理思路。一個是在初始地應(yīng)力平衡階段暫時不讓cohesive單元參與計算??梢酝ㄟ^Model Change功能把cohesive單元所在的set在Geostatic分析步開始時移除等平衡完成后的下一個分析步再重新激活。重新激活時cohesive單元雖然沒有繼承初始應(yīng)力但對于裂縫模擬來說只要塊體單元已經(jīng)處于正確的應(yīng)力狀態(tài)cohesive的初始應(yīng)力可以通過界面本構(gòu)的初始間隙間接體現(xiàn)很多研究都是這樣簡化的。另一個思路是把cohesive單元的損傷起始位移在初始平衡階段設(shè)得非常大同時保持彈性剛度足夠大讓它在這個階段“堅不可摧”等平衡完成后再通過材料參數(shù)切換把真實(shí)損傷參數(shù)換回來。這兩種方法我都試過Model Change方式更干凈但對單元重激活時的數(shù)值穩(wěn)定要求更高參數(shù)切換方式操作起來直觀但要注意切換瞬間可能帶來應(yīng)力突變。具體選哪種要看你研究問題的重點(diǎn)。如果是做巖石破裂過程我推薦用Model Change把cohesive單元的影響留到真正加載階段。5.3 初始地應(yīng)力場與后續(xù)動力分析、開挖卸載的配合最后再說一個經(jīng)常被忽略的銜接問題。初始地應(yīng)力平衡完之后后續(xù)分析可能是靜力開挖也可能是地震動力響應(yīng)這兩者對初始應(yīng)力場的要求不完全一樣。靜力開挖相對簡單平衡完直接進(jìn)入開挖步即可位移云圖會從接近于零的初始狀態(tài)重新變化。但動力分析時要特別注意初始應(yīng)力場必須能平穩(wěn)地轉(zhuǎn)入動力分析步否則在第一個動力增量步會產(chǎn)生巨大的不平衡力相當(dāng)于給模型來了一記瞬間沖擊。處理方法是在轉(zhuǎn)入動力分析之前先加一個Static, General穩(wěn)態(tài)分析步讓地應(yīng)力平衡后的應(yīng)力場平穩(wěn)過渡到動力分析的初始狀態(tài)或者在動力分析中使用*Initial Conditions續(xù)傳應(yīng)力場并結(jié)合阻尼設(shè)置吸收可能出現(xiàn)的數(shù)值振蕩。另外開挖卸載模擬中如果要用到單元生死被移除的單元里的初始應(yīng)力也要按順序釋放不能一下子全去掉否則會在開挖邊界上產(chǎn)生劇烈的應(yīng)力重分布導(dǎo)致周圍單元瞬間進(jìn)入塑性。更合理的做法是通過多個分析步分級降低被挖單元的模量模擬應(yīng)力逐步釋放的過程再移除單元。我自己做這類項(xiàng)目時有個習(xí)慣無論用什么方法設(shè)置初始應(yīng)力場都會在正式計算前單獨(dú)跑一個“地質(zhì)模型初始應(yīng)力平衡”的小版本把平衡結(jié)果和理論值核對一遍。這一步工作看起來多花了幾分鐘卻能避免后面整個工程模型因?yàn)橐粋€初始應(yīng)力錯誤而白跑幾天。尤其是模型里同時有Voronoi、cohesive、熱力耦合這些復(fù)雜要素時前期的地應(yīng)力平衡越扎實(shí)后面的問題越少。