本文转载自:CAD中“非流形体”几何简介
在使用CAD建模工具和各种仿真软件中,可能会碰到类似如下警告:
The geometry is non-manifold...
Non-manifold vertixs exist...
关于Non-manifold(非流形体),数学解释比较复杂。通俗讲该几何现实中不存在或无法制造。最典型的例子就是两个相同的立方体,完全相互接触,接触所在的共享面就是非流形体。该共享面既不能独立存在,也不能单独归在两个实体中的一个。在实践中,拓扑面下的几何数据相同。
在三维CAD建模中,如果出现非流形体,也就意味着几何有重叠,干涉。
以下内容来自网络:
流形(manifold)是一个几何拓扑术语,意思是:允许不相交的块存在于单个逻辑体中。
非流形(Non-manifold )则意味着:所有不相交的块必须是它们自己的逻辑体。
当然,这个定义往往更令人困惑,所以也许考非流形和流形的最佳方式是这样的:流形本质上意味着“可制造的”,非流形意味着“不可制造的”。换句话说,流形的意思是:你可以用一块金属加工出形状,对于非流形,你不能。
当使用诸如CATIA V5之类的非流形建模应用程序时,例如,在创建非常大且复杂的部件时,可能会从布尔、混合、清扫、放样、抽壳等操作中无意中创建非流形对象。将这些非常大且复杂的非流形实体保存为流形建模格式时,这些对象需要在非流形位置进行“拆分”。当不能创建实体时,就创建一个表面模型。一般的模型检查器也会检查此类问题,给出报告。
以上内容来自网络
在仿真中,非流形体是一个非常重要的概念。结构中不同单元连接,接触,复合材料,散热,CFD多流场,EDA,TCAD,在这些分析中,最大的特点是不同属性(不同的材料,几何层,业务属性等)的几何要在一起分析,而且不同属性的几何之间相互接触!
在以网格作为输入的仿真中,输入数据的网格单元必须是conformal(整体网格连接性要保持完整),即网格中不能存在多余的点和线,需要全部是相互连接的网格,否则求解器端就需要进行额外的插值处理,以保证计算区域的连续性。
传统意义上的几何表达无法处理非流形体,所以在仿真处理中,一般是不同的几何分别生成网格,然后对网格进行合并。还有一种处理方法是在几何中引入新的属性,ACIS中叫元胞(Cell),OCC中也有类似的概念。
Cell结构的特点是,在进行布尔并运算之后,原有的几何都保留,属性也保留,以刚才的两个立方体为例,进行布尔运算之后,公共面会被保留,而且只会保留一个面,两个实体的信息分别存储在各自的Cell信息中。
传统意义上的布尔并运算则会将公共面去掉。
对于网格引擎而言,只要处理单纯的面即可,在生成实体单元过程中,查询对应的Cell信息,就能给出原始几何的属性信息,这种方法相比网格合并要简单,而且网格质量也更优。
下图是在FasCAD中进行非流形体布尔并运算: