多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

PFC平行粘结模型参数标定与岩石破坏模拟实战指南

PFC平行粘结模型参数标定与岩石破坏模拟实战指南 先给你提个醒如果你在搜索平台输入“PFC”大概率会被“图腾柱PFC”“无桥PFC”“三相PFC”这类电路词刷屏。那个PFC是Power Factor Correction功率因数校正跟咱们要聊的颗粒流软件完全不是一回事。这篇文章里的PFC是Itasca公司的Particle Flow Code离散元数值模拟工具而pb模型是其中应用最广的平行粘结模型parallel bond model。搞岩石力学、混凝土、陶瓷、砂土胶结问题的人几乎都会跟这套东西打交道。我最初接触pb模型时最头疼的就是参数——文档里一堆pb_emod、pb_kratio、pb_ten、pb_coh每个参数都能设置但设完跑出来的结果跟实验室曲线就是差得远。后来反复调参、翻手册、做了大量对比试验才慢慢摸清这套模型的脾性。这篇文章把我从胶结参数设置到破坏模拟的完整流程整理出来包括每个参数对应什么宏观现象、标定顺序怎么安排、破坏模拟中裂纹怎么解读、常见报错和“看起来正常但结果不对”的坑希望能帮你少走弯路。1. 项目核心定位为什么偏偏选pb模型1.1 PFC里的几种“胶”到底有什么区别刚开始用PFC的人都会面临一个选择模拟岩石类材料到底用接触粘结contact bond、平行粘结parallel bond还是平直节理flat-joint这三个模型看起来都能“把颗粒粘起来”但力学行为差异很大选错了后面全白忙。接触粘结是最简单的它只在两个颗粒接触点上提供一个“点胶水”能承受法向拉力和切向剪力一旦破坏就是瞬间断裂没有力-位移软化过程。它的好处是参数少、计算快但坏处也明显——它无法传递弯矩颗粒之间不能产生转动阻力所以模拟出来的材料破坏模式通常偏脆、偏散跟真实岩石那种“先微裂、再贯通、最后宏观失稳”的过程差距很大。平行粘结就不一样了。它除了点接触的力学响应之外还在两个颗粒之间建立了一个有横截面的“胶柱”这个胶柱能同时传递力、弯矩和扭矩相当于在颗粒之间加了一段可以考虑截面尺寸的梁。一旦某个局部应力超过粘结强度胶柱在局部断裂但周围颗粒还能继续承接荷载裂纹会逐渐扩展、汇合最终形成宏观破裂面。这跟真实岩石内部微裂纹萌生、扩展、连通的物理过程非常吻合。平直节理模型则更进一步它把颗粒接触面的粗糙度、咬合力和初始裂隙都考虑进去了模拟节理岩体或不规则颗粒的力学行为更真实但参数多标定周期长新手很容易陷进去。所以如果目标是模拟完整岩石、混凝土、陶瓷这类连续介质的破坏过程pb模型是性价比最高的选择——既有物理清晰度又不至于复杂到无从下手。1.2 平行粘结的力学本质颗粒之间那根“胶柱”是怎么工作的把pb模型拆开看它的核心思路其实不复杂。想象你手里有一堆圆滚滚的钢珠钢珠之间的接触点本来只能传压力但你往接触点浇了一团环氧树脂树脂凝固后把两颗钢珠粘在一起形成了一个圆柱形的胶柱。这个胶柱既能抗拉、抗压也能抗剪切、抗弯曲。在PFC里这个胶柱的力学响应由两部分叠加而成。第一部分是颗粒之间的线弹性接触处理的是“如果胶柱断了颗粒还能不能挤压、滑动”的问题第二部分是胶柱本身它在颗粒之间传递力F和力矩M。胶柱的应力状态按梁理论计算最大法向应力和剪应力都有限值一旦超限胶柱就断裂对应的力和力矩立即从模型中移除。这个断裂就是数值世界里的“微裂纹”。这里有个关键概念要搞清楚粘结断裂不等于宏观破坏。单个键断裂只是产生了一条微观裂纹材料还能继续承载只有当裂纹汇聚成带、形成贯通面宏观失稳才发生。这也是为什么pb模型能模拟出岩石那种“峰值前后有非线性变形、峰后有应变软化”的典型行为——它天然具备损伤演化的机制。2. 胶结参数逐项拆解每个参数都是什么意思2.1 几何与安装参数安装间隙、半径乘子很多人跑pb模型遇到莫名其妙的问题往往是栽在几何参数上而不是强度参数上。第一批要搞清楚的参数是粘结在什么时候“安装”、安装多大截面。PFC里平行粘结的安装通常依赖于接触形成和半径乘子。所谓半径乘子pb_rmul是用来确定粘结截面半径的系数。粘结截面半径不是直接输入的而是由这个系数乘以两个接触颗粒半径的较小值得到。默认情况下pb_rmul取1也就是粘结截面刚好等于颗粒接触面的投影半径。这带来的问题是粘结截面越大胶柱越“结实”宏观强度会明显偏高。我见过有人为了把一个参数调试到匹配室内强度把pb_rmul调到1.5甚至2结果破坏形态完全失真——试样中裂纹并不是从弱面自然发展而是到处同时爆裂因为粘结截面过大会人为增加材料均匀性。安装间隙installation gap也很容易忽略。PFC里颗粒之间如果没有间隙接触会自动生成粘结也随之安装但如果你设置了一个正的间隙值那么即使两个颗粒还没有真正接触只要距离小于这个值也能生成粘结。这种“远程粘结”模拟的是粉末成型材料或者胶结介质中的基体相但在模拟岩石类材料时通常不宜乱设。如果间隙设得太大会产生大量拉伸变形的初始键材料一加载就表现出异常高的韧性强度曲线变得很奇怪。还有一种情况是颗粒生成后静力平衡结算不彻底颗粒之间残留微小重叠粘结安装时的初始应力不是零这也会导致后续模拟结果异常。我的习惯是安装粘结之前一定要跑足够多的平衡步确认最大不平衡力降到一个很小的水平再安装键。2.2 刚度参数弹模与刚度比平行粘结的刚度参数主要有四个颗粒接触的法向刚度kn、切向刚度ks粘结的法向刚度pb_kn和切向刚度pb_ks。在PFC 6.0里用户通常不需要直接输入这四个刚度值而是通过pb_deformability方式来指定粘结的杨氏模量pb_emod和法向切向刚度比pb_kratio程序会自动把模量换算成每个键对应的刚度。这个设计的意图很明确让用户用宏观材料力学的语言去输入参数而不是跟刚度这种细观量较劲。pb_emod直接控制材料的宏观弹性模量它的数值一般从目标岩石的杨氏模量附近开始试。注意因为颗粒排列有孔隙、有随机性宏观弹性模量通常比pb_emod略低但接近大致的关系是宏观模量约为粘结模量的0.8到1.0倍具体取决于孔隙率和你选择的刚度比。pb_kratio控制的是粘结法向刚度与切向刚度之比它的作用主要体现在泊松比上。简单说刚度比越大横向变形越不活跃宏观泊松比越小刚度比越小材料越容易发生横向膨胀泊松比越大。如果你标定出来的泊松比偏大就去增大刚度比如果偏小就减小刚度比。作为起点岩石类材料一般取2到4之间。颗粒本身的接触刚度也不能忽略。很多人在调参时只改粘结刚度忘了颗粒线弹性接触的刚度。如果接触刚度远低于粘结刚度宏观变形主要由颗粒接触变形贡献这时改了粘结模量可能没有明显效果。建议初始标定时先保持接触刚度和粘结刚度一致或者用同样的deformability方式设置。2.3 强度参数法向强度、切向强度与摩擦强度参数是pb模型里最能体现“手感”的一组参数。它主要包括粘结的法向强度pb_ten、切向强度内聚力pb_coh、粘结摩擦角pb_fa以及颗粒自身的摩擦系数fric。pb_ten控制的是胶柱能承受的最大拉应力。材料的宏观抗拉强度跟它相关性最强所以标定巴西劈裂强度时主要调它。pb_coh控制的是胶柱在纯剪切状态下的强度对岩石的内聚力和单轴抗压强度影响很大。pb_fa则在粘结承受法向压应力时起作用它决定了剪应力极限随法向应力增大而提高的幅度对应的是宏观内摩擦角。颗粒摩擦系数fric在粘结未破坏时不参与受力一旦局部粘结断裂、颗粒开始滑动摩擦就接管了剪切传递。所以这个参数主要影响峰后阶段的残余强度、裂纹面的摩擦咬合行为以及高围压条件下的强度。模拟围压较高的深部岩石时不要忽略它。这里要特别强调pb模型的强度参数和最终宏观强度不是简单的映射关系中间隔着颗粒排列、孔隙率、粒径分布这些变量。比如你设pb_ten10 MPa跑出来的单轴抗压强度绝不是10 MPa而可能是60、70甚至100 MPa因为宏观破坏是无数个键共同承担荷载、逐步断裂的结果。这也是为什么“参数标定”必不可少的根本原因。2.4 一个可直接参考的参数初始表下表是我做砂岩类材料模拟时常用的初始参数设置目标宏观参数大致是弹性模量20 GPa、泊松比0.22、单轴抗压强度90 MPa、巴西劈裂强度7 MPa。注意这是初始值不是最终值但它能让你的第一轮试算就在合理范围内避免在参数空间里乱撞。参数初始值调节方向颗粒半径范围0.6~0.9 mm影响试样尺寸与颗粒数目标孔隙率0.35~0.40影响弹模与强度越低越强pb_emod20 GPa主要调宏观弹性模量pb_kratio2.5主要调宏观泊松比pb_ten10 MPa主要调抗拉强度pb_coh35 MPa主要调单轴抗压强度pb_fa30°调整峰后剪切响应与围压灵敏度fric0.5影响峰后残余强度与剪胀pb_rmul1.0别乱动除非需要提高局部粘结刚度3. 参数标定全流程从室内试验到细观参数3.1 标定需要哪些目标值不少新手犯的错误是拿到一组室内试验数据就开始调PFC但调了一整天还在原地打转原因在于没有先明确哪些宏观量跟哪些细观量对应。做岩石类材料的pb模型标定最基础的目标值是四个弹性模量E、泊松比ν、单轴抗压强度UCS、巴西劈裂抗拉强度BTS。如果模拟的是三轴试验还可以把不同围压下的峰值强度点整理出来用莫尔-库仑准则拟合出内聚力和内摩擦角作为高围压条件下的标定目标。不过初学阶段先把四个基础目标搞定就够用了。拿到目标值之后写下来贴屏幕上。标定的核心原则是一个参数只对标一个目标量尽量降低耦合。举个例子不要同时改pb_emod和pb_coh去追UCS因为你不知道到底是哪个变量在起作用。一次只动一个参数记录结果变化方向形成自己的参数敏感性样本比盲目试错高效得多。3.2 数值试样构建与单轴压缩试验构建数值试样的第一步是确定颗粒尺寸和试样尺寸。对单轴压缩试验标准做法是做一个高径比为2:1的圆柱试样。颗粒半径不能太小也不能太大——太小导致颗粒数量巨大、计算量爆炸太大则试样内颗粒数不足结果不够稳定。一般建议试样截面上至少有8到10个颗粒总颗粒数量在8000到20000之间比较合适。下面这段是我常用的PFC 6.0风格命令流思路; 创建模型区域试样尺寸直径50mm高度100mm model new model domain extent [-0.03 0.03] [-0.03 0.03] [-0.06 0.06] ; 生成颗粒目标孔隙率0.36粒径0.6~0.9mm ball distribute porosity 0.36 radius 6e-4 9e-4 random 10001 ball attribute density 2700 ; 充分平衡初始应力 model calm 0 solve ; 安装平行粘结先给一组初始参数 cmat default model linearpbond property ... ball attribute displacement 0 solve ; 设置上下加载板 wall generate box ...这里有一个非常关键的细节安装粘结之前要让颗粒体系在纯摩擦状态下充分静力平衡。如果不做这一步安装粘结时颗粒之间还残留大量不平衡力和重叠应力粘结安装后初始应力不是零材料一开始就背着“包袱”后面得到的应力应变曲线会严重偏软甚至一加载就出现大量伪裂纹。加载方式建议采用速度加载上下墙以恒定速度向试样中心移动速度要足够慢确保试样处于准静态。怎么判断准静态最简单的方法是把加载速度减半看应力应变曲线是否基本重合。如果曲线变化较大说明加载速率太快惯性效应太强正在模拟的不是准静态压缩而是一锤子砸碎。3.3 巴西劈裂标定抗拉强度单轴压缩标定出弹性模量、泊松比和UCS之后下一个标定目标就是BTS。巴西劈裂的数值试样通常是一个圆盘直径50mm左右颗粒参数沿用单轴试样已经标定好的刚度参数和孔隙率只调整pb_ten。为什么只调pb_ten因为巴西劈裂的破坏机制主要是拉伸破坏圆盘在竖向加载下中心区域产生垂直于加载方向的拉应力当拉应力超过抗拉强度时从中心起裂并向两端扩展。所以pb_ten的对标量就是BTS直接调它即可。实际操作中你会发现一个规律巴西劈裂抗拉强度大约是pb_ten的0.2到0.5倍具体取决于孔隙率和颗粒排列。如果目标BTS是7 MPa初始pb_ten可以从8到15 MPa之间试算。一次试算只需要跑几千步非常快。这里要提醒一下巴西劈裂在PFC里经常出现一个让人头疼的问题——裂纹不从中心起裂而是从加载端局部压碎开始。这通常不是pb_ten的问题而是加载板与试样接触区域的应力集中太严重。解决思路有几个给试样端部加垫板、把加载板的刚度调低一些、或者在试样端部设置一些预裂纹释放应力。我在实际标定时常用的是降低加载板法向刚度的方式简单有效。3.4 标定顺序与判断标准把完整标定流程串起来我个人的操作顺序是这样的先定几何参数粒径、孔隙率、试样尺寸这部分在一次标定过程中固定不变。然后调刚度参数通过单轴压缩数值试验的弹性段曲线调整pb_emod让宏观弹性模量接近目标值调整pb_kratio让泊松比接近目标值。刚度和强度互不干扰所以刚度调好之后就锁死不动。接着调强度参数分两条线一条是保持pb_coh不变、改pb_ten跑巴西劈裂对标BTS另一条是保持pb_ten不变、改pb_coh跑单轴压缩对标UCS。两者需要反复迭代几次因为pb_ten对UCS也有一定贡献而pb_coh对BTS的影响通常较小。判断标定是否合格不能只看峰值强度对没对上。要同时看三个维度弹性段斜率对不对、峰值强度对不对、峰后破坏形态像不像室内试验。只有三个维度都对才说明这组细观参数真正刻画了材料的力学行为而不是凑巧蒙对了峰值。还有一个判断维度容易被忽略破坏模式。室内砂岩单轴压缩一般是剪切破坏带或劈裂共存如果数值模拟出来的是整体粉碎性破坏说明颗粒间键的强度太均匀了需要在生成时给粘结强度加一点分布让少量弱键先破坏诱导损伤局部化。4. 破坏模拟全过程从裂纹萌生到宏观失稳4.1 单轴压缩下的破坏阶段与关键曲线参数标定完成后破坏模拟就是水到渠成的事。但在分析结果之前得先知道pb模型的破坏过程在宏观上会经历哪些阶段。从应力应变曲线看典型过程是这样的加载初期是线弹性段此时几乎没有键断裂整个试样像一个完整的弹性体当应力增加到峰值强度的60%到80%时开始出现零星裂纹曲线出现轻微非线性这个阶段叫裂纹萌生阶段继续加载到峰值附近裂纹数量急剧增加宏观应力开始偏离线弹性包络线进入裂纹稳定扩展阶段到达峰值强度后裂纹在局部区域贯通成带应力迅速跌落进入峰后软化阶段。有两点值得注意。第一pb模型的裂纹萌生点通常早于峰值强度而且“应力-应变曲线开始偏离直线”这个特征比“第一条裂纹出现”更容易定位。因为单条微裂纹对宏观响应的影响太小了很难从力曲线上看出来但裂纹追踪器里能看到。第二峰值后曲线下降的形状跟参数密切相关。如果pb_coh和pb_ten都很高、fric又低峰后可能表现为脆性跌落如果fric较高跌落之后会有一个残余强度平台这是因为破坏面上的颗粒还能通过摩擦传递荷载。我习惯在模拟中同时记录两类数据墙体的应力应变数据以及裂纹数量随轴向应变的变化曲线。这两条曲线叠在一起看能非常清楚地看到裂纹加速增长点与应力峰值的先后关系这是评价模型合理性最直观的手段。4.2 拉伸裂纹与剪切裂纹的分布解读pb模型在键发生拉伸或剪切破坏时会在模型里生成不同类型的裂纹。默认情况下拉伸破坏生成的是张性裂纹剪切破坏生成的是剪性裂纹在PFC的DFN离散裂隙网络视图里用不同颜色区分。很多人第一次看到裂纹图都会问为什么我的单轴压缩模拟里90%都是拉伸裂纹只有极少数剪切裂纹这其实是对的。单轴压缩条件下虽然宏观上是压应力但试样内部的微裂纹主要是由局部拉应力引起的——颗粒排列不均匀导致接触点产生偏心力局部应力集中当局部拉应力超过粘结强度时拉伸裂纹就产生了。只有到了高围压条件剪切裂纹的比例才会明显上升。所以如果你在无围压单轴压缩模拟里看到大量剪切裂纹反而要警惕。这往往意味着加载速率过快惯性效应导致试样内部产生了不真实的高剪应力区。遇到这种情况第一反应应该是降速而不是怀疑剪切强度参数设置不对。观察裂纹的空间分布也非常有意义。如果裂纹均匀散布在整个试样中说明试样处于“弥漫损伤”状态可能是加载速率偏高或者是粘结强度场太均匀、缺少弱面诱导。如果裂纹集中在一个倾斜条带内说明材料已经形成了宏观剪切带这与室内岩石试样受压形成的剪切破坏模式一致。这时还可以测一下剪切带的倾角与室内试验的破裂角通常45°φ/2附近对比如果差得太多可能是pb_fa或fric不合理。4.3 加载速率、阻尼和随机种子对结果的影响破坏模拟阶段除了物理参数还有三个数值参数对结果影响巨大经常被新手忽略。加载速率是最容易踩坑的一个。PFC是显式时步计算有真实的惯性效应。如果加载墙速度太快应力波会在试样内反复震荡导致应力测量结果严重偏高破坏模式也完全失真。判断准静态有两个实用方法一是跑两步不同速度的模拟比如0.05 m/s和0.025 m/s如果应力应变曲线差异小于5%可以认为准静态二是监测试样动能与应变能的比值动能占比应远小于应变能。如果动能占比超过5%就要降速。局部阻尼local damping是另一个关键参数。PFC默认的局部阻尼系数是0.7这主要是为了在静力平衡计算时快速衰减动能。但在破坏模拟阶段过大的阻尼会人为抑制裂纹高速扩展时的动力效应使破坏过程被“冻结”或者产生不真实的延性。我做破坏模拟时通常把局部阻尼降到0.2到0.4之间这样既能过滤部分数值噪声又不至于把动力破坏效应抹平。如果你发现模拟出来的破坏是“慢慢裂开”而不是“啪地断开”很可能就是阻尼设大了。随机种子random seed决定颗粒的初始排列和孔隙分布。不同种子会产生不同初始颗粒结构进而影响裂纹路径和峰值强度。数值模拟中单次试验的峰值强度波动5%到10%都是正常的。所以严谨的做法是固定种子复现或者用多个种子跑多次、取平均再跟室内试验对比。不要拿一次模拟结果就断定参数好坏这是很多“调了一个月参数还是对不上”背后的坑。4.4 破坏模式与胶结参数的关系通过大量参数敏感性试验我总结出几个破坏模式与参数之间的典型对应关系可以作为判断参数合理性的快速参考。当参数设置出现系统性偏差时破坏模式会表现出非常明显的特征。如果pb_ten相对pb_coh过高材料就像一块特别“韧”的橡胶单轴压缩下容易出现大面积劈裂裂纹从试样顶部一直蔓延到底部呈纵向多条裂纹并存的状态峰值后承载力下降很慢。如果pb_ten相对pb_coh过低材料则表现为强烈脆性峰值强度很低破坏瞬间试样碎成数块能量释放剧烈。室内一些高强度脆性岩石确实表现出这种特征但纯砂岩、泥岩通常不会这样。fric的调整也会改变破坏形态。fric太低时破坏面形成后颗粒之间无法有效咬合宏观表现是残余强度极低fric太高时破坏面两侧颗粒像砂纸一样咬死可能出现贯通剪切带之后的二次硬化这在岩石中不太常见。还有一个容易忽视的现象是“端部效应”。如果试样和加载墙之间的摩擦过大材料会在端部形成锥形破坏区类似岩石力学试验里的端部约束效应。如果数值模拟里试样破坏从端部开始而不是从中间开始别急着调胶结参数先检查加载墙与颗粒的接触摩擦系数通常降低墙的摩擦就能解决。5. 常见问题与调试实录5.1 模型一加载就“炸开”怎么办这是我在社群里被问得最多的一个问题。模型刚生成好粘结也装了结果一加载就像鞭炮一样“啪”地全散了满屏裂纹。遇到这种情况先别怀疑参数设得不对按顺序排查几个最常见的坑。第一个坑是初始应力没平衡好。颗粒生成之后没有充分静力平衡就安装了粘结导致粘结一装就带着巨大的初始应力加载只是压死骆驼的最后一根稻草。解决方法很简单安装粘结之前跑足够多的步数观察最大不平衡力下降到初始值的万分之一左右再装粘结。第二个坑是加载速率过高。如果墙的加载速度太快应力波会直接把试样“震碎”。记住一个经验加载墙每个时步移动的距离应该远小于颗粒直径的万分之一。颗粒直径0.9mm时墙速度不超过0.05 m/s通常是比较安全的。第三个坑是粘结强度远低于初始正则化应力。颗粒在重力压实过程中底部颗粒承受的自重应力虽然不大但在小尺寸试样中也可能达到几千帕。如果粘结强度设得太低比如pb_ten只有1 MPa自重就会把底部粘结压断。这种情况下要么提高粘结强度要么在安装粘结前将重力加速度归零或调低。5.2 弹性模量、泊松比怎么调都调不准如果你反复改pb_emod但弹性模量就是上不去或者改pb_kratio但泊松比纹丝不动问题多半出在刚度分配上。一个容易被忽略的情况是颗粒接触的线性刚度明显低于粘结刚度时宏观变形不受粘结刚度控制而是由颗粒接触挤压变形主导。这就好比胶水很硬但钢珠本身是软橡皮压的时候当然先压变形的是钢珠。解决方法是让颗粒的接触刚度和粘结刚度保持同一量级或者统一用deformability方式设定确保两者匹配。泊松比调不动常见原因是试样高径比不够或者端部约束太强。高径比小于1.5时试样横向变形受端部摩擦限制严重测出来的“泊松比”其实是端部约束和材料横向变形的混合结果无论你调pb_kratio都很难匹配。用标准高径比2:1的试样再做一次往往问题自动消失。还有一种情况是孔隙率太高。颗粒排列越松散破坏前的横向变形越大宏观泊松比可能异常偏高。如果你的孔隙率都到0.45了还指望pb_kratio能把泊松比压到0.2以下那是不现实的。适当降低孔隙率或者采用更紧密的颗粒级配才能获得合理的弹性响应。5.3 破坏模式与室内试验对不上不少人在单轴压缩模拟中发现虽然峰值强度跟室内试验对上了但破坏形态完全对不上室内是斜向剪切破坏数值模拟却是纵向劈裂或者反过来。这种情况先反思一个底层问题你用的是二维模型还是三维模型PFC 2D中颗粒是圆盘破坏模式天然更倾向于剪切带PFC 3D中颗粒是球体更接近真实岩石行为。如果必须在2D下模拟纵向劈裂往往是因为真实三维中的某些约束在2D中被简化掉了定性研究可以接受但不建议硬调参数去追一个原本就不合理的形态。如果确实是参数问题最可能的元凶是粘结强度场过于均匀。真实岩石内部存在大量天然缺陷、微裂隙和矿物晶体边界这些薄弱点决定了裂纹走向。数值模型里如果每个键强度都相同裂纹就没有“偏爱”的路径只会随机分布或者走最近的应力集中区结果就是形态多变、重复性差。解决方法是给pb_ten和pb_coh设置一定的变异系数比如5%到10%的正态分布扰动让材料内部存在弱键诱导裂纹沿优势路径扩展。5.4 计算效率瓶颈的取舍PFC计算量大是出了名的。一个2万颗粒的3D单轴压缩试样破坏模拟跑个几十万步很正常桌面工作站可能要好几个小时。想提高效率有几种取舍思路。降低颗粒数是立竿见影的手段但要控制一个度——试样横截面最少得有8到10个颗粒。低于这个数破坏模式会受颗粒排列主导结果不可信。如果真的需要大尺寸试样可以先用小颗粒数试样做参数标定再放大到目标尺寸做正式模拟这样标定阶段效率高、正式模拟结果也可靠。调整时间步也有门道。PFC的时间步由最刚接触的刚度决定如果把pb_emod设置得过高时间步会变得极小计算量暴增。如果模拟的是静力问题、不是冲击问题适当降低颗粒密度也能增大时间步——密度不影响准静态模拟的静力结果但能显著影响时步。我在做大变形破坏模拟时经常把密度调低到原岩密度的一半以下前提是确认惯性效应可忽略算完之后对比一次原密度结果验证即可。局部阻尼的设置同样影响收敛速度。静力平衡阶段用较大的阻尼能快速消除动能但破坏阶段阻尼太大会让裂纹扩展变钝、破坏过程失真。一个常见的做法是分阶段设置静力平衡阶段阻尼0.7加载破坏阶段降到0.2到0.3兼顾效率和真实性。最后分享一个我在实际工作中受益很大的习惯把所有标定过程用截图和记录保存下来包括每次改了哪个参数、跑出的曲线长什么样、裂纹形态是什么样。当你调了30次参数之后回头看这些记录你会发现自己对pb模型的“手感”已经完全不同了。破坏模拟这件事说到底是感性认知和理性数据反复磨合的过程没有捷径但每一步积累都有价值。
返回列表