news 2026/6/4 10:59:17

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/3 13:01:19

Java 零基础入门学习(小白也能看懂!)

1. 初始 Java 1.1 Java 概述 1.1.1什么是 Java Java是一种优秀的程序设计语言&#xff0c;它具有令人赏心悦目的语法和易于理解的语义。 不仅如此&#xff0c;Java还是一个有一系列计算机软件和规范形成的技术体系&#xff0c;这个技术体系提供了完整的用于软件开发和跨平台…

作者头像 李华
网站建设 2026/6/3 13:46:18

容器适配器的初步认识

容器适配器的概念&#xff1a;容器适配器是一个封装了序列容器的类模板&#xff0c;它在一般序列容器的基础上提供了一些不同的功能。容器适配器的作用&#xff1a;它可以通过适配容器现有的接口来提供不同的功能。大致含义与电源适配器类似。即&#xff1a;通过封装某个序列式…

作者头像 李华
网站建设 2026/5/23 14:18:30

不用下载App!iPhone 和安卓手机录屏方法大全

使用手机时&#xff0c;我们经常需要录制屏幕操作&#xff1a;比如保存无法下载的视频、制作教学演示、记录游戏高光时刻&#xff0c;或是保存重要通话内容。其实&#xff0c;无论是安卓还是苹果手机&#xff0c;系统都已内置了录屏功能&#xff0c;无需安装第三方App&#xff…

作者头像 李华
网站建设 2026/6/2 21:50:21

基于springboot和vue框架的选课系统与课程评价整合平台_9dg94p7s

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

作者头像 李华
网站建设 2026/5/30 22:05:59

多智能体编队与避障:从理论到实践

多智能体编队与避障 #人工势场#多智能体#编队#避障#拓扑结构#队形变换在智能体协同作业的领域中&#xff0c;多智能体编队与避障是一个极具挑战性和趣味性的话题。想象一下&#xff0c;一群无人机需要以特定的编队飞行&#xff0c;同时还要巧妙地避开途中的各种障碍物&#xff…

作者头像 李华
网站建设 2026/6/3 15:57:04

GitPuk基础到实践,如何详细掌管代码

GitPuk是一款开源免费的代码管理工具&#xff0c;在上一篇已经介绍了如何创建你的第一个GitPuk仓库&#xff0c;这篇文章将介绍如何进行代码管理。 1、通过GitPuk推送代码 1.1 命令关联远程库 在本地的项目里面根据下面的命令&#xff0c;关联GitPuk中创建的代码仓库&#x…

作者头像 李华