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

PFC2D5.0颗粒流直剪试验代码及成样预压加载全过程

PFC2D5.0颗粒流 直剪试验 代码, 成样预压加载全过程。 可以自己更改试样尺寸、孔隙率、围压大小、加载速率等参数。 本案例提供参考,可以自行修改参数或者按照要求二次加工,部分代码有注释,可以参考学习。

最近在折腾PFC2D直剪试验模拟,发现这玩意儿真是颗粒流分析的利器。今天就带大家手搓一个从成样到剪切全流程的脚本,咱们边写代码边唠嗑,保准让你改参数像调火锅蘸料一样顺手。

先整点硬菜——环境搭建。咱这砂土试样就像包饺子,得先和面(生成颗粒):

;======= 成样阶段 ======= domain extent -5 5 -5 5 ;地盘大小随便改,比如2x2米就改成0 2 0 2 wall generate box ... width [sample_width] height [sample_height] ;试样尺寸开关在这 ball distribute porosity 0.3 ... radius 0.01 0.02 ;粒径分布看这里 ball attribute density 2650 damp 0.7

这孔隙率0.3看着不顺眼?直接改porosity后面的数值,0.25到0.4随你折腾。不过注意粒径别太极端,小心颗粒要么挤成沙琪玛要么散成芝麻饼。

PFC2D5.0颗粒流 直剪试验 代码, 成样预压加载全过程。 可以自己更改试样尺寸、孔隙率、围压大小、加载速率等参数。 本案例提供参考,可以自行修改参数或者按照要求二次加工,部分代码有注释,可以参考学习。

压密阶段得像揉面团,得慢慢来:

;======= 预压加载 ======= fish define apply_confining(stress) loop local i (1,wall.count) if wall.isServo(i) wall.servo.stress = stress ;围压大小在这儿调戏 endif endloop end [apply_confining(1e5)] ;默认100kPa围压,想模拟深海就加俩零 cycle 5000 calm 50 ;冷静期防止颗粒蹦迪 solve ratio 1e-5 ;平衡判据,强迫症可以改成1e-6

这里藏着个彩蛋:wall.isServo(i)这货其实在控制边界墙的伺服机制。要是发现试样乱跑,八成是这里的判断没写对,建议加个print调试大法。

重头戏剪切阶段得稳准狠:

;======= 剪切加载 ======= fish define shear_speed local top_wall = wall.find(3) ;假设上剪切墙编号是3 wall.vel.x(top_wall) = 0.01 ;剪切速率暗门在此 end [shear_speed] cycle 10000 ;加载步数看试样大小 result export ... "stress_strain.txt" ;数据输出,记得定期保存

加载速率这玩意儿别太虎,建议从1e-5开始试。见过新手直接怼0.1结果颗粒集体起飞,跟放烟花似的——好看是好看,数据全废了。

最后安利几个私藏调试技巧:

  1. 孔隙率死活达不到预期?在ball distribute后面加个max 1000试着重生成
  2. 剪切时出现大裂缝?把contact method改成pb_linear试试
  3. 数据突变别慌,先plot hist stress看力链变化

这脚本就像乐高,骨架搭好了随便改装。比如要模拟粗粒土,把粒径上限调到0.05;想做应变软化,在剪切阶段插个速度反向循环。反正源码在手,天下我有,记得改参数前备份就好——别问我怎么知道的,都是血泪教训啊!

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

相关文章:

  • Windows Cleaner终极指南:三步解决C盘爆红,让电脑重获新生
  • 35岁程序员抵押房产创业,三年烧光所有还负债200万,妻子带着最后的存款离开,留了张纸条说不能再陪你赌了
  • 空洞骑士模组管理器Scarab:从新手到高手的完整指南
  • Android逆向实战:如何用Frida绕过HttpCanary高级功能限制(附完整脚本)
  • MIUI10自带邮件应用隐藏技巧:如何绕过初始验证直接配置Exchange邮箱(米6实测)
  • 避坑指南:Matlab循环保存图片时常见的5个内存泄漏问题及解决方法
  • 轻量级Java推理引擎自研实践(仅23KB核心Jar包,支持动态模型热替换与A/B测试分流)
  • YOLOv8训练自己的道路裂缝数据集,从数据标注到模型部署的保姆级避坑指南
  • 探索COMSOL在复杂工程问题中的奇妙应用
  • 终极指南:vue-typescript-admin-template如何用组合式API构建现代化管理后台
  • OpenClaw技能开发入门:为nanobot编写自定义QQ机器人插件
  • SRF02超声波传感器I²C底层驱动设计与工程实践
  • OpenClaw省钱方案:ollama GLM-4.7-Flash自部署模型替代高价API
  • seo网站制作如何与电商运营相结合
  • 从JDK 19到JDK 25:结构化并发API演进图谱(含12个Breaking Change标注),你的CI流水线明天就可能崩溃!
  • Windows 10 + CUDA 10.1 环境下,手把手教你搞定 Deformable-DETR 的编译与单卡训练
  • 产品 SEO 关键词与转化率的关系是什么_如何评估产品 SEO 关键词的价值
  • 京东JD-hotkey框架:毫秒级热key探测与高并发场景实战解析
  • 华为云ECS上Docker部署Calibre-Web的避坑指南(附Swap优化技巧)
  • 3步解决Finnhub Python API集成难题,提升金融数据处理效率60%
  • 硬件工程师的‘工具箱’进化史:从万用表到示波器,再到我离不开的5款效率神器
  • 免费激活Windows和Office的完整解决方案:KMS_VL_ALL_AIO智能脚本使用指南
  • ROS2 开发环境搭建:VSCode 插件生态全解析与高效配置指南
  • Go开发者必知:结构体方法接收器的选择艺术
  • TouchGal:重新定义Galgame社区体验的革命性平台
  • 2026中介行业数据合规风控应用白皮书:风控系统、风控解决方案、企业数据、实时风控、数据分析、数据合规、数据安全选择指南 - 优质品牌商家
  • etcd 高可用集群部署及监控配置指南
  • 突破流媒体限制:spotDL工具让Spotify音乐本地化变得简单
  • AI建站工具从0到1全流程攻略:普通人如何快速上线一个专业网站
  • 保姆级教程:在Ubuntu 22.04上用RTX 4090复现DepthAnything V2(含Open3D点云可视化避坑指南)