news 2026/6/25 18:58:08

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/6/25 8:03:09

网络协议TCP

网络编程TCPTCP的核心特点&#xff1a;面向字节流&#xff08;UDP是数据报&#xff09;&#xff0c;所有的读写的基本单位都是byteServerSocket&#xff1a;专门给服务器使用的&#xff0c;负责连接&#xff0c;不对数据进行操作Socket&#xff1a;服务器和客户端都可以使用当服…

作者头像 李华
网站建设 2026/6/24 4:32:03

重庆市大学生信息安全竞赛部分writeup

免责声明&#xff1a;本文章发布于比赛正式结束后&#xff0c;不存在提前泄露比赛信息及违规泄露wp的情况&#xff0c;作者不对读者基于本文内容而产生的任何行为或后果承担责任。如有任何侵权问题&#xff0c;请联系作者删除。 WEB5 传一句话木马&#xff0c;dirsearch扫出来…

作者头像 李华
网站建设 2026/6/24 19:37:06

数据有价可变现,华储数据助力解锁价值红利

近期&#xff0c;《数据有价 付费有为——加快培育为优质数据付费的市场意识》一文深刻指出&#xff0c;“为优质数据付费”是数据要素化、价值化、市场化的核心要求。站在数据提供方的视角&#xff0c;这一趋势释放了明确信号&#xff1a;优质数据绝非“沉没资产”&#xff0c…

作者头像 李华
网站建设 2026/6/26 0:22:17

Python 全面深入解析:从入门到精通

Python 全面深入解析&#xff1a;从入门到精通第一部分&#xff1a;Python 语言概述与哲学1.1 Python 的诞生与发展Python 由吉多范罗苏姆&#xff08;Guido van Rossum&#xff09;于1989年圣诞节期间在荷兰创建&#xff0c;最初作为 ABC 语言的替代品。1991年&#xff0c;Pyt…

作者头像 李华
网站建设 2026/6/24 18:49:03

一个完整的 Web 请求到底发生了什么

一、从输入一个网址开始 当我们在浏览器输入一个网址&#xff0c;然后按下回车&#xff0c;接下来浏览器显示了页面。网速好的话这之间可能就一秒&#xff0c;但在这一秒内到底发生了什么&#xff1f; 本文主要内容是试图记录一个完整 Web 请求的详细过程&#xff0c;从用户在…

作者头像 李华