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

生成单颗10mm级配的cluster骨料

PFC5.0代码可以破碎的cluster可模拟碎石、矿渣混凝土材料ball与cluster颗粒单轴压缩实验内涵声发射事件数代码分析统计ball与ball直接的裂纹数目cluster内部破碎的裂纹数目上周帮同门调PFC5.0的矿渣混凝土单轴压缩模拟本来以为就是套个现成的代码改改参数结果栽在cluster内部裂纹统计和声发射计数上折腾了快两天现在终于把坑填完了顺手把整理好的代码和踩过的雷分享出来。咱先唠唠为啥要用cluster平时模拟素混凝土用ball堆就行但矿渣混凝土的骨料都是大块的碎石单个ball太假了得把一堆小ball绑成一个大颗粒当骨料也就是cluster。这样碎的时候能从骨料内部裂开比单个ball真实多了。比如要做一个10mm的碎石骨料就先扔20个半径2-5mm的小ball在一个小区域里再用clump命令把它们捆成一个整体。先贴一段生成cluster骨料的代码set aggregate_rad 5.0 ;# 大颗粒的包络半径 set sub_ball_num 20 ;# 组成cluster的小ball数量 set gap 0.1 ;# 小ball之间的间隙防止太挤 set clump_id [clump create rad$aggregate_rad num$sub_ball_num gap$gap] # 给cluster赋值物理参数和矿渣骨料匹配 clump attribute density2800 young3.5e10 poisson0.22 range id $clump_id # 随机扔一堆骨料和砂浆用的小ball ball distribute porosity0.32 rad1.0 3.0 density2100 young2.5e10 poisson0.2 range x-0.5 0.5 y-0.5 0.5 z-0.5 0.5这段代码一开始我把gap设成0了结果生成的cluster直接挤成一团导入模型的时候直接报错后来加了gap0.1才好而且porosity设0.32是模拟混凝土的孔隙率这个参数得根据实际级配调。接下来是单轴压缩的加载墙别用固定墙伺服墙才是做准静态加载的正道# 生成上下伺服加载墙尺寸和模型域匹配 wall create position 0 0 -0.48 size 0.96 0.96 id 1001 wall create position 0 0 0.48 size 0.96 0.96 id 1002 # 设置加载速率别太快不然惯性炸模型 wall servo velocity 0.008 range id 1001 wall servo velocity -0.008 range id 1002 wall servo on我一开始手滑把速率设成0.1结果模型刚加载就被弹飞了后来查了PFC官方文档才知道准静态加载的速率要足够慢让每个步长的位移都小于颗粒的半径量级。PFC5.0代码可以破碎的cluster可模拟碎石、矿渣混凝土材料ball与cluster颗粒单轴压缩实验内涵声发射事件数代码分析统计ball与ball直接的裂纹数目cluster内部破碎的裂纹数目然后是声发射计数PFC里声发射本质就是接触破坏的次数不管是拉伸还是剪切破坏只要接触的状态变了就算一次事件。一开始我抄了网上的代码结果跑出来一直是0后来才发现把contact.state的数值记错了——PFC5.0里contact.state(c)2是拉伸断裂3是剪切断裂修正之后就对了fish define count_ae_events local ae_total 0 loop foreach c contact.list ;# 跳过还没破坏的接触 if contact.state(c) 2 continue ae_total ae_total 1 endloop global total_ae ae_total end ;# 每100个计算步调用一次省点算力 history add total_ae这里加了continue跳过未破坏的接触比原来的多层if判断看着清爽点要是模型颗粒多的话甚至可以隔500步再算省算力。最后是裂纹统计的重头戏区分ball-ball之间的裂纹和cluster内部的裂纹。ball-ball就是砂浆里两个独立小颗粒之间的接触破坏cluster内部的就是同一个骨料包里的小ball之间的开裂这个得靠clump.id来判断——同一个cluster里的所有ball的id都属于同一个clump的编号fish define count_crack_types local bb_crack 0 ;# ball-ball之间的裂纹数 local ci_crack 0 ;# cluster内部的裂纹数 loop foreach c contact.list if contact.state(c) 2 continue local id1 contact.id1(c) local id2 contact.id2(c) ;# 先判断是不是两个独立的ball都不属于任何cluster if [ball exists id1] and [ball exists id2] if not [clump exists id1] and not [clump exists id2] bb_crack bb_crack 1 endif endif ;# 再判断是不是同一个cluster内部的接触 if [clump exists id1] and [clump exists id2] if [clump id id1] [clump id id2] ci_crack ci_crack 1 endif endif endloop global crack_bb bb_crack global crack_ci ci_crack end fish call count_crack_types这段代码一开始我没加clump exists的判断结果把cluster和普通ball之间的接触也算进去了比如骨料和砂浆颗粒的接触那显然不算内部裂纹后来加了之后统计就准确了。跑起来之后的效果还挺直观的加载初期声发射数很少都是一些微小的接触调整到接近峰值应力的时候声发射数突然暴涨cluster内部的裂纹先变多然后ball-ball之间的裂纹开始激增对应实际混凝土里骨料先碎然后砂浆和骨料之间的界面开裂最后整体垮掉。对了要是想实时看这些数据可以开个绘图窗口把totalae、crackbb、crack_ci都加进去调参数的时候不用等跑完就能看到效果省了好多时间。这次折腾下来才发现PFC的代码看似简单但是细节坑特别多比如接触状态的数值、cluster的id判断、加载速率这些都是抄现成代码容易踩的雷还是得自己捋一遍逻辑才好用。

相关文章:

生成单颗10mm级配的cluster骨料

PFC5.0代码,可以破碎的cluster,可模拟碎石、矿渣混凝土材料,ball与cluster颗粒,单轴压缩实验,内涵声发射事件数代码,分析统计ball与ball直接的裂纹数目,cluster内部破碎的裂纹数目上周帮同门调P…...

GinCdn内容分发系统V1.0.9更新内容

GinCdn内容分发系统GinCdn是一款基于Go语言Gin框架自研的轻量高效内容分发系统,专为中小型企业/个人搭建CDN打造,采用主控边缘节点分布式架构,实现智能调度、高效缓存、精准监控的一体化解决方案。无需复杂命令行,小白也能轻松上手…...

基于高斯过程回归的MATLAB时间序列区间预测代码实现与解析

基于高斯过程回归(GPR)的时间序列区间预测 GPR时间序列区间预测 matlab代码 暂无Matlab版本要求 -- 推荐 2018B 版本及以上做时间序列最烦的就是拍脑袋给个“明天涨3%左右”——“左右”到底是正负0.5还是正负3?如果是风电发电的负荷申报,正负差多了要罚…...

C语言编程基础与核心概念详解

1. C语言入门基础解析C语言作为编程世界的基石语言,其简洁高效的特性使其在系统编程、嵌入式开发等领域占据不可替代的地位。我第一次接触C语言是在大学计算机系的实验室里,那个打印出"Hello World"的瞬间至今记忆犹新。让我们从最基础的部分开…...

seo公司招聘的实习机会有哪些

SEO公司招聘的实习机会有哪些? 在当今数字化时代,SEO(搜索引擎优化)已经成为企业在网络上获得高流量和高曝光度的关键手段。随着越来越多的企业意识到SEO的重要性,SEO公司也在不断扩展,吸引大量优秀的实习…...

收藏!小白也能看懂的大模型推理能力训练与未来趋势深度解析

文章讨论了大模型的发展历程,从早期的“读很多书”模式到引入“思考”能力的转变。重点介绍了推理式思考与智能体式思考的区别,以及Qwen团队在模型训练中的经验与挑战。文章指出,未来的重心将从单纯训练模型“思考”转向训练智能体“边想边做…...

终极指南:如何彻底解决Colab运行text-generation-webui的Matplotlib后端错误

终极指南:如何彻底解决Colab运行text-generation-webui的Matplotlib后端错误 【免费下载链接】text-generation-webui The original local LLM interface. Text, vision, tool-calling, training, and more. 100% offline. 项目地址: https://gitcode.com/GitHub_…...

程序运行机制:编译、链接与装入详解

1. 程序运行的底层机制解析作为一名在嵌入式系统开发领域工作多年的工程师,我经常需要深入理解程序从源代码到最终执行的完整过程。这个看似简单的"程序运行"背后,实际上隐藏着编译、链接、装入这三个关键阶段。今天,我就结合自己的…...

shjshxksxjxbf

一、OpenAI 1.OpenAI是什么简单来说,OpenAI 大模型 是由美国人工智能公司 OpenAI 开发的一系列大型语言模型(LLMs) 。你可以把它们想象成拥有巨大“知识储备”和“学习能力”的超级大脑,它们被训练用来理解和生成人类语言&#xf…...

2026年3月上海污水处理设备生产厂家推荐:十大口碑产品评测对比知名

步入2026年3月,随着环保政策持续收紧与工业智能化升级的双重驱动,企业对污水处理设备的需求已从单纯的“达标排放”转向“高效、智能、全生命周期成本最优”。根据中国环保产业协会发布的《2026年度水处理装备市场趋势报告》,超过68%的采购决…...

【独家首发】基于eBPF+Java Agent+Istio Telemetry V2的零侵入式调试框架(已落地金融级生产环境,QPS>50K场景验证)

第一章:零侵入式调试框架的演进逻辑与金融级落地价值传统调试方式依赖代码埋点、日志增强或代理注入,不仅增加系统耦合度,更在高敏感、强一致性的金融核心系统中引入不可控风险。零侵入式调试框架应运而生——它不修改业务字节码、不依赖特定…...

Element Plus访问优化指南:从卡顿到流畅的开发体验提升方案

Element Plus访问优化指南:从卡顿到流畅的开发体验提升方案 【免费下载链接】element-plus 🎉 A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus 在前端开发过程中,你是否…...

终极Windows驱动管家:DriverStore Explorer释放系统空间完全指南

终极Windows驱动管家:DriverStore Explorer释放系统空间完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 引言:被遗忘的驱动仓库 你是否曾疑惑为…...

突破方舟生存进化技术壁垒的智能管理工具

突破方舟生存进化技术壁垒的智能管理工具 【免费下载链接】TEKLauncher Launcher for ARK: Survival Evolved 项目地址: https://gitcode.com/gh_mirrors/te/TEKLauncher 你是否曾因MOD安装顺序错误导致游戏频繁崩溃?是否在搭建私人服务器时被端口配置弄得晕…...

告别GIL幻觉:基于subinterpreter+shared_memory的生产级无锁Pipeline(附GitHub星标1.2k的perf-validated模板库)

第一章:Python无锁GIL环境下的并发模型性能调优指南Python 的全局解释器锁(GIL)长期被视为 CPU 密集型并发的瓶颈,但现代 CPython 3.12 已实验性支持无 GIL 构建(通过 --without-pygil 配置选项)&#xff0…...

3DGS训练完模型怎么可视化?手把手教你用官方Viewer在Windows上查看结果

3DGS训练完模型怎么可视化?手把手教你用官方Viewer在Windows上查看结果 当你花费数小时甚至数天时间在Linux服务器上完成3D高斯泼溅(3DGS)模型的训练后,最令人兴奋的时刻莫过于亲眼看到自己的训练成果。本文将详细介绍如何将训练好的模型从Linux服务器迁…...

ostringstream清空缓存的正确姿势:str()与clear()的深度解析

1. 为什么ostringstream清空缓存这么让人困惑? 第一次用ostringstream的时候,我也被它坑过。记得当时写了个日志记录功能,反复往同一个ostringstream对象里写入内容,结果发现每次输出的日志都越积越长。我本能地调用了clear()&…...

嵌入式状态机设计与实现全解析

1. 嵌入式状态机基础概念状态机(State Machine)是嵌入式系统开发中最核心的设计模式之一,它通过定义系统可能处于的状态集合、状态之间的转换条件以及状态转换时执行的动作,为复杂系统行为建模提供了清晰框架。在嵌入式环境中&…...

【Skills开发实战指南】第01篇:Skills开发入门:AI助手的能力扩展革命

快速导航 读完本文,你将获得: ✅ 深入理解Skills是什么以及为什么需要它✅ 掌握Skills在AI编程工具中的核心价值✅ 了解Skills的完整生态和应用场景✅ 明确Skills开发的学习路径和资源✅ 准备好开始你的第一个Skills开发项目 一、Skills是什么&#xf…...

【系统架构设计师-案例题(5)】人工智能 · 参考答案与解析(按分类)

文章目录目录一、机器学习基本概念单选 迁移学习单选 强化学习的核心特点二、人工智能分类(弱人工智能与强人工智能)单选 主要区别三、人工智能关键技术单选 说法错误项(选非)单选 哪项不是人工智能关键技术(选非…...

TDAD:测试驱动的AI智能体开发

Test-Driven AI Agent Definition (TDAD) 论文核心原理解析与实例说明 TDAD 提示词演化逻辑与完整实例 TDAD的提示词演化,完全遵循测试驱动的闭环迭代逻辑:由TestSmith生成的visible tests(可见测试用例)作为唯一迭代标尺,PromptSmith智能体通过「失败用例根因分析→提示…...

3D Face HRN开源镜像:ModelScope官方cv_resnet50_face-reconstruction部署

3D Face HRN开源镜像:ModelScope官方cv_resnet50_face-reconstruction部署 1. 引言:从2D照片到3D人脸的魔法转换 你是否曾经想过,仅仅通过一张普通的2D人脸照片,就能生成精确的3D人脸模型?这在过去可能需要专业设备和…...

智能电网RAG优化:闭环协同与精准检索

RAG论文原理解析、公式含义与错误点对点修正方案 一、论文核心原理详细解析(含场景举例) 本文针对通用RAG框架在术语密集、强监管垂直领域(智能电网)的三大原生适配瓶颈,提出了** RAG领域原生闭环协同RAG范式**,核心是将智能电网领域知识嵌入检索-生成-评估全生命周期,…...

终端里的“皇帝新衣”:扒开 Claude Code 的源码,我看到了 Agent 的求生欲

下午三点,阳光斜着打在机械键盘的侧边,你刚解决完一个诡异的内存溢出,正打算接杯咖啡。 顺手更新了 Anthropic 刚发布的 Claude Code,这个号称能直接在终端里帮你写代码、改 bug、跑测试的“神级工具”。 [外链图片转存中…(img…...

大多数人用AI还是“一次性聊天” Claude Cowork却让你把重复工作彻底扔上自动驾驶

花大价钱开了Claude Pro,每天扔进去一句“帮我写文案”“帮我优化内容”,结果用完就关窗口,下次还是从零开始?重复任务永远在偷走你的注意力,脑子里永远挂着“待办事项”这个隐形标签,效率看起来提升了&…...

STM32开发方式对比与HAL库实战指南

1. STM32开发方式概述作为一名嵌入式开发者,我亲历了STM32开发方式的变迁。从早期的寄存器操作到标准库,再到如今主流的HAL库,每种方式都有其独特的优势和适用场景。对于刚接触STM32的新手来说,选择合适的开发方式往往是个令人困惑…...

门店做小程序失败的常见原因有哪些?

门店做小程序失败的常见原因有哪些?在实际经营中,越来越多门店开始尝试通过小程序实现线上转型,但上线后效果不佳甚至放弃运营的情况也较为常见。门店做小程序失败的常见原因,本质上并不在于工具本身,而在于经营逻辑、…...

门店小程序和收银系统有什么区别?

门店小程序和收银系统有什么区别?在门店数字化过程中,很多企业会同时接触到小程序与收银系统,但两者在功能定位和使用场景上存在明显差异。门店小程序和收银系统的本质区别,在于一个偏向“获客与转化入口”,一个偏向“…...

StructuredTaskScope配置不生效?揭秘ClassLoader隔离、虚拟线程绑定与作用域传播的3层断点排查法

第一章:StructuredTaskScope配置不生效?揭秘ClassLoader隔离、虚拟线程绑定与作用域传播的3层断点排查法当使用 Java 21 的 StructuredTaskScope 时,常见现象是:明明调用了 scope.fork() 并设置了自定义上下文(如 MDC、…...

实体店有没有必要做门店小程序?

在当前消费行为不断向线上延伸的背景下,实体店是否需要搭建门店小程序,已经成为很多经营者在数字化转型过程中必须面对的问题。实体店是否有必要做门店小程序,取决于其是否需要提升获客能力与用户复购效率。一、为什么会出现这个问题在实际经…...