【开源】开孔泡沫结构建模/voronoi泡沫/voronoi晶体/多胞材料/维诺结构/泰森多边形

本文主要是介绍【开源】开孔泡沫结构建模/voronoi泡沫/voronoi晶体/多胞材料/维诺结构/泰森多边形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注:开源分享,任何人不得将其打包对外出售等,遵从GPL协议,若在此基础上做了修改,那么修改后的代码/文章也必须开源。

目录

注:开源分享,任何人不得将其打包对外出售等,遵从GPL协议,若在此基础上做了修改,那么修改后的代码/文章也必须开源。

一、概念

二、建模

2.1 voronoi晶体

2.2 二维voronoi泡沫

2.3 三维开孔泡沫

三、其他


一、概念

开孔泡沫是一种具有许多开放孔隙的材料结构,通常由连续的固态结构和分散的气泡组成。这种结构使得开孔泡沫具有轻质、吸音、隔热和吸能等特性。

多胞材料(Cellular materials)是指用固体棱边或者固体壁面所构成的孔穴组合体,其内部含有大量空穴又具有一定胞结构,相对密度一般小于0.3, 即孔隙率大于0.7。

Voronoi图,也称为狄利克雷镶嵌或泰森多边形,在自然界中无处不在,Voronoi 图是一种细分模式,其中分散在平面上的许多点细分为正好 个单元格,包围着最接近每个点的平面部分。(ref:沃罗诺伊图的迷人世界 |内置 (builtin.com))

关于Voronoi图的生成原理,想象你在一个沙漠里,而有两口井可以取水。如果你想去最近的井,应该去哪口井?显然,这取决于你站立的位置。可以画一条划分沙漠的线:在线路的“左边”,去“左边”的井上更近,在线的“右边”,去“右边”的井更近。 这条线实际上就是两口井之间的中垂线,那么现在有第三口井、第四口井..那么你可以继续进行划分,于是可以得到距离每个井更近的空间。(ref:沃罗诺伊镶嵌 (datagenetics.com)  强烈推荐初学者仔细看看这篇BLOG,非常生动形象通俗易懂):

Voronoi 图是一种将空间划分为不重叠的区域的方法,其中每个区域都由一个中心点和与该中心点最近的其他点组成。在开孔泡沫建模中,Voronoi 算法可以用于生成具有随机或规则分布的泡沫结构。  Laguerre tessellation(待补全)

二、建模

生成泰森多边形结构的方式有很多种,这里主要讨论voronoi算法生成。

目前主流的建模方法分为MATLAB/PYTHON两种,但我在此分享的仅仅为其他更简单的构建方法,相对于刚开始接触此领域但没有传承的同学来说更容易上手。

2.1 voronoi晶体

已经有了非常成熟的开源,但没有那么好上手

①NEPER

请参照Neper: Polycrystal Generation and Meshing — Neper 4.6.1 documentation

Neper是一个需要在linux环境下利用python生成晶体模型的开源软件包,因此为了成功使用,需要学习linux常见调用命令、熟练安装各种依赖/组件、认真学习neper帮助文档。以及查阅 Pavel Ferkl. Mathematical Modelling of Properties and Evolution of Polymer Foams. PhD thesis, University of Chemistry and Technology Prague, 2018.

如果你是完全不懂这些的新手,我更建议考虑在linux下安装conda,再用conda安装neper,在github上可以找到快捷指令。

ps:安装linux系统,Win10 (1809 以上) 的用户可以通过终端直接使用 Linux ubuntu 子系统 (WSL),但没有可视化界面也就意味着对命令使用要求更高,建议按照自己的情况分别处理,win11界面进入linux系统如下:

对于命令调用,我常用的基本命令只有下面几个:

  1. ls:列出当前目录下的文件和子目录。

  2. pwd:显示当前工作目录的路径。

  3. cd:切换目录。例如,cd /path/to/directory 可以进入指定目录。

  4. mkdir:创建新目录。使用方式如下:mkdir new_directory

  5. rmdir:删除空目录。例如,rmdir empty_directory

  6. cp:复制文件或目录。例如,cp file1 file2 会将file1复制到file2。

  7. mv:移动文件或重命名文件。可以用它来移动文件或目录,也可以将文件重命名。例如,mv file1 file2 会将file1重命名为file2。

  8. rm:删除文件或目录。请小心使用,因为删除后无法恢复。rm filenamerm -r directory(递归删除目录及其内容)。

其他基础学习参照 
Neper 学习文档 | Wiidu
   其他我有空再续写...github上有非常多相关内容,搜一搜可以学会的!

成功运行生成模型如下:

②PYTHON

Abaqus三维多晶体脚本建模-Voronoi多面体建模 (qq.com)

2.2 二维voronoi泡沫

HOMTOOLS - Homogeneization toolbox for Abaqus (cnrs-mrs.fr)

 

2.3 三维开孔泡沫

其实有很多方式,python或者matlab都可以,但是没有时间慢慢写了,这里我介绍最简单的一种:用软件直接生成。

下载:https://www.huajclub.com/9650.html

软件逻辑非常简单,就是把内置代码可视化,相当于一键参数化建模,具体可以在他们官网找到很多案例,除了泡沫还有其他模型生成也非常简单,但是需要科学上网。Voronoi lattice ramping thickness and spacing | nTop | nTop

此源文件放在我的资源中。

三、其他

科研不易,希望大家秉承开放、自由的心态交流。

实在太忙,很多地方来不及细写,等我论文完成再来详细写完。

不许拿去别的地方收费!!!!!!!!!

这篇关于【开源】开孔泡沫结构建模/voronoi泡沫/voronoi晶体/多胞材料/维诺结构/泰森多边形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215901

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX