没有合适的资源?快使用搜索试试~ 我知道了~
MicroStructPy:Python统计微结构网格生成器,适用于多相材料模拟的开源软件
软件X 12(2020)100595原始软件出版物MicroStructPy:Python中的统计微结构网格生成器Kenneth A. Hart1,Julian J. Rimoli,2佐治亚理工学院,亚特兰大,GA 30332,美国ar t i cl e i nf o文章历史记录:收到2020年收到修订版2020年8月25日接受2020年关键词:微结构网格生成多晶体拉盖尔镶嵌a b st ra ctMicroStructPy是一个用Python编写的统计微结构网格生成器。该软件包包括通过以下方式生成网格的类和方法:(i)创建晶粒种子几何形状的列表,(ii) 将它们包装到域中,(iii)执行种子几何形状的拉盖尔镶嵌,以及(iv)执行高质量的非结构化网格划分。结果可以可视化并与指定的微观结构特性进行比较。MicroStructPy精确地再现了具有任意数量的相、体积分数和分布的2D和3D多晶微观结构,每个都包括细长晶粒的可能性。它还可以生成非晶相和多孔材料的网格。网格适用于直接数值模拟,这是材料和地质力学计算力学中的一种流行技术。该软件包包含大量文档,包括指南和演示,以方便新用户采用©2020作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.3.2用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-20-00001Code ocean compute capsule法律代码许可证MIT许可证使用Git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求、操作环境依赖性Python 3.6+; Windows、MacOS或Linux; aabbtree、lsq-ellipse、matplotlib、meshpy,numpy,pybind11,pyquaternion,pyvoro-mmalahe,scipy,xmltodict如果可用,链接到开发人员文档/手册https://docs.microstructpy.org问题支持电子邮件support@microstructpy.org1. 动机和意义材料的响应受其组分的性质和组成的显著影响,下文称为材料的微观结构。对钢的观察表明,晶粒较小的试样具有较高的极限强度[1,2]。晶粒尺寸和长径比也影响*通讯作者。电子邮件地址:rimoli@gatech.eduJ.J. Rimoli)。1 博士丹尼尔·古根海姆航空航天工程学院DanielGuggenheim School ofAerospace2 丹尼尔·古根海姆航空航天工程学院副教授https://doi.org/10.1016/j.softx.2020.100595材料的导热系数[3,4]。最后,增材制造可以从各向同性构建材料中创建各向异性的本体材料属性[5]。从微尺度组分精确可靠地预测宏观尺度材料性质是目前一个活跃的研究领域。现代预测技术通常依赖于直接数值模拟(DNS),由此将相关属性和边界条件应用于代表性体积单元(RVE)网格。有几种技术可以表征材料的微观结构。这些表征中的每一个都与几种更多的技术相关联,以虚拟地重建微观结构。现代扫描技术包括3-D X射线衍射(3D-XRD)和X射线断层扫描,其产生一个2352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxK.A. 哈特和J. 里莫利软件X 12(2020)1005952n==∑njFig. 1. 微结构网格生成过程。通过下面描述的步骤,将微结构的文本描述转换成非结构化三角形或四面体网格。网格的统计数据可以与规定的数据进行比较,以确保微观结构的保真度。微结构的体素光栅[6,7]。这些光栅可以直接转换为高保真DNS的微观结构网格[8]。光栅也可以转换成n点相关函数,将微观结构数据压缩成几个函数[9]。可以使用全局优化和相位恢复来反转相关函数以生成相同微结构的多个实现[10]。光栅也可以转换为统计分布,如体积分数和颗粒体积分布[11]。这些分布可用于通过将种子几何体包装在一起来重建微结构,然后创建对偶,例如由于普遍性和可用性,所提出的工作遵循这种范式多种材料的体积分数和粒度分布。在本文中,我们介绍了MicroStructPy,一个用Python编写的统计微结构网格生成器[15]。MicroStructPy是不断增长的开源微结构网格生成器生态系统的一部分,通过不同的功能满足不同的需求。例如,Neper通过优化镶嵌点的位置和权重来产生具有统计学代表性的微观结构[13,16]。Dream.3D软件使用通用管道系统生成微观结构网格[17]。最后,PuMA是一个专门用于多孔材料的微结构软件,如纤维增强复合材料和泡沫[18]。MicroStructPy的独特之处在于,它再现了统计微观结构分布,而不需要进行光学测量。2. 软件描述2.1. 软件构架MicroStructPy遵循四个主要步骤来生成微结构的网格,如图所示。1:(i)将种子几何形状填充到域中,(ii)将种子转换为多圆/多球体近似,(iii)镶嵌域以创建多边形/多面体网格,以及(iv)质量非结构化网格化以创建三角形/四面体网格。为了验证,将输出网格的统计数据与输入文件中指定的微观结构的所需统计数据进行比较。与这些步骤中的每一个相关联的方法在以下小节中描述。2.1.1. 种子几何形状生成种子几何形状并将它们包装到域中是创建微结构的第一步。在MicroStructPy中,有关微结构的信息包含在输入文件中,该文件包含每个组成相的规格以及域的几何形状的定义。此信息用于创建未定位种子的初始列表。体积分数Vf和平均晶粒体积E[V]用于根据等式(1)确定每个相的粒子数密度n其中下标i表示第i相的粒子数密度。由于ni是每单位体积的相i的颗粒的数量,因此给定颗粒属于该相的概率由等式给出。(二)、使用多球体方法,它可以产生细长的颗粒[19]。本文件的提醒部分安排如下。第2节Vf,iiE[Vi]PNI(一个)(二)描述了软件体系结构和功能,包括最重要方法的片段。 第3节包含一个说明性示例。最后,第4节讨论了MicroStructPy对研究社区的影响,第5节总结了这项工作。我J因此,通过对具有权重pi的分类分布进行采样以确定种子的相位,对与该相位相关联的分布进行K.A. 哈特和J. 里莫利软件X 12(2020)1005953[客户端]--∥ − ∥阶段,并且重复该过程,直到列表中的种子的量与域的量匹配。例如,图1中的第二材料包含在分布U 0上具有均匀分布区域的椭圆形种子。五二5,恒定的纵横比为2,以及均匀随机的旋转角度。选择材质2时,通过对面积分布和旋转角度分布进行采样,基于椭圆的面积和长宽比求解椭圆的长度和高度,然后将其旋转通过采样的旋转角度来创建椭圆。一旦生成了列表,就按照颗粒体积的降序将种子定位在域内。通过对与其相位相关联的位置分布进行采样来定位第一种子,该相位默认为在整个域中均匀随机。随后的种子通过采样位置定位,检查与先前定位的种子的重叠,然后如果重叠超过相对公差则重新定位与不允许重叠相比,允许种子重叠导致种子和谷粒体积之间更好的相关性。种子之间的空隙将增加它们的体积到镶嵌中的从颗粒体积中减去附近种子的重叠体积,平衡来自附近空隙的增加的体积。重叠是使用种子的多圆/多球体近似来确定的,因为设下标i表示被定位颗粒的近似圆,下标j表示先前定位颗粒的近似圆,如果xi−xj<$+αmin(ri,rj)ri+rj(3)<其中x是圆心,r是半径,α是相对重叠公差。MicroStructPy中包含校准曲线,以设置适当的α值,从而使规定和获得的微观结构参数之间的误差最小化[19]。这种重叠检查是用所有先前定位的种子的子集来执行的使用轴对齐边界框(AABB)树确定子集,AABB树是一种空间层次结构,旨在将种子与其附近的种子分组。每个种子都有一个AABB,所以如果两个种子重叠,那么它们的AABB也重叠。这些AABB被组织成一个二叉树,其中两个AABB被一个更大的AABB包围,然后AABB与另一个AABB分组,并继续下去,直到有一个AABB包围所有种子AABB。在这个二叉树中,重叠测试需要更少的计算,因为树的下行有效地将潜在重叠的数量减少了一半[19]。这种层次加速了播种过程,导致微观结构域密集地填充有种子几何形状。2.1.2. 多圆逼近将种子几何结构分解成圆/球的集合简化了前一步骤中的重叠检查过程,并为下一步骤提供了合适的加权点列表。这是Ilin和Bernacki [20]工作的扩展,他们使用多个Laguerre-Voronoi细胞生成椭圆颗粒如图2,从[19]中,Ilin和Bernacki方法首先应用于椭球的两个横截面,标记为(a)和(b)。然后将(a)和(b)的圆心映射到第三个横截面中,该横截面被标记为(c)。接下来,在从第三个横截面,标记为(d)。半径是根据点与椭圆表面之间的最小距离指定给这些中心的。最后,来自椭圆体的该部分的结果被镜像到其他象限中以创建椭圆体的多球近似矩形晶粒也可以用一系列圆来近似,附加的圆可以分辨角。通过多圆近似,密集的种子几何形状被转换成圆/球的集合。图二、 多球体中心,椭圆体(a)多圈xz平面的多圆近似,(b)yz平面的多圆近似,(c)非终端圆心的网格,(d)在xy平面相切的球体中心2.1.3. 多边形网格在上一步中生成 的圆/ 球的集合用于创 建Laguerre 几何中的Voronoi图,也称为幂图[21]。Laguerre-Voronoi图是基于到最近种子点的距离的d维欧几里德空间E d的设球面s的中心为c,半径为r,从任意点p到s的幂距由方程给出。(4)其中pC是p和c之间的欧氏距离。如果S是球体s的集合,则与球体s相关联的Ed的区域由等式定义(五)、pow(p,s)=p−c2−r2(4)R(s)=p∈E d|pow(p,s)
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功