文档章节

EasyMesh - A Two-Dimensional Quality Mesh Generator

eryar
 eryar
发布于 2017/01/08 21:11
字数 1070
阅读 32
收藏 0
点赞 0
评论 0

EasyMesh - A Two-Dimensional Quality Mesh Generator

eryar@163.com

Abstract. EasyMesh is developed by Bojan Niceno, it is a two-dimensional quality mesh generator. EasyMesh can generate two dimensional, unstructured, Delaunay and constrained Delaunay triangulations in general domains. It can handle holes in the domain. The paper focus on the usage of EasyMesh.

Key Words. EasyMesh, Delaunay Triangualtion, Triangulation, Mesh

1.Introduction

目前,工程技术领域中各类物理系统的数值分析计算方法主要包括以下步骤:第一步,建立物理系统的控制方程。第二步,离散化物理系统的定义域。在工程技术领域人们通常将离散化的几何定义域的一个子域单元称为网格(mesh),将将离散化过程称为网格划分或者网格生成(mesh generation)。第三步,离散化连续PDE模型(Partial Differential Equation, PDE偏微分方程)。第四步,求解线性代数方程组。第五步,计算可视化。

网格划分技术是偏微分方程数值解法中比较关键的一步,关于网格划分的库也有很多,如Triangle,netgen, gmsh, tegen等等。网格划分技术不仅用于有限元计算,也可以用于模型的可视化。本文主要介绍这个轻量化的网格划分库EasyMesh。

2.EasyMesh Features

EasyMesh能够对于由折线围成的多空洞、多介质区域生成指定局部加密的Delaunay三角剖分。使用了很简单的文本文件作为数据的输入,生成了不同的结果文件,方便查看结果。其实将输入和输出部分稍加修改,就可以将EasyMesh内嵌到自己的程序中,而不用单独执行EasyMesh。

wps3E2D.tmp

Figure 1. EasyMesh website (http://web.mit.edu/easymesh_v1.4/www/easymesh.html)

EasyMesh也可以从上述网站中进行下载,下载后可以直接在Visual Studio中编译。

3.Using EasyMesh

用C写的EasyMesh虽然有点历史了,但是编译起来也是很顺利的,只有几个warnings。编译好生成一个EasyMesh.exe,然后像其他的控制台程序一样,通过传参数来使用。直接运行就会看到程序的完整使用说明:

wps3E3E.tmp

Figure 2. EasyMesh Help Info

可以在EasyMesh.exe的文件夹中做一个批处理文件,如EasyMesh.bat,其中内容如下:

title EasyMesh
EasyMesh
pause

这样就可以看到这个帮助信息了。使用如下命令则会生成一个例子文件:

title EasyMesh
EasyMesh +example
pause

然后再对生成的example.d进行剖分:

title EasyMesh
EasyMesh example.d +dxf
pause

将上面的三句话分别保存成一个批处理文件,运行批处理就可以得到相应的结果了。运行上面这个批处理得到对example.d的剖分结果文件example.dxf,用AutoCAD打开这个DXF文件查看结果:

wps3E3F.tmp

Figure 3. Mesh Result

wps3E40.tmp

Figure 4. Delaunay Triangulation

wps3E41.tmp

Figure 5. Voronoi Result

输入文件中比较重要的一点是边界线的方向是逆时针的,孔的线是顺时针方向的。下面将自带的几全例子文件全部生成网格:

wps3E42.tmp

Figure 6. EasyMesh example2.d +dxf

wps3E43.tmp

Figure 7. EasyMesh example3.d +dxf

wps3E44.tmp

Figure 8. EasyMesh example4.d +dxf

wps3E54.tmp

Figure 9. EasyMesh example5.d +dxf

wps3E55.tmp

Figure 10. EasyMesh example6.d +dxf

wps3E56.tmp

Figure 11. EasyMesh example7.d +dxf

通过设备下图中的spacing可以设置网格的密度:

wps3E57.tmp

Figure 12. Spacing of a point

 

4.Conclusion

网格划分技术广泛用于三维模型可视化,有限元计算中。借助这些开源库的力量,可以让自己快速实现一些功能。本文主要介绍了EasyMesh的用法及生成结果,如果对网格划分技术感兴趣的同学可以自己下载源码学习。

因为EasyMesh源码精巧,且包含了输入和输出部分的源码,可以将EasyMesh输入输出部分稍加修改就可以直接在自己的程序中使用,而不用单独编译成一个可执行程序。

5.References

1. EasyMesh website. http://web.mit.edu/easymesh_v1.4/www/easymesh.html

2. EasyMesh Source: http://www-dinma.univ.trieste.it/nirftc/research/easymesh/

3. 王成恩. 面向科学计算的网格划分与可视化技术. 科学出版社. 2011

4. Triangle. http://www.cs.cmu.edu/~quake/triangle.html

5. Triangle eryar. http://www.cppblog.com/eryar/archive/2014/03/29/206394.aspx

 

PDF Version: EasyMesh

© 著作权归作者所有

共有 人打赏支持
eryar
粉丝 18
博文 127
码字总数 227012
作品 0
武汉
使用SciPy插值,Interpolation (scipy.interpolate)

插值是进行数据处理和可视化分析的常见操作,基于Python的SciPy支持一维和二维的插值运算。 这里是SciPy的官方文档。 Contents(原文,英文索引) Interpolation (scipy.interpolate) 1-d Exa...

openthings ⋅ 2016/01/11 ⋅ 0

Unity导航 (寻路系统Nav Mesh Agent)

第一种 简单寻路 地面接触到的。到达目标点不用跳跃能够一直走路到达。 场景视图中简单搭设几个物体。如图1 胶囊体为寻路者,黄球为目标点 红地板,绿色障碍物。 现将地板以及障碍物选中 在检...

宁金峰 ⋅ 2017/11/14 ⋅ 0

KeePass 2.27 发布,密码管理工具

KeePass 2.27 发布,此版本是个稳定版本,建议每位用户都从之前的 2.x 版本升级到 2.27 版本。KeePass 2.27 主要是 auto-type 功能的改进,集成以及可用性增强,还有各种小的功能改进。此版本...

oschina ⋅ 2014/07/07 ⋅ 6

KeePass 1.28 发布,密码管理工具

KeePass 1.28 发布,此版本现已提供下载。此版本是个稳定版本,建议升级!KeePass 1.28 版本 100% 向后兼容之前的版本,包括用户界面和集成的改进,各种小的新特性和系统改进。 此版本现已提...

oschina ⋅ 2014/10/02 ⋅ 4

Unreal Engine 4.11 Preview 1 发布,渲染提升

Unreal Engine 4.11 Preview 1 发布,主要更新如下: Rendering Updates: New physically based shading model for realistic hairbased on the latest research from film. It models 2 sp......

oschina ⋅ 2015/12/23 ⋅ 6

KeePass 2.24 发布,众多新特性!

KeePass 2.24 发布了,下载地址: KeePass 2.24. KeePass是一款密码管理工具.它能帮你记住电子邮件,主页FTP,上网,论坛等用户名和密码,而免去了你众多的烦恼,节省了时间.它把密码保存在高度加...

狗头666 ⋅ 2013/11/17 ⋅ 7

openssl rand 指令解析

1. rand 查看man帮助文档 #man sslrand RAND(1) OpenSSL RAND(1)用户指令 NAME rand - generate pseudo-random bytes 生成‘伪随机数’字节 SYNOPSIS openssl rand [-out file] [-rand file(......

年年歳歲 ⋅ 2017/02/17 ⋅ 0

numpy的random模块

【说明】 翻译自官网的文档。 随机抽样 (numpy.random) 简单的随机数据 array([[ 0.14022471, 0.96360618], #random 2.1923875335537315 #random array([[-4.49401501, 4.00950034, -1.81814......

罗兵 ⋅ 2015/03/10 ⋅ 0

利用pytorch实现GAN(生成对抗网络)-MNIST图像-cs231n-assignment3

以后博客都在https://oldpan.me 中更新 Generative Adversarial Networks(生成对抗网络) In 2014, Goodfellow et al. presented a method for training generative models called Generati......

oldpan ⋅ 2017/12/04 ⋅ 0

SonarQube JavaScript 2.11 发布

SonarQube JavaScript 2.11发布,这个版本加入了16项新规则实施一些与ECMAScript 2015相关的编码实践(原ECMAScript 6或ECMAScript和谐版)。 16项新规则: “arguments” should not be acce...

oschina ⋅ 2016/03/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部