在 COMSOL Multiphysics® 软件中比较两个模型文件

Author Image

作者Magnus Ringh

2019年 4月 15日

当我们使用 COMSOL Multiphysics®软件及其附加产品重新创建了一个 COMSOL 案例库中的模型,并想了解如何使用软件的特定功能来设置该模型时,发现我们创建的模型可能与原模型的输出结果不一样。那么,我们如何查找这两个模型之间的差异呢?下面,我们将为您介绍一个在 COMSOL 软件中比较两个模型差异的方法。

使用模型文件比较工具

对于任何在 COMSOL 软件中创建的模型文件,我们随时可以使用比较工具将 COMSOL Desktop®中的当前模型与文件系统中的其他任何 COMSOL 模型文件(在比较工具中,称为远程文件)进行比较。通过对模型文件进行比较,我们可以:

  • 识别并纠正当前模型中的错误;
  • 记录并检查开发过程中两个模型之间的差异;
  • 将两个模型文件之间的差异输出为一个 XML 文件,以进行下一步处理。

工具栏中开发工具下的比较按钮。

Windows®操作系统中的开发工具栏的屏幕截图

Linux®操作系统和macOS中的 开发工具 栏的屏幕截图
比较按钮是“开发工具”工具栏最右边的按钮。在 Windows® 操作系统中该工具栏位于软件界面的顶部,在 Linux® 操作系统和 macOS 中,位于软件界面的底部。

首先,单击比较按钮,打开选择 App窗口,从文件系统中选择任何一个 COMSOL Multiphysics 文件(MPH 文件)。然后,单击打开按钮打开该文件并进行比较,比较结果将在 COMSOL Desktop®中的比较结果窗口显示。


比较结果窗口显示本地文件和远程文件的差异列表。

单击选定属性的详细比较按钮,或双击该行打开比较属性窗口,其中包含有关比较的更多详细信息。

A Compare Attribute window used for comparing 2 model files.
“比较属性”窗口列出了属性值之间差异的更详细视图。在这个案例中,选择了边界差异。

两个模型之间的典型差异

在创建或重新创建 COMSOL Multiphysics 模型时,可能会出现几个错误使模型的结果与预期不同。例如,模型中会包含一些与预期值不符的源值、流量、材料属性或其他输入值。这可能是由于一些小错误引起的,例如小数点位置错误。根据被改值的用途和影响,可能会对结果产生巨大影响。

另外,还可能出现的错误是,在确定边界条件在何处有效时选择了错误的边界;也有可能是选择了错误的边界设置;或者,从某些模型文档中输入了几何实体编号,而当前模型的实际几何组件的编号可能与模型文档中的不匹配。这个不匹配可能是由创建模型几何结构时的某些更改引起的,也可能是添加的边界条件或域源的选择是空的,或者这些选择对于任何几何实体都未激活。在这种情况下,模型树中的节点会出现警告,并会提示选择为空帮助我们识别这些物理场节点。

A screenshot of a tooltip with the Selection is empty warning.
添加的物理场节点选择为空时的提示信息和警告。

对于这些情况(很容易发现的空选择除外),比较工具对于查找两个假定相同的 COMSOL 模型之间的确切差异非常有用。下面我们以 COMSOL Multiphysics 案例库中的汽车消声器模型为例,来介绍如何使用比较工具来查找这些差异。

此模型模拟了内燃机消声器中压力波的传播。下图显示了一个示例模型的解以及两个新创建的模型的解,新创建的模型分别使用了错误的入口压力幅值和出口边界选择。

案例库中原始汽车消声器模型中的声压图。
入口压力选择错误模型的声压解

COMSOL案例库中原始模型的声压解(左),入口压力选择错误模型的声压解(中)和出口边界选择错误模型的声压解(右)。

意外更改产生的差异

假设我们在输入入口压力幅值参数值p0时,手指在键盘上不小心滑动了一下将该值设置为 11Pa,而不是案例库中案例模型中的 1Pa。很显然,产生的压力将比预期高 11 倍,如上图(中)所示。此时,使用比较工具,将在比较结果窗口显示以下差异:

A screenshot of the Comparison Result window showing the difference in inlet pressures between 2 models.
比较结果窗口显示了本地文件与远程文件的入口压力幅值差异。

在上图所示的差异中,照相机位置(视图下方)和求解器的时间标记(求解器序列下方)处还显示了一些其他差异,我们可以忽略这些差异。

结果栏显示了绘图数据范围存在差异,这是解改变产生的影响。如果我们凭借经验或预感判断该差异可能与压力有关,那么比较结果的筛选图仅显示入口压力幅值的变化:

A screenshot of the Comparison Result window when the list of differences is filtered for inlet pressure.
比较结果”窗口中差异的筛选图,仅显示入口压力幅值的差异。

将入口压力幅值的参数 11Pa校正为 1Pa,然后重新求解模型,得出的解与案例库模型的解相同。

边界选择错误产生的差异

出口边界选择不正确也会导致差异产生。当在图形窗口选择出口管的上边界时,可能会选择错误的边界。错误的选择会影响解,因此声压会略有变化,并且压力等值面具有不同的形状和位置,如上图右方所示。使用比较工具,比较结果窗口将显示以下差异:

比较结果窗口显示了选择不同边界条件的2个模型结果差异
选择平面波辐射为出口边界条件时,比较结果”窗口显示了本地值和远程值之间的差异。

与之前的比较一样,在上面的差异中,我们可以忽略其他差异。如果我们认为差异与某些选择有关,那么比较结果的筛选图仅显示出口边界选择的变化:

A screenshot of the Comparison Result window with the differences in boundary selections filtered.
比较结果”窗口中差异的筛选图,仅显示选择出口边界的差异。

通过将出口的选择更改为仅包括边界 50,然后重新求解模型,我们将得到与案例库模型相同的解。

结论和后续操作

在本篇博客文章中,我们介绍了如何使用 COMSOL Multiphysics 中的比较工具查找两个 COMSOL 模型文件之间的差异。对两个常见的错误建模示例,使用比较工具查找出错误解与预期解的差异。通过纠正这些差异,我们可以重新创建模型并得到正确的解。

点击下方按钮,浏览 COMSOL “案例下载”页面,尝试重新创建一个模型并与案例模型进行比较:

阅读下面博客文章,了解如何在案例库中找到有趣的示例:如何在 COMSOL Multiphysics® 中搜索特定 App

LinuxLinus Torvalds在美国和其他国家/地区的注册商标。macOSApple Inc.在美国和其他国家/地区的商标。MicrosoftWindowsMicrosoft Corporation在美国和/或其他国家的注册商标或商标。

博客分类


评论 (0)

正在加载...
浏览 COMSOL 博客
Baidu
map