如果您正在寻找管理多个解的有效办法,COMSOL Multiphysics® 软件 5.3 版本发布的多款新工具一定可以帮到您。相关工具选项的功能包括:将两个解组合成一个解;将解存储在不同的数据集中,方便单独对其执行后处理和分析;以及加入其他解,方便对照比较等。在这篇博客文章中,我们将介绍新工具的使用方法。
使用串联与求和来组合多个解
假设我们计划分两步运行瞬态仿真:
- 从起始时间到中途时间
- 从中途时间到终止时间
我们进一步假设将要在第二个瞬态研究步骤中对物理场进行一定修改,表示模拟装置的运行条件在中途时间点上发生了一次变化。但是在后处理结果时,我们需要将两个研究步骤的输出当成一个连续的瞬态解。
COMSOL Multiphysics® 5.3 版本的新增功能——组合解 研究步骤可以帮助我们获取类似的组合的解。借助“组合解”研究步骤,我们能将模型中的其他研究步骤创建的两个解串联在一起。除了串联(例如瞬态解或参数化解)之外,我们还能利用求和来组合多个解(例如创建一个代表不同特征模态之和的解)。
示例:组合两个瞬态仿真
我们以轴对称瞬态传热的模型为例,研究串联解的实例。该模型显示了在仿真开始的瞬间,外部边界上的温度由 0°C 升高至 1000°C 时圆柱形物体的加热情况。之后仿真将运行 190 秒。
我们再添加一个开始于 190 秒、带隔热边界的瞬态研究步骤,并查看研究结果。为了组合两个瞬态仿真,我们使用“组合解”研究步骤来实现第一个和第二个研究步骤的串联。(在设置中,第二个研究步骤称为当前解,因为它是“组合解”的上一个步骤所计算出的解。)
接着,添加第三个瞬态研究步骤作为参考,它的作用是证明在两个组合的解的时间间隔中,边界在持续加热。当前研究包含了下图中的研究步骤。
研究步骤包含了组合解和仅研究加热的参考解。
在“组合解”研究步骤的“设置”窗口中,我们指定要串联的研究步骤。
在组合解研究步骤的设置中,我们可以选择解运算的类型和要组合的解。
当计算研究时,研究步骤会在求解器配置下相应地创建求解器、解存储和用于分析求解器结果的解数据集节点。数据集和对应的求解器配置如下所示。
数据集(左图)和求解器配置(右图)。最上面的数据集引用了第三个和最后一个瞬态研究步骤的输出。
另外,我们要添加以下数据集:
- 一个“二维旋转”数据集,用于将对应的三维圆柱几何中的二维轴对称解可视化
- 两个“二维截点”数据集,用于计算和绘制参考位置上的温度图
- 其中一个数据集指向串联的解
- 另一个数据集指向连续解
- 一个“合并”数据集,用于计算和绘制串联的解和连续解的差值
下图显示了串联的解和连续解的温度随时间的变化情况。190 秒之后,串联的解使用绝缘代替加热,而连续解在整个仿真时间范围之内持续加热。
串联的解(粉色实线)和连续解(黑色虚线)。与预期一样,添加了绝缘条件后,温升速度开始减慢。
利用“合并”数据集,我们可以绘制两个解的温差。与预期一样,在添加绝缘条件的时间点之前,二者的温度相同。
两个解的温差。
“旋转二维”数据集有助于获取全三维几何的温度分布。
当连续仿真结束时,全三维几何中一个截面上的温度分布。
多次运行仿真并将解存储在不同的数据集中
另一种情况也需要管理多个解:用户多次运行仿真(在此期间模型或设置发生了特定的变化),并且需要对每一次运行结果进行后处理和分析。
在计算了模型的初始实例后,我们右键单击研究下的求解器配置节点,并选择创建解副本,由此创建一个解 – 复制解和对应的数据集,当前的解可以访问此数据集(指向求解器配置下的解 – 复制解节点)。
修改了模型或求解器设置之后,再重新进行计算,这时我们可以在原始“解”数据集中访问新解,如此一来,我们便能通过指向两个数据集的其中一个,对两组解进行后处理和计算(我们还可以借助此方法创建附加的解)。我们也能通过“合并”数据集来组合两个不同“解”数据集的解(比如获取差值)。
另一个创建附加的“解”数据集的途径是右键单击“解”数据集,然后选择复制(或同时按下 Ctrl+Shift+D)。它与“解副本”操作的区别在于:复制的“解”数据集不会创建新的解,系统默认它引用与原始数据集相同的解。举例来说,当只需对模型几何中一个部分的解执行后处理时,我们可以使用复制的数据集添加一个选择节点。在最新版本的 COMSOL Multiphysics 中,选择节点适用于绘图组中的多数绘图类型,这使得我们能够直接隐藏特定绘图的边界,而不必创建单独的数据集。
示例:扳手模型的多个解
为了清晰地阐释概念,我们打开扳手的应力和应变示例模型。
一个方案是使用参数化扫描或载荷工况来研究由施加在扳手末端的各种力(作为边界载荷)引起的扳手应力和挠曲。不过我们将探究当载荷方向相反,扳手被向上拉(“案例下载”中的示例模型被向下按压)时,模型会发生什么情况。接着我们可以使用解副本存储原始解,借此对两种情况单独进行后处理和分析。
为了验证两种情况之间的应力差值接近于零,我们还添加了一个“合并”数据集,使其包含两个解的差。通过两次复制原始解数据集,我们利用选择节点创建了两个附加的解数据集——一个仅用于扳手,一个用于仅使用螺栓。此模型包含了下图中的数据集。
扳手模型中用于比较两种情况的数据集,它仅对扳手和螺栓分别进行了后处理。
下方左图的“解”数据集指向最后一次计算的解,描述反向载荷的情况。右侧的“解”数据集包含第一个解的副本,描述原始载荷方向的情况。
载荷向上施加作用(左图)的解和载荷向下施加作用的原始解(右图)。
“合并”数据集提供了以上两个解的差值。
使用“合并”数据集计算出有效应力的差值接近零。
最后两个“解”数据集将原始解限制在单独的螺栓和扳手上,二者分别通过表征螺栓和扳手的边界选择进行定义。
扳手(左图)和螺栓(右图)的单独结果。两张绘图使用了由选择定义的数据集。
现在,我们可以灵活地分析并绘制两种载荷工况的结果,主要包括两个解的差值和模型几何中的单独部分。
关于如何在 COMSOL Multiphysics® 中管理多个解的结语
上文中的示例说明了 COMSOL Multiphysics® 软件 5.3 版本中一些工具选项的灵活性和强大功能。借助串联、求和选项与复制解操作,我们能够组合多个解,方便对模型不同变体的多个解进行后处理、存储和分析。借助复制和合并数据集的选项,我们能够比较不同的解,并且对模型中某个部分的解进行多角度的可视化。除了本文列举的作用外,这些实用工具适用于很多其他一般情况。
扩展阅读
- 阅读推荐博客,深入了解“合并”数据集:合并解操作在参数化、特征频率和瞬态问题中的应用
- 请下载下列博客文章中的教程模型,开始尝试管理多个解:
- 访问“发布亮点”页面,查看 COMSOL Multiphysics® 5.3 版的其他新特征和功能
评论 (2)
正达 张
2024-06-10请问一下我应该如何同时调用两个解中的数据进行运算呢?
Yuqing Ge
2024-06-14 COMSOL 员工您好,调用两个解无法通过继承解实现,您可以使用withsol()算子手动实现对解的调用,具体格式可以参考用户手册。