层理岩体的蠕变特性总让人又爱又恨。今儿咱们拿PFC2D整点有意思的——单级加载直接怼到位,分级加载玩心跳分阶段,最后再搞个剪切蠕变收尾。别慌,咱用代码说话
PFC2D层理岩体单级/分级蠕变含剪切蠕变模拟先整点基础活创建层理模型得注意节理面的bond设置。下面这段是生成层理岩体的核心ball generate box -10 10 -5 5 radius 0.1 0.15 contact cmat default model linearpbond contact cmat add 1 model linearbond ... [这里接具体的刚度、强度参数]关键在contact cmat add后面那串参数特别是tension和shear的peak值直接影响层间滑移。建议bondkn比bondks大个2-3倍毕竟层理面抗压不抗剪。单级加载简单粗暴适合急性子fish define apply_load loop local ball ball.list if ball.pos.y 3.0 ball.force.app vector(0, -1e5) endif endloop end这个fish函数直接给上层颗粒拍砖1e5的力一步到位。跑起来记得用history记录位移当看到位移曲线从陡变缓再趋稳说明进入稳态蠕变阶段。分级加载就得讲究节奏感了。在单级代码基础上加个循环控制fish define step_load local load_level 0 loop while load_level 5 load_level load_level 1 apply_load(load_level*2e4) ;每次加2e4 command solve time 1e4 ;每级维持1e4时步 endcommand endloop end注意每级加载后要给solve足够的驰豫时间这时候用fish的command嵌套特别管用。观察位移曲线应该呈现阶梯状上升每级之间的平台期长度能反映岩体流变恢复能力。PFC2D层理岩体单级/分级蠕变含剪切蠕变模拟剪切蠕变得玩点花的在法向力基础上叠加剪切分量contact property ks 1e8 kd 5e7 fish define shear_creep loop local cnt contact.list if contact.prop(cnt,mat) 2 ;假设层理面是材料2 contact.force.app.shear.x 5e4 endif endloop end这里直接对接触面施加剪切力ks是剪切刚度别设太高否则容易数值爆炸。建议边加载边监测剪切位移当发现位移速率降到初始值1%以下基本可以判定进入衰减阶段。跑仿真时最容易栽在时步控制上。建议用:set timestep auto solve timestep_scale 0.3自动时步加个0.3的安全系数特别是分级加载阶段容易突然失稳。遇到过不收敛的情况先别急着砸键盘把contact list看看哪个接触点力异常八成是刚度参数设飘了。最后整个数据记录的骚操作history id 1 ball displacement id 100 ;跟踪id100颗粒 history id 2 energy kinetic plot create creep_curve plot add history 1 vs time边跑边画图才是王道位移-时间曲线要是出现剧烈抖动赶紧ctrlc保命回头调整阻尼系数。用能量曲线辅助判断系统稳定状态动能突然飙升就是失稳前兆。仿真这玩意儿就像熬汤参数火候到了自然出结果。记得多备几组对比实验层理面角度调个30°、60°试试说不定能抓到有意思的各向异性特征。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2505566.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!