Tetgen:从表面的给定三角形开始,创建一个新的网格而不改变表面的连通性

时间:2015-12-19 10:13:53

标签: c++ mesh tetgen

我正在使用tetgen,但我遇到了麻烦。我想创建一个网格,从表面的给定三角形开始。我不想改变给定的三角形。 特别是,我正在开发一个域,这样:有一个带有内部孔的外部立方体盒子(也是一个盒子)。我拥有的三角形是内部和外部表面。我想在两个表面之间构建网格。不幸的是,我没有成功。

我使用的输入是这种类型:

  • 节点数量,3,0,1(没有区域,但是标记)

- 节点列表

  • 小平面数,1(标记)

- 方面列表

  • 1(1洞)

- 洞的坐标

  • 0(无区域)

facet列表是两个表面的三角形列表,包括内部和外部。我考虑过这种域最简单的网格。而且我确信我给tetgen的输入是"对"。我已经在matlab上显示它并且它与我想要的那个一致。可能我想要的不是tetgen想要的...... 然而,tetgen找到了不相交的交叉三角形。他们有共同点,但我认为方面可以分享方面!还是我错了?或者可能是某些三角形是共面的? 从概念上讲,我认为我的输入存在问题,但我不明白。

当我打电话给tetgen时,我会使用" -Y"切换以避免表面的变化。我已经尝试了-p和-q开关,separetly或togheter。但总是会出现同样的错误。 拜托,有人可以帮助我吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

因为你的输入几何结构很简单,只有两个嵌套的立方体,我相信这不应该是tetgen的问题。 要确保输入正确,请先尝试tetgen的-d选项。 另一种方法是使用其他工具为tetgen创建输入,例如Gmsh。