weihuayi的个人博客分享 http://blog.sciencenet.cn/u/weihuayi

博文

49, 3D mesh generation

已有 4414 次阅读 2010-9-5 15:49 |个人分类:生活|系统分类:科研笔记|关键词:学者| MeSH, generation, CGAL



49.1 Introduction

这个软件包主要用于生成各向同性四面体网格,来离散三维区域;  两个主要功能: 生成和细分; 区域可以是单连通区域,也可以是多连通区域

Input domain

pure 3D complex?
A: 与其相对应的是 simplex, 也许可以分别译为:单纯形 和 复合形。 3D complex  is pure, 意思是每一个face(0d,1d,2d,3d)都包含在至少一个3d的face中。 所以complex 可以描述为3D单元的集合。
the difference of face and facet?
A: face 包括 vertices(0), edges(1), facets(2) 和 cells(3) 

目前可以处理: implicit functions, polyhedral domains, and domains defined through 3D labeled images.

Output Mesh
区域的每个曲面片或者子区域的边界是由Delaunay facets的集合来逼近, 这些Delaunay facets的对偶Voronoi edge和曲面片相交。 这些facets 被称为 Surface facets or boundary facets.

Delaunay refinement

网格生成算法 是由一个Delaunay refinement process, 再加上一个优化组成。

网格生成准则。
Surface facet: 1, the angular bound. 2, the radius bound. 3, the distance bound.
Mesh cell: 1, the radius-edge bound. 2, the radius bound.

Optimization phase

 a Lloyd smoothing, an odt-smoothing, a perturber and an exuder.

四种优化方法的调用顺序: odt-smoother, Lloyd-smoother, perturber, exuder

49.2 Interface

template <class C3T3, class MeshDomain, class MeshCriteria>
    C3T3   make_mesh_3( MeshDomain domain,
                                      MeshCriteria criteria,
                                      parameters::internal::Lloyd lloyd = parameters::no lloyd(),
                                      parameters::internal::Odt odt = parameters::no odt(),
                                      parameters::internal::Perturb perturb = parameters::perturb(),
                                      parameters::internal::Exude exude = parameters::exude())

template <class C3T3, class MeshDomain, class MeshCriteria>
void                        refine_mesh_3( C3T3& c3t3,
                                       MeshDomain domain,
                                       MeshCriteria criteria,
                                       parameters::internal::Lloyd lloyd = parameters::no lloyd(),
                                       parameters::internal::Odt odt = parameters::no odt(),
                                       parameters::internal::Perturb perturb = parameters::perturb(),
                                       parameters::internal::Exude exude = parameters::exude())

The function make_mesh_3 generates from scratch a mesh of the input domain, while the function refine_mesh_3 refines an existing mesh of the input domain.

LabeledImage_3

CGAL::lloyd_optimize_mesh_3

#include <CGAL/lloyd optimize mesh 3.h>
template<typename C3T3, typename MeshDomain>
Mesh optimization return code
                         lloyd optimize mesh 3( C3T3& c3t3,
                                                MeshDomain domain,
                                                double time limit=0,
                                              std::size t max iteration number=0,
                                                double convergence=0.02,
                                                double freeze bound = 0.01)
Precondition: time limit ≥ 0 and 0 ≤ convergence ≤ 1 and 0 ≤ freeze bound ≤ 1


CGAL::make_mesh_3

The vertex and cell base classes of the triangulation C3T3::Triangulation are required to be models of the concepts MeshVertexBase_3 and MeshCellBase_3 respectively.

class-->model--->concept , 怎样去理解这个关系?

concept 是用来描述一个数据类型的要求的, 它有如下的方面:
0, Definition: 定义
1, Refine : 是某个其它概念的细化
2,Types:它拥有的数据类型
3,Operations: 它拥有的操作
4,Internal: 中间操作,不鼓励用户使用,可能会改变。
5,Has Models: 拥有的Models

 class是类
 
 Definiton:
 Parameters: 模板参数
 Is Model for the Concepts: 是某个概念的Model
Types: 拥有的数据类型
 Inherits From: 继承自
Creation: 如何创建
 Operation: 操作

https://m.sciencenet.cn/blog-284809-359499.html

上一篇: Trait Class
下一篇:Matlab 中的字符串转换

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 17:35

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部