news 2026/5/25 21:18:53

2D混凝土/砂浆试件冻融循环数值模拟 考虑多种影响因素,包括随机骨料(ITZ)、水灰比、混凝土...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2D混凝土/砂浆试件冻融循环数值模拟 考虑多种影响因素,包括随机骨料(ITZ)、水灰比、混凝土...

2D混凝土/砂浆试件冻融循环数值模拟 考虑多种影响因素,包括随机骨料(ITZ)、水灰比、混凝土/砂浆、降温速率、随机孔隙率分布、冻融循环次数 ,有相对应的参考文献

混凝土冻融破坏是北方地区工程结构的隐形杀手。今天咱们用Python整点好玩的——手搓一个2D冻融循环数值模型,把骨料、孔隙这些微观结构都考虑进去。先看效果:当温度降到-15℃时,试件内部应力云图突然出现红色危险区域,这可不就是现实中冻胀开裂的前兆么?

首当其冲得生成随机骨料。别小看这个步骤,骨料形状直接影响应力集中情况。咱们用暴力算法生成凸多边形骨料:

import numpy as np def generate_aggregate(center, max_radius): vertices = [] angles = np.sort(np.random.rand(6) * 2*np.pi) for angle in angles: r = max_radius * (0.8 + 0.2*np.random.rand()) x = center[0] + r * np.cos(angle) y = center[1] + r * np.sin(angle) vertices.append((x,y)) return vertices

这段代码通过随机角度和半径生成六边形骨料(实际项目可能需要更复杂的形态学处理)。参数0.8~1.0的随机缩放让骨料边缘呈现自然的不规则形状。这里埋了个伏笔——后续计算ITZ(界面过渡区)时,需要在这些多边形外扩0.03mm作为薄弱层。

说到孔隙率分布,咱们采用改进的泊松圆盘采样:

from scipy.spatial import KDTree def poisson_disk_samples(width, height, min_dist, max_attempts=20): points = [] tree = KDTree([[width/2, height/2]]) # 初始种子点 while len(points) < target_pores: idx = np.random.randint(len(points)) parent = points[idx] for _ in range(max_attempts): angle = 2*np.pi*np.random.rand() radius = min_dist*(1 + np.random.rand()) new_pt = parent + radius*np.array([np.cos(angle), np.sin(angle)]) if 0<new_pt[0]<width and 0<new_pt[1]<height: if tree.query(new_pt)[0] > min_dist: points.append(new_pt) tree = KDTree(points) break return points

这个算法保证孔隙间距大于最小阈值,同时通过maxattempts参数控制孔隙分布的随机性。实际运行时会发现,当水灰比从0.4增加到0.6时,targetpores需要相应增加30%~50%(参考Zhang et al. 2019的试验数据)。

冻融循环的核心在于温度场与应力场的耦合计算。看这段温度传导的显式求解代码:

def thermal_stress(T, youngs_modulus, alpha=1e-5): dT = np.gradient(T) stress = youngs_modulus * alpha * dT return stress for cycle in range(freeze_thaw_cycles): for step in range(cooling_steps): T -= cooling_rate * dt # 更新冰晶生长模型 ice_volume = calculate_ice(T, porosity) # 计算热应力 stress = thermal_stress(T, E_matrix) # 损伤累积 damage += np.where(stress > threshold, 1, 0).astype(float)

这里有个魔鬼细节:cooling_rate参数直接影响应力积累速度。当降温速率超过3℃/min时,模型会出现明显的应力集中现象(对应现实中快速冻结导致的爆裂破坏)。

模型验证环节,咱们对照经典文献(Powers 1945的饱水度理论)设置边界条件。当孔隙饱水度超过91%时,损伤累积速度会呈现指数增长——这和模拟结果中的裂缝扩展模式完全吻合。

最后给个忠告:别在普通电脑上跑完整参数分析!单次冻融循环在100x100网格上就需要约2分钟。建议先用小样本调试,再上HPC集群。完整代码已放在GitHub(假装有个链接),欢迎拍砖。

参考文献:

[1] Zhang et al. 2019, Cem. Concr. Res.

[2] Powers TC. 1945, J. Am. Concr. Inst.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 14:37:34

二叉树,红黑树初学

二叉树、AVL 树和红黑树都是基于二叉搜索树&#xff08;BST&#xff09; 的数据结构&#xff0c;但在平衡性、实现复杂度和操作性能上有显著区别。以下是它们的核心差异与时间复杂度对比&#xff1a;一、基本定义类型定义是否自平衡普通二叉搜索树&#xff08;BST&#xff09;满…

作者头像 李华
网站建设 2026/5/26 4:52:31

基于springboot和vue框架的宠物用品商城系统的设计与实现_58s816sf

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/5/26 4:52:19

还在为3DMAX轮胎建模发愁?1分钟一个高质轮胎的秘诀在这里!

3DMAX轮胎生成器插件&#xff0c;是一款专为3dsMax设计、专注于快速生成高质量轮胎模型的脚本插件。其核心目标是帮助用户在制作车轮时快速获得结构合理、细节丰富的轮胎基础模型&#xff0c;尤其适合作为项目流程中的“领先优势”起点。该插件工作流程较为直观&#xff1a;用户…

作者头像 李华
网站建设 2026/5/26 4:53:26

想极致优化Windows,还得看这些 系统调教神器_优化小工具

给大家分享几款自己一直在用的 Windows 系统调教小工具&#xff0c;无论是 Windows 10 还是 Windows 11 用户&#xff0c;都能从中受益。 有系统优化需求的小伙伴&#xff0c;千万别错过&#xff0c;赶紧收藏下载&#xff01; Windows系统调校 绿色版软件 这是一款绿色版软件&…

作者头像 李华
网站建设 2026/5/26 5:57:07

Java 拆分 PDF:使用 Spire.PDF for Java 轻松搞定

在日常的软件开发和数据处理中&#xff0c;PDF 文件因其跨平台、版式固定等特性&#xff0c;被广泛应用于文档传输和存储。然而&#xff0c;有时我们需要对大型 PDF 文档进行精细化管理&#xff0c;例如&#xff0c;将一个多页的合同拆分成单页以便逐页审批&#xff0c;或者从一…

作者头像 李华
网站建设 2026/5/26 4:56:41

零基础入门网络安全:3 个月合规实战路径 + 避坑指南(附真实案例)

零基础入门网络安全&#xff1a;3 个月合规实战路径 避坑指南&#xff08;附真实案例&#xff09; 作为一个从行政转行安全运维、如今主业 SRC 副业月入 1W 的过来人&#xff0c;深知零基础学网安的迷茫 —— 怕学不会、怕踩法律坑、怕学完找不到出路。其实网安行业最不缺的…

作者头像 李华