许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  abaqus生成混凝土球形骨料气泡,体积比可控随机分布脚本

abaqus生成混凝土球形骨料气泡,体积比可控随机分布脚本

阅读数 4
点赞 0
article_banner

弹窗一出来先看Timeout设了多少,10000经常不够,球形骨料随机投放体积比上到40%以上等待时间指数级涨,45%左右还能磨,50%基本投不进去,硬塞就靠放宽minGap或者加大Timeout,效果也就那样。气泡反过来,体积比低,5%到15%随便投,投的是空腔,布尔差集从基体里挖掉。


体积比是目标不是结果,脚本里得手动换算,给定长方体尺寸L W H和体积分数vf,骨料总体积Vagg=vf×L×W×H,按级配比例把Vagg分配到各粒径区间,比如5-10占0.3,10-15占0.5,15-20占0.2,加起来是1,再用区间中值半径算单球体积,N=区间体积除以单球体积取整,这是估算,实际投放过程中重叠判定被拒的球一直重试,最终体积比取决于Timeout给不给够,半径范围min_radius和max_radius控制大小。


位置生成和重叠判定最耗时,三重循环外层待投放球列表,内层遍历已放置球逐个算中心距,距离小于两球半径之和判定重叠,标记invalid继续投下一个位置,全遍历完没重叠才append进已放置列表。球心坐标random.uniform在0到L区间取,半径按级配随机。O(N²)复杂度,N超过两三百之后明显卡,边长100mm骨料N=200跑五分钟。球心到六个面距离都必须大于自身半径,不然球体穿透基体边界,网格划出来是破的。

abaqus生成混凝土球形骨料气泡,体积比可控随机分布脚本

Abaqus建模分两段,第一段纯Python不开CAE,把球心坐标半径有效性全部算完,输出文本或存列表。第二段在Abaqus里跑,用Part和BaseSolidExtrude建球,效率陷阱是不要每生成一个球就调一次Part,批量生成所有球部件再统一装配,更快是把球体全部画在一个part里作为独立solid cell,后面布尔运算切。装配用Instance定位到随机坐标,Merge/cut做布尔差集,差集出来基体带球形孔洞,球体单独保留作为骨料part,分别赋材料属性,砂浆和骨料。


气泡生成和骨料共用同一套位置投放算法,区别只在布尔运算方向。骨料从基体切掉球体后保留球体实体,气泡从基体切掉球体后丢掉球体,基体上留空腔。气泡半径通常比骨料小,min_radius到max_radius给0.5到2,数量多但体积小。随机气泡级配曲线简化成单一区间,直径正态分布,均值和方差手调。


Mesh这块球体和基体分别画网格,球体用Tet自由网格,基体也用Tet,球形空腔形状规整程度不够做Hex,强行structured hex会失败。网格尺寸控制在骨料最小半径的0.3到0.5倍,太小网格量爆炸。接触或Tie绑定,骨料砂浆界面用surface-to-surface tie,主面选基体内球面,从面选骨料外球面,容差0.1左右。气泡内表面是自由面不绑任何东西,载荷直接加基体。


random.seed设固定值,参数化分析保证骨料分布可复现,改一个参数变一次分布没法做对照,seed放脚本开头每个case换一个,记录在文件名或log。跑批量用cmd提交abaqus cae noGUI=script.py,参数从命令行传,vf=0.35 radius_min=3 radius_max=8,不用每次手动改脚本。工作目录输出脚本.py生成的inp以及record.txt记录seed和实际投放骨料数量和体积比。实测实际体积比一般比目标低两三个百分点,最后几个球塞不进去Timeout就停,差太多把Timeout从10000提到50000再试。气泡和骨料混在一起投,气泡先投还是后投影响很大,气泡先投占位小容易通过,骨料先投再插气泡基本全被拒,先试气泡占位然后骨料让路,冲突解决用……


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空