
發布
注冊
/
登錄PFC6.0的案例
【PFC6.0】泰森多邊形區域劃分及顆粒填充
0 引言
前兩天發了【PFC6.0】隨機多邊形區域劃分及顆粒填充 的文章后,公眾號后臺收到了一些同學的留言。介紹了在PFC高版本軟件中,可以直接使用泰森多邊形進行rblock的生成。
于是乎我就趁這機會也升了一下目前使用的版本。上個文章采用的是PFC6.0.13,本文章采用PFC6.0.30進行測試。
1 成樣
泰森多邊形的rblock主要使用rblock construct 中的from-balls關鍵詞,所以在這之前需要生成ball的式樣。需要注意的是,from-balls采取的邊界是ball式樣的邊界,所以需要ball和facet之間的剛度大一點。
展開 【個人原創】PFC 6.0 二維雙軸分級靜力加載與動力擾動巖爆模擬代碼(含4種工況) ¥69
一套完整的 PFC 6.0 離散元原創算例,專為研究巖石在復雜應力路徑下的力學響應及巖爆(Rockburst)現象而設計。代碼實現了從初始圍壓保載到分級徑向加載,再到不同波形動力擾動的全過程模擬,邏輯嚴密,注釋清晰。
代碼集成了四種極具科研價值的加載工況,用戶可一鍵切換:
分級靜力加載:模擬深部巖體開挖過程中的應力重分布。
圍壓保載+徑向分級加載:嚴格模擬實驗室雙軸試驗過程,實現穩定的應力控制。
三角波(Triangle Wave)擾動加載:模擬具有線性增減特征的動力擾動。
正弦波(Sine Wave)擾動加載:模擬典型的地震波或機械振動擾動。
原創保載算法:解決了離散元模擬中應力波動大、難以穩定保載的痛點,確保在擾動施加前模型處于精確的平衡態。
分級擾動機制:支持設置多個擾動量級,觀察巖石從穩定到非穩定破壞的臨界狀態。
巖爆特征模擬:適用于研究巖石在動靜組合荷載下的能量釋放、碎屑彈射及裂紋演化規律。
參數化設計:頻率、振幅、加載速率及分級梯度均可通過變量輕松調節。
展開 【PFC6.0】三維Cluster模擬混合料混凝土
[-width*0.5] [width*0.5] [-width*0.5] [width*0.5] [-height*0.5] [height*0.5] ball attribute density 2e3 damp 0.7contact cmat default model linear method deform emod 100e6 kratio 1.5model cycle 2000 calm 50ball property "fric" 0.5model solvemodel save "sample"
結果如圖所示:
2 clump替換
這里還是用的上一個案例【【PFC6.0】三維Cluster碎石三軸模擬】的clump模板,這個工況對模板的要求不高,可以自行生成模板。
展開 pfc3.0 6.0 真三軸加載 ¥20
巖石真三軸試驗受制于設備與實驗方案的限制,往往較難開展,
利用PFC 3.0可以輕松地實現巖石三軸條件下的模擬實驗,
同時內置的函數可以有效的記錄模型受載過程中的裂紋及能量演化
應力應變曲線,裂紋
裂紋數量
能量

【PFC6.0】三維Cluster碎石三軸模擬
[-height] [height] wall attribute velocity-z [(height*0.5)/yasuo_time] range id 1wall attribute velocity-z [-(height*0.5)/yasuo_time] range id 2wall attribute velocity-x [(width*0.5)/yasuo_time] range id 3wall attribute velocity-x [-(width*0.5)/yasuo_time] range id 4 wall attribute velocity-y [(width*0.5)/yasuo_time] range id 5wall attribute velocity-y [-width*0.5/yasuo_time] range id 6solve time [yasuo_time*0.3] calm 10 solve time [yasuo_time*0.7]wall attribute velocity 0 0 0
model solve
model save "tihuan_clump"
6 碎石三軸----cluster替換
這里是我們主要的工作量了,模擬的概念是:
1)找到每一個clump,找到這個clump中每一個pebble的位置和半徑,在這個位置上生成同粒徑的ball
2)把這些顆粒打個組叫“jiaojie”,然后即時性的給這個組的顆粒附上pb模型,并且加上接觸。由于只針對這個組,且指定了match 2,所以“jiaojie”這個組和其余的組之間的接觸走default生成linear接觸。每次進行內應力的清零防止顆粒崩散。安全起見也fix一下。
展開 【PFC6.0】子*彈穿墻模擬
pos-z [-zhuan_height*1.6] [zhuan_height*1.6] wall-zone create name 'bianjie2' skip-errors range pos-x [zhuan_length*1.4] [-zhuan_length*1.6] ... pos-z [-zhuan_height*1.6] [zhuan_height*1.6] wall-zone create name 'bianjie3' skip-errors range pos-x [-zhuan_length*1.6] [zhuan_length*1.6] ... pos-z [zhuan_height*1.4] [zhuan_height*1.6] wall-zone create name 'bianjie4' skip-errors range pos-x [-zhuan_length*1.6] [zhuan_length*1.6] ... pos-z [-zhuan_height*1.6] [zhuan_height*1.4] contact cmat default type ball-ball model linearpbond method deform emod @emod kratio 1.5 ...
展開 【PFC6.0】隨機多邊形區域劃分及顆粒填充
model restore "rblock_slip"rblock export to-geometry "allgeo" cmat default type ball-facet model linear method deform emod 100e6 kratio 1.5 property fric 0.5cmat default type ball-ball model linear method deform emod 100e6 kratio 1.5 property fric 0.5def GetGeo geoname_count=1 loop foreach rb rblock.list groupName=string.build("geo_%1",geoname_count) idRblock=rblock.id(rb) command rblock export to-geometry @groupName range id @idRblock endcommand geoname_count+=1 endloopend@GetGeorblock delete
顆粒填充前我們需要把rblock的邊界都導出為geometry,方便后面根據區域進行顆粒生成。
可以看一下區域圖:
由于rblock有重疊,導致geometry也是有重疊的,所以顆粒的生成規則我們需要進行優化。
首先定一個考慮區域重疊的規則。
區域交集優先被id小的geometry使用。
展開 【PFC6.0】三維真實邊坡落石軌跡追蹤
rblock replicate "kuaishi" position -121 331 80contact cmat default model linear method deform emod 10e7 kratio 1.5 property fric 0.5
rblock attribute density 3e3 damp 0.2model gravity 9.8
[baocunpinlv=1][time_record=mech.time.total-100][count=0]def savefile if mech.time.total-time_record >= baocunpinlv then filename=string.build("jieguo%1",count) command model save @filename endcommand time_record=mech.time.total count +=1 endif endfish callback add @savefile -1.0
model mechanical timestep fix 1e-4rblock trace id 1 model solve time 70
rbock的形狀如圖:
這里計算結束后,顯示rblock的軌跡如圖:
邊坡正面:
側面:
這里也給出落石的動圖:
正面:
側面:
文章中的地形數據和塊石數據可以自行替換。
展開 【PFC6.0】重力放大法誘導分析巖質邊坡破壞面
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命令,不停的更新伺服力的大小,使得墻體達到指定的壓力。
展開 【PFC6.0.30】三維Cluster模擬GBM礦物晶粒巖石單軸
property pb_coh 10e6 pb_ten 10e6 pb_fa 50 fric 0.1 lin_mode 1cmat add 1 model linear method deform emod 10e9 kratio 1.5 ... property lin_mode 1 range contact type "ball-facet" cmat add 2 model linearpbond method deform emod 5e9 kratio 1.5 pb_deform emod 5e9 kratio 1.5 ... property pb_coh 15e6 pb_ten 15e6 pb_fa 50 fric 0.1 lin_mode 1 range fish @isRock1In cmat add 3 model linearpbond method deform emod 6e9 kratio 1.5 pb_deform emod 6e9 kratio 1.5 ... property pb_coh 18e6 pb_ten 18e6 pb_fa 50 fric 0.1 lin_mode 1 range fish @isRock2In cmat add 4 model linearpbond method deform emod 7e9 kratio 1.5 pb_deform emod 7e9 kratio 1.5 ...
展開 CAD導入的PFC-FLAC3D耦合真三軸沖擊 ¥39
一套成熟的PFC 6.0 與 FLAC3D 耦合的數值模擬腳本。重點解決在數值模擬中復雜幾何體建模難的問題,實現了通過 CAD直接導入轉化為 PFC3D 的幾何組(Geometry Group)及塊體組(Clump Group),并在此基礎上構建真三軸動力沖擊耦合模型。
CAD 復雜建模接口:支持從 CAD 建立復雜三維幾何模型,一鍵導入 PFC 6.0,自動完成 Geometry 到 Clump 的映射與填充,突破軟件自帶建模工具的形狀限制。
PFC-FLAC3D 精準耦合:實現離散元(PFC)與連續介質(FLAC3D)的無縫動力耦合,利用 FLAC3D 模擬遠場邊界效應,PFC3D 模擬核心破壞區。
真三軸動力加載系統:代碼預設了標準的真三軸初始地應力環境,并集成沖擊荷載(Dynamic Impact)觸發機制。
邏輯清晰的 clump group 與 geometry group 分類,方便后續的數據提取、云圖顯示及屬性賦值。
包含文件內容
PFC6.0代碼:包含模型初始化、CAD 導入、接觸定義。
FLAC代碼:處理 PFC 與 FLAC3D 交互界面的力學傳遞。
CAD 示例模型:提供一個標準的三維 CAD 幾何模型作為演示。
適用研究方向
深部巖石動力學與沖擊地壓研究。
復雜地質體的精細化建模。
巖土工程多尺度耦合分析。
展開 
顆粒流軟件PFC巴西劈裂三維模型、5.0單軸抗壓三維模型 ¥29.9
<p>pfc巖石標定<span style="color: rgb(18, 18, 18);">必備</span>模型試驗,可以自行轉,PFC6.0版本,抗壓強度和巴西劈裂試驗,內含微風化石灰巖參數</p><div contenteditable="false" width="100%"><figure class="figure-image" data-img="https://img.jishulink.com/202404/attachment/e23d19269388495abaa2ec82c0d2069e.png" style="text-align: center"><img src="https://img.jishulink.com/202404/attachment/e23d19269388495abaa2ec82c0d2069e.png" data-mobile-src="https://img.jishulink.com/202404/attachment/e23d19269388495abaa2ec82c0d2069e.png?image_process=/format,webp/resize,w_400" data-pc-src="https://img.jishulink.com/202404/attachment/e23d19269388495abaa2ec82c0d2069e.png?image_process=/format,webp/resize,w_760" data-initial-src="https://img.jishulink.com/202404/attachment/e23d19269388495abaa2ec82c0d2069e.png"></figure>
</div><p><br></p>
展開 周期性邊界真三軸標定參數研究示例 ¥69
本文,將基于PFC6.0模擬低應力水平的三軸壓縮,并復現了Ciantia[1]關于楓丹白露砂的參數研究,其中主要的難點在于編寫周期性邊界的應力伺服程序(參考了Help文件),試樣內孔隙比、配位數、顆粒級配、應力的測量。
模型描述
試樣尺寸:3mm×3mm×3mm立方體
邊界:整個模型沒有用wall,立面體邊界都是周期性邊界
土樣:模擬砂土,特定顆粒級配,采用赫茲接觸模型
顆粒級配:
接觸參數:(hertz接觸模型)
并禁止顆粒旋轉!!!
建模流程
首先是生成試樣、然后在等向壓力為10kPa下預壓到制定孔隙比(通過調節顆粒的摩擦系數)、接著各向同性固結到圍壓為100kPa、最后在z方向施加偏壓。
結果
生成的試樣并具有特定的級配:
預壓后得到了想要的孔隙率大概0.385:
各向同性固結到100kPa,看看此時的力鏈,還是很均勻的,邊界上并沒有特別的應力集中:
這里我們給出豎向應力(注意不是剪應力!)-豎向應變的關系圖
可以清晰的看到有一個小的應變軟化的階段,說明我們的試樣處于一個稍微偏密的狀態。
然后是體應變與豎向應變的關系:
也可以看出是先剪脹后剪縮的。
最后是和試驗對比的應力應變關系:(左本次模擬,右Ciantia文章中給出的結果)
偏應力-豎向應變:
左 右
體應變-豎向應變:
左
右
拓展
對于復雜顆粒形狀,比如PFC中由兩個球粘接而成的clump,在標定其參數的時候,使用墻邊界可能會導致很嚴重的邊界效應,而周期性邊界條件下的三軸壓縮能夠很好的解決這個問題!
說明
本文復現了一篇文獻中使用三軸壓縮標定參數的研究,您可以借助這份代碼進行您自己研究相關的參數標定。
展開 土石混合體的分層壓縮法
于是PFC6.0出現了塊體計算元素,本文主要講解clump來模擬塊體,而ball模擬砂土的分層壓縮法。只將體積大的用clump也可以有效率的進行計算。
一般來說我們生成的clump的數目不會特別多,這樣就對其均勻性要求比較高了。和砂土不一樣,砂土的均勻性體現在孔隙率的均勻上,而塊石的均勻性體現在分布上。如果不分層的話,很容易出現某些地方clump很多,而有些地方clump很少,這樣必然對破壞模式產生影響。
這部分實現原理也比較簡單,只要在生成顆粒的時候進行分流就可以了。先看一下本文的四種粒徑:
def par width=0.15 height= width*2 y_vel=10.0 cengshu=5.0 pengzhangxishu=5.0 tbjipei=table.create("jipei") table(tbjipei,0.003)=0.3 table(tbjipei,0.004)=0.5 table(tbjipei,0.01)=0.7 table(tbjipei,0.015)=1 poro=0.12 ;dengchaxian=0.02end
其中0.003和0.004粒徑的我們選擇用Ball去模擬,和0.01和0.015粒徑的我們使用clump去模擬。
首先我們需要準備好形狀文件并導入成clump模板。
展開 基于PFC3D與Flac3D耦合的SHPB壓桿模擬
0 引言
最近在熟悉PFC6.0的內容,對于6.0來說,其最大的突破就是實現了軟件內與FLAC3D的耦合。這其實解決了PFC很大的一個問題,就是顆粒數太多時計算力的限制,我們可以用網格單元作為邊界來弱化邊界效應,當然也可以和本文一樣,使用網格單元模擬金屬等連續性材料。
本文試著去模擬一個結構方向同學經常遇到的一個工況,霍普金森壓桿(SHPB)實驗,對于測量混凝土材料在高應變率下的力學特性有很大的參考價值。因為我這里也沒有看過這方面的實驗,僅從有限的資料大概理解其邊界設置,利用有限差分和離散元耦合來實現SHPB壓桿模擬,希望能給各位有一定的參考價值。
1 成樣、預壓、加膠結
首先是我們的離散元部分,這里進行常規的方式來生成一個圓柱形式樣。這里不再贅述了。
展開