通过数据导入创建不规则的几何模型

学术   2024-08-23 09:01   上海  
本文是如何在 COMSOL Multiphysics® 软件中模拟不规则形状系列文章的第二部分。我们将重点介绍如何基于文本、图像或数字高程模型(DEM)文件等以各种格式存储的高程数据,创建不规则形状的表面。这种方法最适合高度(或高程)是 x 和 y 坐标函数的数据。

不规则形状示例:马特洪峰

在上一篇文章中,我们使用人体头部作为不规则形状的示例,讨论了如何导入曲线数据并放样成几何实体。本文我们以欧洲山脉马特洪峰(Matterhorn)作为不规则形状示例,来讨论如何基于高程数据创建不规则形状表面。Matterhorn 是阿尔卑斯山峰之一,位于瑞士与意大利边境之间,海拔 4478 米。

Matterhorn 的东面和北面。图片来自 camptocamp.org。遵循 CC BY-SA 3.0 协议,获 Wikimedia Commons 授权。

高程数据是描述地理特征的典型数据。今天,我们将讨论如何将高程数据导入 COMSOL 中来模拟 Matterhorn 表面的不规则形状。该流程包括:
  • 将文本文件、图像文件或 DEM 文件中的高程数据导入到函数特征中
  • 基于上一步定义的函数创建参数化曲面
  • 将曲面与实体合并,获得计算域
  • 移除不需要的域(可选)
现在,让我们来看看如何在 COMSOL Multiphysics 中创建 Matterhorn 的几何实体。

创建插值、图像和高程函数

我们将使用该山脉高程的文本文件和灰度图像创建与 Matterhorn 相似的模型几何。文本文件通过插函数导入,图片则通过图像函数导入。我们还将简要介绍如何将 DEM 文件导入到高程函数中,文末提供的可下载的 MPH 文件示例不包括这种方法。
在图像函数中,需要指定 x 和 y 方向上的实际最大值和最小值,因为图片仅包含与像素数和每个像素颜色相关的信息。由于几何体的边长为 2000 米,将 x 和 y 的最小值和最大值分别设置为 -1000 米和 1000 米。注意,如果函数用于定义材料或物理场,也可以添加函数和变元的单位。
插值函数(左)和图像函数(右)的设置窗口。插值函数中使用的模拟域的大小和位置由文本文件定义,图像函数则需要设置区域的实际大小。

图片显示了导入的文本文件的插值函数。导入的数据:DHM25©swisstopo。彩色标尺值代表山脉的实际高度。


灰度图像显示了山脉的高度。请注意,颜色标尺值经过归一化处理(0~1)。

如果地理数据存储在 DEM 文件中,那么更适合创建高程(DEM)函数。如果在 DEM 文件中指定的区域不是矩形,可以在将缺少的数据替换为编辑框中指定该域外的高度。在下面的示例中,表面的高度被设置为 0 米。

当导入的是 DEM 文件时,会使用高程(DEM)函数。如果文件中定义的域未填满矩形域,可以在将缺少的数据替换为编辑框中输入一个值。默认值设置为 0 米。

创建参数化曲面

现在基础数据可以用于模型,接下来我们将继续创建山顶的实际形状。可以使用参数化曲面特征实现此步骤。

在几何功能区的更多体素下可以找到参数化曲面特征。

导入 DEM 文件后,创建过程将非常简单,因为只需单击创建表面按钮即可。此操作将设置一个参数化曲面特征,其中参数来自 DEM 文件中已经输入的最大值和最小值。

单击创建表面按钮,基于导入的 DEM 文件创建参数化曲面。

由于函数略有不同,使用的表达式也将有所不同。推荐将两个参数(s1和s2)值范围设置为 0~1,因此要获得最终几何体的实际尺寸,需要重新设置 x,y 和 z 表达式的参数。
使用 Matterhorn 的实际尺寸定义的插值函数的表达式如下所示。获取 x 和 y 方向上最大值和最小值的一种方法是:无需重新调整表达式,先构建参数化曲面,然后测量所创建的曲面角位置的 x 和 y。另一种方法是将坐标数据导入电子表格编辑器,按升序重新排列坐标。
x:s1*(6.18e5-6.16e5) m
y:s2*(9.27e4-9.07e4) m

z:int1(s1*(6.18e5-6.16e5)+6.16e5, 

      s2*(9.27e4-9.07e4)+9.07e4) m

图像 函数中 x 和 y 值的范围为 -1000 ~1000 米,输出值的范围为 0~1,其表达式将变为:
x:s1*2000 m
y:s2*2000 m

z:(4478-3000)*im1(s1*2000-1000,s2*2000-1000) m

请注意,在使用图像函数时,还需要对 z 方向的值进行调整,因为它被归一化为 0~1 了。在下图显示的设置窗口中,我们可以看到z位置被更改为 3000,以将表面转换到正确的空间位置。
为了更好地表征表面,将最大结数增加到 300(默认值为 20)。也就是说,矩形区域将在两个参数方向上被划分为最多 300 个部分,形成补丁。允许的结越多,将补丁调整到给定的 z 表达式的灵活性就越大,从而增加了获得更严格的相对容差的机会。
该算法先将整个区域划分为数量较少的补丁,然后在容差较大的地方增加补丁的数量。补丁位置和实际数据点之间的相对容差通过允许更多的结来降低。该算法通过添加更多的结来达到设置的相对容差(默认值为 1.0E-6)。
当无法达到容差要求(如果最大结数设置的过低,可能会出现这种情况)时,系统会发出警告,指出用于构建曲面的容差值。如果要删除警告,请复制警告节点的容差并将其粘贴到参数化曲面特征中,然后再次构建曲面。
本文示例中,相对容差被手动设置为 0.002。如果结数设置得过大,创建曲面时会导致过多的几何操作。应在使用足够的结以获取较小的相对容差和保持足够的结数以使操作在合理的时间内完成之间保持平衡。有时,如果表面定义包含噪声,而我们期望获得较平滑的表面时,减少最大结数将获得一个不会过于贴近噪声的表面。

两个参数化曲面特征的设置窗口。表达式已重新参数化,以确保两个参数归一化。增加最大结数可以更好地表征曲面。

创建实体

无论采用哪种方法,现在都应该有一个表征 Matterhorn 表面的几何表面对象。但是,大多数模拟都需要固定域。为此,我们首先添加一个包含大小和位置信息的长方体,使参数化曲面与该长方体相交。
然后将两个几何对象添加到转换为实体特征。转换为实体操作将创建长方体与曲面的并集,以及删除曲面上延伸到长方体外的任何部分。在本文示例中,当长方体完美贴合曲面的外边缘时,也可以使用并集操作,效果是一样的。将表面和长方体组合后,会产生一个被 Matterhorn 表面分隔的由两个域组成的实体对象。

构建转换为实体特征后生成的几何体。左图为基于文本文件中的插值数据创建的不规则表面,右图为基于灰度图像创建的不规则表面。

本文描述的流程可用于创建夹层几何结构,其中导入的表面将分隔不同的材料。例如,如果要查看具有不同特性的岩石层中的应力,可遵循相同的流程生成每一个曲面,并将它们全部包含在转换为实体特征中。

生成最终几何结构

现在,我们已经创建好可用于划分网格和模拟的山峰几何结构。但是,如果我们仅对分析岩石感兴趣,可以很轻松地删除代表空气的上部区域。通过设置几何实体层到域并添加“域2”到选择,就可以使用删除实体特征删除空气域。现在,如果旋转此山峰几何结构,就可以看到它与本文开头展示的 Matterhorn 图片非常相似。

使用文本文件(左)和图像(右)作为输入创建的最终几何结构。导入的数据:DHM25©swisstopo。

结语

尽管这两个山顶的几何形状非常相似,但仍存在差异。如果以相同网格尺寸划分网格,得到的网格将略有不同。部分原因是插值和图像函数为参数化曲面特征提供的输入略有不同。
参数化曲面特征本身在根据结创建表面时也会进行内插,因此这里涉及两个内插。但是,只要网格尺寸大于这两个插值产生的容差,就可以与导入的数据非常接近。

延伸阅读

您也可以采用其他类型的文件格式创建不规则形状。在之前的文章中,我们讨论了如何由导入的网格创建几何体。下一篇文章,我们将演示如何在规则的域插入材料数据。

如需了解文中提到的案例详情,请点击底部“阅读原文”查看。如果您有相关问题,或者文中介绍的内容没有涉及您所关注的问题,欢迎留言讨论。

COMSOL
COMSOL是全球仿真软件提供商,致力于为科技型企业和研究机构提供优质的仿真解决方案。旗舰产品COMSOL Multiphysics®是集物理建模和仿真App开发、编译和管理于一体的软件平台。
 最新文章