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