在 COMSOL Multiphysics® 中编辑和修复导入的网格

2021年 2月 25日

在一些情况下,修复导入的网格可能会很有用。今天我们将讨论在COMSOL Multiphysics® 软件中编辑、修复和连接导入面网格的功能。我们将比较不同操作的结果,讨论一些案例,并提供一些现有的教程和其他相关资源来帮助您了解更多信息。

导入面网格的格式和步骤

一些编辑网格的操作仅针对面网格。面网格支持您使用的导入 COMSOL Multiphysics 中的几何图形和网格的所有文件格式,但是以下三种格式是最常见的:

  1. STL
  2. 3MF
  3. PLY

由于使用的这些格式并不是来自有限元仿真,所以网格的质量并不那么重要。从模拟的角度来看,网格质量差意味着:

  1. 具有非常大或非常小的角的三角形
  2. 大小相差很大的三角形
  3. 有问题的区域,例如孔、薄尖峰或形状不规则的其他类型不需要的区域

对于低质量的导入网格,通常需要修复和编辑,以及重新划分面以平滑较小的不规则性。我们将在下面对此进行更详细的讨论。

编辑面网格的不同方法

有几种操作可用于编辑导入的面网格:

创建实体 相交、分割和连接/删除实体 生成和修改网格
创建顶点 与平面相交 自由四边形网格
创建边 与线相交 自由三角形网格
创建面 用球/框/圆柱体的分割 自由四面体网格
建立域 按表达式分割 自适应
填充孔 连接/删除实体 细化

接下来,我们来研究一些案例以及操作类别之间的一些区别。

自适应和重新划分面网格

如果要细化网格而不改变形状,可以使用 细化 操作。但是,如果要平滑网格中的细小不规则处,则可以使用 自适应自由三角形网格 操作。这些操作还支持网格的粗化。为了讨论自适应和重新划分面网格的区别,以下面的单位球面粗化网格为例。

An image of a unit sphere meshed with coarse triangles.
单位球面的粗化三角网格。三角形的边尺寸约为0.6 m

将单位球面的粗网格(请参见上图)导入到两个不同的模型中,我们对 自适应自由三角形网格 操作的运算结果进行了比较(下图)。导入的网格中三角形的边尺寸约为 0.6m。自适应自由三角形网格 操作的用户界面允许我们指定目标单元大小。我们将单元尺寸设置为 0.05m,并指导这些操作。

使用“自由三角”操作进行网格划分的球体
通过使用自适应操作从粗三角选项重新修整后的球体。

使用自由三角形网格对球体的粗化表面网格进行细化,尺寸设置为 0.05m(左)。右图显示了使用自适应操作将单元球体的粗化网格调整后,将尺寸表达式设置为 0.05m 的结果。与调整后的网格相比,重新划分面网格化可以获得更平滑的结果。当目标网格单元尺寸设置为比原始网格更细的值时,调整后的网格仍将与原始网格整体形状高度一致。

重新划分面网格后,自由三角形网格 操作会在创建新的自由三角形网格之前在背景中创建平滑的几何面(如上图左所示)。相反,自适应 操作会将新单元的新网格顶点放置在原始网格上,这样可以更大程度地保持原始网格的形状(如上图右所示)。为同一选择添加一个以上的自适应 操作会平滑网格,因为当前操作之前没有存储网格。

创建边和面连接两个导入的网格

我们不需要使用任何导入的网格就可以可使用 创建顶点创建边创建面 操作。在这里,我们将看到如何将这些操作用于连接两个导入的断开的网格之间的间隙。

首先使用 创建顶点 确保两个网格上都有足够的顶点。使用 创建边 将顶点连接形成网格边。

Two meshed pipes with their disconnected edges highlighted in blue.
Two meshed pipes with their disconnected edges joined by the Create Edges operation, visualized in blue lines.

两个入口的断开的管道网格;一种是椭圆形横截面(左侧S形管道),另一种是圆形横截面(右侧管道)。目标是将图像中蓝色突出显示的边连接到左侧。这是通过使用 创建边 在两个网格中连接顶点完成的。生成的边在右侧的图像中以蓝色突出显示。创建的边始终是笔直的、网格化的。

使用 创建面 用为每个边环填充面网格。所创建的面将始终尽可能为平面,因此可能有必要添加更多的网格顶点和边以解析曲面。创建面 操作与盖端面 操作等效,可用于几何体。为了使生成的面平滑并使用相似尺寸的单元获得高质量的网格,可以对面进行调整或重新划分,如上一节所述。

Two disconnected meshed pipes that are joined using the Create Faces operation.
An image of two originally disconnected meshed pipes that have been joined and smoothed out via the Free Triangular operation.

使用 创建面 操作(左侧图像中以蓝色突出显示的边)在每个边环中 创建面。最后,使用 自由三角形网格将两个面连接并重新划分网格(右图)。如右图所示,重新连接面使其更平滑,现在很难看出两个管道之前并没有连接。

相交与分割表面网格

有时,有必要对网格进行分割或相交,以达到分配边界条件所需的边界。让我们看一下通过在 z = 1 处相交和分割下面的表面网格之间的重要区别。

A surface mesh that has a plan intersecting it at z=1, highlighted in blue.
放置在 z = 1 处的平面表面网格,以蓝色突出显示。平面在蓝色区域的上边与表面网格相交。

平面相交 操作仅被用于表面网格。它与网格单元相交,这意味着三角形将在平面位置处划分,并在需要的地方引入新的网格顶点、边和三角形。结果是相交的面被笔直的边隔开,如下左图所示。还有一种算法可以清理生成的网格,以便删除短的网格边和可能已经引入的小单元。在我们的STL 导入教程系列中详细讨论并使用了该操作。在 2D 中,相应的操作被称为 与线相交

任何类型的网格,包括体积网格和表面网格都支持分区操作。可以使用不同的形状来划分网格的域或面,包括:

  • 球体
  • 用户定义表达式

此处的 分割 一词表示根据形状中是否包含单元来形成新实体。这意味着域中和面上的网格单元数量保持不变,并且创建的边将遵循现有的网格边,如右图所示。

A close-up image of the meshed sphere after using the Intersect with plane operation, with the affected region highlighted in blue.
A close-up image of the meshed sphere after using the Partition with box operation, with the affected region highlighted in blue.

生成了两个图像,分别显示了使用 与平面相交(左)和 与框相交(右)操作后的结果。在左侧的图像中,所得的上边界(以蓝色突出显示)具有笔直的下边。与平面相交的所有三角形单元均已划分,并在需要时引入了新的网格边和三角形。在右边的图像中,边沿现有的网格单元延伸,并尽可能接近 z=1

分割操作与创建边

如上所示,可以使用分割操作对面进行分区,但是也可以使用 创建边 操作。分区操作被限制为具有其各自设置的某些形状或逻辑表达式,但是可以提供一种快速划分网格的方法。另一方面,创建边 操作更加灵活,因为可以手动选择每个网格边。由于这是手动过程,因此通常在隔离较少数量的网格单时使用。STL导入教程系列使用了创建边 操作。

A view of the meshed object with the spike highlighted in blue and a pink circle highlighting the Partition with ball operation including all of the mesh element vertices.
A meshed object with a spike highlighted in blue and a pink circle highlighting the Partition with ball operation that includes some mesh element vertices.

使用分割球操作(用粉红色边缘勾勒出轮廓)用于隔离在网格中形成尖峰的那部分面。在左边的图像中,如果分割的所有顶点都在球内,则将分割的条件设置为包括网格单元;而在右边的图像中,如果分割的某些顶点包含球体单元,则将条件设置为在球内包含网格单元顶点。在这两种情况下,新面的边(以蓝色突出显示)均呈锯齿状。

A close-up image of a meshed spike with each mesh edge selected and highlighted with blue lines.
A closeup view of the spike in a meshed object after the Create Edges operation is used, giving the bottom edge an even shape.

创建边 操作可以更多的控制将哪些网格边转换为界定新面的边。在这里,单击 图形 窗口中的每个网格边(左图)是一个快捷操作,并且可以使所选面的底部边形状更加均匀(向右突出显示为蓝色)。

经常使用的自动操作

在使用相似类型的导入网格时,我们可能会比其他操作使用更多的操作,或者会意识到每次设置新的模拟时都会使用特定的操作序列。一种自动化建模工作流程或部分建模工作流程的方法是设置模型使用插件

例如,当使用代表多孔结构的导入网格进行工作时,通常会存在狭窄的“桥”将网格的一部分与另一部分连接起来。这些桥在创建几何图形或重新划分面网格时可能会出现问题,因为桥的面很容易变得自相交。因此,有时有必要将其从网格中删除。一种快速的方法是使用球分割插件,这个插件会在旋转中心创建一个用球分割(如下左图所示)。通过用鼠标中键单击将旋转中心设置在边界处。如下图所示,这个插件可轻松移除狭窄的桥接器。

An image of the surface mesh of a porous structure shown in red, with the center of rotation set with a small icon.
A meshed porous structure with a Partition with Ball operation shown in pink lines around the center of rotation.

多孔结构的表面网格。图像中间的柱状部分在表面的一部分到另一部分之间形成了狭窄的桥。这样的桥在创建几何形状、重新划分面网格或细化网格时会引起问题。使用球分割 操作可将面的一部分隔离为单独的边界。在这里,这是通过在桥上设置旋转中心(左图)并使用用球分割插件基于旋转中心的位置来定位用球分割操作的(右图)。

An image of a meshed object with a bridge between a gap that is isolated and visualized in blue.
An image of a meshed object with a gap in its center.

桥被隔离为单独的边界,并被选择(以蓝色突出显示,左侧)以将其删除。右图显示了填充孔并调整了网格之后的调整后的网格。

体网格

上面的示例假定我们具有面网格。如果要重新划分导入的体网格,则可以在保留三角形面网格的同时删除四面体单元。为此,我们可以使用删除实体 操作,选择域,然后清除 删除相邻的低维实体 复选框。

A screenshot of the Settings window for the Delete Entities operation, with the Geometric Entity Selection section expanded.
在使用自由四面体操作填充四面体网格之前,可以使用创建域操作来还原域。

根据仿真结果创建网格

我们还可以根据软件中的仿真结果创建网格,这可以通过从过滤器 或“分割 数据集创建面网格来完成。如之前的博客文章所讨论的,这个过程可用于设置拓扑优化结果的验证研究。我们之前录制的网络研讨会视频(在 COMSOL Multiphysics® 中准备用于分析的导入网格)中讨论了更多通用用途,您可以点击观看。

结论

在 COMSOL Multiphysics 中我们有多种可能需编辑导入的网格。这篇博客文章,以及文中用于进一步学习的相关链接,包括了我们可能遇到的大多数情况。

如果还没有,请查看 COMSOL 案例库中的两部分教程系列。在系列的第一部分中,将基于 STL 网格创建几何对象,然后将其与块相交;而在系列的第二部分中,将导入两个面网格直接用四面体网格填充,而无需创建基于 STL 网格的几何。这些教程一起展示了修复和编辑导入的任何类型面网格。

了解更多

博客分类


评论 (1)

正在加载...
TimKing TimKing
TimKing TimKing
2021-04-15

导入STL文件后,我可以增加角度公差以超过其限制吗?

浏览 COMSOL 博客