当前位置: 首页 > news >正文

这次咱们来拆解PFC二维浆岩直剪案例。这个案例有意思的地方在于它展示了颗粒材料与刚性墙体接触面的剪切行为,咱们边看代码边分析剪切曲线的门道

PFC案例9,浆-岩二维直剪,包含代码源文件、代码解释、曲线分析

先看模型搭建的关键代码段:

;生成浆体颗粒 ball distribute ... ;创建上下剪切盒 wall generate id 1 vertices 0 0 1 0 1 1 0 1 wall generate id 2 vertices 0 0.2 1 0.2 ;设置接触参数 contact cmat ...

这里通过wall命令生成两个墙体,上墙体保持固定,下墙体施加水平速度模拟剪切。颗粒生成时要注意粒径分布,太均匀的话剪切曲线会不真实。我一般习惯用高斯分布,参数设置成dmin=0.1e-3, dmax=0.3e-3比较合适。

剪切过程的控制逻辑是重点:

[shear_velocity = 0.1] while mechanical age < 10 wall attr velocity-x [shear_velocity] id 2 step 500 ... fish history shear_force = wall.force.x(id2) fish history displacement = wall.pos.x(id2) end

这里采用位移控制法,每次循环移动下墙体并记录剪切力。注意速度参数shear_velocity别设太大,建议分阶段调整——初始阶段0.01,峰值后可以提到0.1,这样能更好捕捉软化段。

跑完模拟后咱们来看特征曲线(配图示意)。典型曲线会有四个阶段:

  1. 弹性段:力随位移线性增长
  2. 屈服段:曲线斜率开始减小
  3. 峰值段:达到最大剪切力
  4. 残余段:力值震荡趋于稳定

有个坑要注意:当剪切盒间隙过小时会出现颗粒被压碎的情况。这时候在contact cmat里调整kn/ks比例,把颗粒刚度调高些,或者在初始化时增大wall的gap值。

PFC案例9,浆-岩二维直剪,包含代码源文件、代码解释、曲线分析

裂纹发展监测可以用这个技巧:

fish define crack_count local cnt = 0 loop foreach bp ball.list if ball.contact.count(bp) < 2 cnt = cnt +1 endif endloop crack_count = cnt end

这个简易计数器通过统计接触数小于2的颗粒数量,间接反映剪切带形成情况。实际跑起来会发现裂纹数量在峰值后突然增加,和应力跌落点基本对应。

最后给个实用建议:想得到漂亮的剪切曲线,别忘了在剪切前做充分的平衡计算。我习惯在施加剪切前先跑2000步静力松弛,这样初始接触力稳定,曲线毛刺会少很多。参数敏感性方面,摩擦系数对残余强度影响最直接,把颗粒摩擦角从30度调到35度,残余段力值能提高约18%。

下次可以试试在剪切面预置弱面,观察剪切路径的变化,那又是另一个有意思的故事了。代码文件已打包,需要调试的可以直接改参数里的标记处。

http://www.jsqmd.com/news/556081/

相关文章:

  • RAG还是微调?同事吵了三天没结果,我拿出一张对比表,全员沉默后疯狂点赞!
  • RESTful 金融数据 API 文档:设计原则与最佳实践
  • Kafka源码深度解析与面试攻坚:云原生和Serverless的融合之路
  • 从表单配置到多租户隔离:元数据驱动在低代码平台中的5个典型应用场景
  • 技术赋能B端拓客:号码核验行业的破局与价值深耕,氪迹科技法人股东核验筛选系统,阶梯式价格
  • Awoo Installer:Nintendo Switch多源安装引擎的技术架构深度解析
  • 漫画脸描述生成保姆级教程:从Docker Hub拉取镜像到生成首个角色
  • 如何用零配置小熊猫Dev-C++在5分钟内开启C++编程:完整新手指南
  • Mem Reduct终极指南:5分钟掌握Windows内存清理与优化技巧
  • Anything V5图像生成实战:快速部署与基础参数设置教程
  • 突破传统服装设计壁垒:Seamly2D开源解决方案赋能创意实现
  • 网盘直链下载助手完整教程:一键获取真实下载地址,告别限速烦恼!
  • 解决curl静态库链接错误:__imp__CertCloseStore@8等符号未定义问题
  • 计算机毕设 java 基于 Java+Spring 的疫苗接种管理系统的设计与实现 智能疫苗接种预约系统 疫苗接种全流程管理平台
  • DeerFlow开源项目部署与实践指南:从环境准备到生产落地
  • 技术赋能B端拓客:号码核验行业的革新之路与价值重塑,氪迹科技法人股东号码筛选系统,阶梯式价格
  • 3步掌握Umi-OCR批量处理:从海量图片中高效提取文字
  • 【Web逆向】实战解析:Protobuf数据逆向的两种高效方法
  • 4个步骤解决华硕笔记本显示异常:G-Helper色彩配置完全指南
  • 别再只盯着最后一个时间步了!手把手教你让CFD-POST完整读取Fluent瞬态数据(附2021R2版本避坑指南)
  • 网页设计必备:如何用占位图片提升用户体验(含懒加载和上传前处理技巧)
  • 保姆级教程:手把手教你修复GitLab 14.x升级中的`CopyColumnUsingBackgroundMigrationJob`暂停问题
  • 15分钟搞定LaMa图像修复:从环境搭建到模型推理的完整实战指南
  • 别再手动敲命令了!用这个Makefile模板,5分钟搞定VCS+UVM环境搭建
  • 如何进行cn域名批量注册_cn域名批量注册对SEO有什么影响
  • Loop:终极免费的macOS窗口管理工具,彻底告别杂乱桌面
  • 别再死记硬背了!我用这10个真实运维场景,帮你吃透Linux面试题
  • UniApp项目实战:用UTS插件实现安卓后台保活(附完整Service配置与权限处理)
  • 3步解决华硕笔记本屏幕色彩异常:G-Helper显示配置修复指南
  • 如何通过DeepWiki实现本地部署的智能文档生成与数据安全保障?