【PFC6.0】重力放大法誘導分析巖質邊坡破壞面

0 引言

    完整的巖塊一般強度比較大,天然的狀態不會使得巖質邊坡發生破壞。而巖體和巖塊的概念是兩個,巖體指的是含有天然裂紋的巖塊。所以相對于巖塊,巖體在天然狀態下的強度會比完整的巖塊小很多。

    往往巖質邊坡發生破壞無非以下幾個因素:1、降雨使得巖石的裂紋充填物強度降低,發生破壞。2、工程使得原有的應力發生重分布。3、地震荷載使得巖體中的裂紋發育貫通形成滑裂面。

    本文邊坡誘導破壞使用的并不是上述幾個因素。重力放大法誘導破壞是有限元理論中經常遇到的一個方法,這種情況在現實中基本不會發生。但是誘導邊坡破壞會強制性的產生滑裂面,對邊坡的漸變破壞分析可以提供一定的參考。

1 成樣

    這里還是比較經典的成樣,不去贅述。

model new def chicun_par    sample_width=3    sample_hight=sample_width*0.5        keli_rdmin=0.004    keli_rdmax=0.006end@chicun_par

model domain extent [-sample_width] [sample_width] [-sample_hight] [sample_hight]

model random 10001wall generate box [-sample_width*0.5] [sample_width*0.5] [-sample_hight*0.5] [sample_hight*0.5] expand 1.5



ball distribute group "shiyang" radius [keli_rdmin] [keli_rdmax] porosity 0.12 ...    box [-sample_width*0.5] [sample_width*0.5] [-sample_hight*0.5] [sample_hight*0.5]



cmat default type ball-facet model linear method deform emod 100e6 kratio 1.5 cmat default type ball-ball model linear method deform emod 100e6 kratio 1.5  ball attribute density 2.7e3 damp 0.7model cycle 2000 calm 50

ball delete range pos-x [-sample_width*0.5] [sample_width*0.5] notball delete range pos-y [-sample_hight*0.5] [sample_hight*0.5] notmodel solve



model save "sample"

2、預壓

    預壓這里采用內置的sevro命令,不停的更新伺服力的大小,使得墻體達到指定的壓力。

model restore "sample"[tyy=-1e6][txx=-1e6]fish def WallInit    wpBtm=wall.find(1)    wpTop=wall.find(3)    wpLeft=wall.find(4)    wpRight=wall.find(2)end@WallInit

wall servo activate true range id 1 4

fish def CalChicun    wlx=wall.pos.x(wpRight)-wall.pos.x(wpLeft)    wly=wall.pos.y(wpTop)-wall.pos.y(wpBtm)end

fish def UpdataForce    whilestepping    CalChicun    wall.servo.force.y(wpTop)=tyy*wlx    wall.servo.force.y(wpBtm)=-tyy*wlx    wall.servo.force.x(wpRight)=txx*wly    wall.servo.force.x(wpLeft)=-txx*wlyendmodel cycle 1model solvemodel save "yuya"

3、加膠結

    這里采用比較常規的灰巖參數,進行加膠結。

model restore "yuya"

[pb_coh=12.196e6][ten_coh=2.7][emod=2.114e9]

contact cmat default type ball-facet model linear method deformability ...            emod @emod kratio 1.5 contact cmat default type ball-ball model linearpbond method deformability ...            emod @emod kratio 1.5 pb_deformability emod @emod kratio 1.5 ...    property pb_coh [pb_coh] pb_ten [pb_coh*ten_coh] pb_fa 45.7 fric 0.1 contact cmat applymodel clean

model cycle 1model solve

contact method bond gap [keli_rdmin*0.5]

model cycle 1 model solve

model save "jiajiaojie"

4、自重

    這里利用離心機原理,使得應力分布達到80*40的式樣狀態。

model restore "jiajiaojie"wall servo activate false range id 1 4wall attribute velocity 0 0 wall delete walls range id 3fish def UpdataForce    end[chicun_n=80/wlx]

model gravity [9.8*chicun_n]



model cycle 1 model solve

model save "zizhong_0"

5、削坡

    這里使用半平面plane和豎向坐標取交集來進行削坡

program call "fracture.p2fis"@track_init[pojiao_x=wlx*0.05][pojiao_y=-wly*0.1][jiaodu=80]ball delete range plane origin @pojiao_x @pojiao_y ...        dip @jiaodu pos-y @pojiao_y [wly]    model cycle 1 model solve

6、重力放大誘導

    我初期是在削坡后,不斷的增加重力,使得其發生破壞。但是這樣會有一個問題,測試發現位移最大的地方在左側邊界上。這個和實際是不匹配的。

    于是轉換思路,將重力放大放在自重環節,每次重力放大后再進行削坡。由于涉及到調用sav文件,所以不能采用fish進行循環調用。當然手動的話,可以一次次修改重力的值。我這里使用python來進行調用。

    下面為使用python循環來進行自重增加和削坡,其中收斂條件為碎塊數超過50個。每次重力增加10倍原有重力。

import itasca as itit.command("python-reset-state false")it.command(" program call \"1chengyang\"")it.command(" program call \"2yuya\"")it.command(" program call \"3jiajiaojie\"")it.command(" program call \"4zizhong\"")stopFlag=Falsen_scale=1def test():    stopFlag=False    n_scale=1    while stopFlag==False:        zizhongFileName="\"zizhong_"+str(n_scale-1)+"\""        zizhongRestore="model restore "+zizhongFileName        it.command(zizhongRestore)               chicun_n=it.fish.get("chicun_n")        gravity_mag=9.8*chicun_n*(n_scale*10+1)        gravitySet="  model gravity "+str(gravity_mag)        it.command(gravitySet)        it.command("  model cycle 1 ")        it.command("  model solve")        zizhongFileName1="\"zizhong_"+str(n_scale)+"\""        zizhongSave="model save "+zizhongFileName1        it.command(zizhongSave)        it.command("ball attribute displacement multiply 0")        it.command("  program call \"5xuepo\"")        fileName="\"jieguo_"+str(n_scale)+"\""        saveSet="model save "+fileName        it.command(saveSet)        n_scale+=1        fgNum=it.fish.get("fg_num")        if fgNum>50:            stopFlag=Truetest()

7、巖質邊坡破壞

    這里的工況是在第十次計算就發生了破壞,破壞發生在坡腳。不做具體的分析。

【PFC6.0】重力放大法誘導分析巖質邊坡破壞面的圖1

8、含軟弱層巖質邊坡破壞

    很多巖質邊坡由于沉積和構造的作用,會是互層的?;颖厝粫怯熊浫醯膶樱袌杂驳膶?。

    這里的技術方法是先對顆粒進行分組。這里也是使用plane關鍵詞,不過不是用半平面的概念,而是用distance來構造某一長條區域。然后對此組顆粒賦予較弱的屬性。

model restore "yuya"



[jianju=keli_rdmax*10][kuandu=keli_rdmax*3][jiaodu=30]ball group "ying" ball group "ruan" range plane origin 0 0 dip [jiaodu] distance [kuandu*0.5]def add_ruan_up    pos_x=0    pos_y=0    loop while pos_x<wlx*0.5        pos_x+=(jianju+kuandu)*math.cos(jiaodu*math.pi/180.0)        pos_y+=(jianju+kuandu)*math.sin(jiaodu*math.pi/180.0)        command            ball group "ruan" range plane origin [pos_x] [pos_y] dip [jiaodu] distance [kuandu*0.5]        endcommand    endloopend@add_ruan_up

def add_ruan_down    pos_x=0    pos_y=0    loop while pos_x>-wlx*0.5        pos_x-=(jianju+kuandu)*math.cos(jiaodu*math.pi/180.0)        pos_y-=(jianju+kuandu)*math.sin(jiaodu*math.pi/180.0)        command             ball group "ruan" range plane origin [pos_x] [pos_y] dip [jiaodu] distance [kuandu*0.5]        endcommand    endloopend@add_ruan_down

[pb_coh=12.196e6][ten_coh=2.7][emod=2.114e9]

contact cmat default type ball-facet model linear method deformability ...            emod @emod kratio 1.5

[pb_coh=12.196e6][ten_coh=2.7][emod=2.114e9]contact cmat default type ball-facet model linear method deformability emod @emod kratio 1.5contact cmat default type ball-ball model linearpbond method deformability ...            emod @emod kratio 1.5 pb_deformability emod @emod kratio 1.5 ...    property pb_coh [pb_coh] pb_ten [pb_coh*ten_coh] pb_fa 45.7 fric 0.1    contact cmat add 1 model linearpbond method deformability ...            emod @emod kratio 1.5 pb_deformability emod @emod kratio 1.5 ...    property pb_coh [pb_coh] pb_ten [pb_coh*ten_coh] pb_fa 45.7 fric 0.1 range group "Default=ying" match 2contact cmat add 2 model linearpbond method deformability ...            emod [emod*0.2] kratio 1.5 pb_deformability emod [emod*0.2] kratio 1.5 ...    property pb_coh [pb_coh*0.2] pb_ten [pb_coh*ten_coh*0.2] pb_fa 45.7 fric 0.1 range group "Default=ruan" match 2

   contact cmat applymodel clean

model cycle 1model solve

contact method bond gap [keli_rdmin*0.5]

model cycle 1 model solve

model save "jiajiaojie"

下圖為加完軟弱層后的巖體。

【PFC6.0】重力放大法誘導分析巖質邊坡破壞面的圖2

后續的代碼和完整巖質邊坡一模一樣,這里給出最后的破壞圖:

【PFC6.0】重力放大法誘導分析巖質邊坡破壞面的圖3


【PFC6.0】重力放大法誘導分析巖質邊坡破壞面的圖4


    上圖為典型的順傾巖層,可以看到和完整的巖質邊坡相比,其反應的特性更加弱一點。

    下圖為反傾巖層的破壞模式??梢园l現反傾巖層相對于順傾巖層,其擁有更高的穩定性。


【PFC6.0】重力放大法誘導分析巖質邊坡破壞面的圖5


【PFC6.0】重力放大法誘導分析巖質邊坡破壞面的圖6








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

TOP

8
5
2