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

四参数随机生长法(QSGS算法)在随机孔隙结构与微观孔隙优化处理中的应用:多孔介质随机生长软件...

四参数随机生长法 QSGS算法 随机孔隙结构 微观孔隙优化处理 多孔介质 随机生长软件 生成图片,可完美处理为CAD图, 可导入abaqus、ansys、comsol、fluent

最近在折腾多孔介质仿真的时候,发现生成靠谱的随机孔隙结构真是门玄学。试过一堆方法,最后被四参数随机生长法(QSGS算法)惊艳到了——这玩意儿就像玩我的世界造地形,几个参数就能搞出千变万化的孔隙结构。

四参数随机生长法 QSGS算法 随机孔隙结构 微观孔隙优化处理 多孔介质 随机生长软件 生成图片,可完美处理为CAD图, 可导入abaqus、ansys、comsol、fluent

先甩段Python代码热热身:

import numpy as np import matplotlib.pyplot as plt def qsgs_generator(size=100, porosity=0.6, pd=0.5, pg=0.3, iter_max=20): grid = np.zeros((size, size)) seeds = np.random.choice([0,1], size=grid.shape, p=[1-pd, pd]) grid[seeds==1] = 1 for _ in range(iter_max): new_grid = grid.copy() for i in range(1, size-1): for j in range(1, size-1): if grid[i,j] == 0: neighbors = grid[i-1:i+2, j-1:j+2] if np.sum(neighbors) >= 1: if np.random.rand() < pg: new_grid[i,j] = 1 grid = new_grid # 孔隙率校准 current_porosity = 1 - np.sum(grid)/grid.size adjust_factor = (porosity / current_porosity) ** 0.5 threshold = np.percentile(grid, 100*(1-adjust_factor)) return (grid > threshold).astype(int)

这段代码最骚的是生长概率pg的控制——就像病毒扩散的传染率,pg越大孔隙长得越奔放。跑出来的效果可以直接用matplotlib可视化:

porous = qsgs_generator(size=200, porosity=0.65) plt.imshow(porous, cmap='binary') plt.axis('off') plt.savefig('pore_structure.png', dpi=300, bbox_inches='tight')

生成二维切片只是开胃菜,用numpy的跨步技巧能轻松扩展到三维:

# 三维版本核心生长逻辑 def grow_3d(grid, pg): new_grid = grid.copy() # 用三维卷积核加速计算 kernel = np.ones((3,3,3)) neighbor_count = convolve(grid, kernel, mode='constant') growth_mask = (grid == 0) & (neighbor_count >= 1) & (np.random.rand(*grid.shape) < pg) new_grid[growth_mask] = 1 return new_grid

重点来了——怎么让这些像素图变成工程师能用的CAD模型?我的野路子是把二值图像转成SVG路径,再用FreeCAD批量拉伸。这里有个取巧的矢量化方法:

from skimage import measure contours = measure.find_contours(porous, 0.5) with open('pore.svg', 'w') as f: f.write('<svg>') for contour in contours: f.write(f'<path d="M {" L ".join(f"{x},{y}" for x,y in contour)} Z"/>') f.write('</svg>')

导入COMSOL做流固耦合分析时,发现直接扔STL文件进去会报错。血泪教训:一定要在导出前做网格光顺处理!用trimesh库预处理下能救命:

import trimesh mesh = trimesh.Trimesh(vertices=vertices, faces=faces) mesh.merge_vertices() mesh.remove_duplicate_faces() mesh.export('smoothed.stl')

玩到最后发现,这算法最神的不是生成效果,而是参数调整像调鸡尾酒——孔隙率控制基酒量,分布概率pd决定冰块分布,生长概率pg是气泡活跃度。想要仿生骨结构就把pg调低多迭代几次,想要泡沫金属就把pd拉高,比玩化学实验还上瘾。

(代码文件建议扔到GitHub配个Actions自动化流程,半夜跑参数扫描第二天直接收菜,亲测比咖啡提神)

http://www.jsqmd.com/news/454332/

相关文章:

  • 小程序商城制作流程,专业商城系统开发 - 码云数智
  • 连接、控制与精进:深入探索 Psycopg2 的现代 PostgreSQL 开发实践
  • 英伟达受挫,TPU能否改写算力格局?
  • 美校申请不内耗!十大留学中介实力护航冲藤校 - 博客湾
  • 【声呐技术】窄带干扰抑制技术:一项综述
  • 穿越周期:国际物流新格局下的理性选择与价值发现 - 品牌评测官
  • AI驱动的数据分类分级实战:从入门到进阶的自动化识别指南
  • 2005-2024年全国城市域名备案数据库
  • 零基础实战:靶场商场网站漏洞利用与安全测试
  • 留学中介TOP10实测|文书全流程服务最能打? - 博客湾
  • 【阅读笔记】OpenClaw入门
  • 【飞机】基于matlab光流的着陆和悬停机动仿真【含Matlab源码 15124期】
  • 2026国际物流公司怎么选?干货解析+权威数据,避开陷阱不踩坑 - 品牌评测官
  • 全开源代码:BLDC PMSM FOC控制程序,有感无感驱动及滑膜霍尔编码器实现
  • COMSOL光学模型下的手性小球特性分析与模拟研究
  • 1975-2030年全球1km分辨率人口空间分布栅格数据
  • 北京留学机构TOP10优选!解锁名校申请捷径 - 博客湾
  • 【声呐技术】FS2-DETR:基于Transformer的增强特征感知小样本声呐目标检测
  • 2026年首个基于OpenClaw pi内核的商用桌面AI私域助理
  • 北京留学机构:靠谱平台助力打造高质量申请 - 博客湾
  • 互联网最常用的加密通信技术
  • 【信道估计】大规模MIMO-OFDM系统的5G通信信道估计算法研究【含Matlab源码 15125期】含文献
  • 从零实现一个进程池(基于管道通信)
  • 【快速EI检索 | SPIE出版】2026 年智能信号与图像处理国际学术会议(ISIP 2026)
  • 全球电动滚筒市场发展趋势分析
  • FOMO All In One
  • 第三部分 — 服务工作者(后台)chrome.runtime 是什么(在 MV3 的说法中)
  • matlab画图工具
  • 2005-2025年我国乡镇级的逐日最低气温数据(Shp/Excel格式)
  • 只禁止「显卡」驱动自动更新 不影响声卡、网卡、蓝牙、任何其他硬件