在工程分析中,经常需要比较在不同情况下获得的解。可能包括比较不同载荷或参数配置的影响,以及在域的每个点上对结构进行包络以找到最坏或最佳的情况。对于上述每一种情况以及其他类似情况,我们都需要访问多个数据集。下面,我们将介绍使用 COMSOL Multiphysics 完成这些任务的方法。

COMSOL Multiphysics 中的合并特征

在 COMSOL 中合并解,需要右键单击结果下的数据集,然后选择合并。当使用功能区(如果正在运行 Mac®OS 或 Linux®,则使用菜单)时,命令为结果> 更多数据集> 基数据集 > 合并。在合并设置窗口中,我们需要做出两个选择:组合哪些解,以及如何组合它们。

我们可以在数据1和数据2中确定基础数据集。在数据2的正下方,可以配置组合方法。

合并设置窗口。

组合方法有 7 种选择,我们可以将其中的 5 种作为另外2种选项的特例。下面我们将讨论常规 和显式 2种方法。

常规合并方法

当方法被设置为常规时,会出现一个字段,我们可以在其中输入表达式。例如,data1-data2 是一个差异表达式,(data1-data2)^2 是差异的平方。后者可以用作评估 L2 模差的平方。

在此阶段,未指定要比较的变量。实际上,我们正在构造一个算子,该算子可用于两个原始基本解中定义的任何变量。接下来,我们以一个 T 为因变量的问题为例来说明,如传热问题。

假设我们在表达式字段的合并设置窗口中输入 (data1-data2)^2,并将新数据集命名为 Join 1。为了绘制温度差的平方,在绘图设置窗口中为数据集选择 Join 1,并选择 T 作为表达式。

为了演示如何使用常规方法进行解合并,下面我们通过两个模型示例来说明。

示例1:绝对差

在此示例中,通过一个沿右端均匀分布的 10 MN/m 的载荷和一个同一个边缘在中心最大强度为 20 MN/m,末端为0 MN/m 的三角载荷交替加载一个厚度为 0.1 m 的膜的二维平面应力模型。这两个载荷在静态上是等效的。根据圣维南原理,离载荷的边缘越远时,解的差异就越小。

首先,我们使用均匀载荷进行计算,然后使用三角载荷来计算得到两个稳态解。如上图所示,方法选择常规,并在表达式栏中输入 abs(data1-data2)创建一个合并解 Join 1。为了绘制 von Mises 应力中的绝对差,使用 Join 1 数据集绘图并在表面图设置窗口的表达式栏中输入 solid.mises绘制表面图。在下图中,如圣维南原理所预测,von Mises 应力在载荷边缘附近差异很大,而在远离边缘的地方差异很小。

具有均匀和三角形边界载荷的 Von Mises 应力,以及 Von Mises 应力的绝对差。

示例 2:结果包络

通常,工程师会针对不同的运行条件进行分析,并希望了解该域中所有点的最佳或最差情况。例如,在热分析中,通常对最高温度比较关注。域中的某些点,在某一种工况下达到最高温度,而其他点则在另外的工况下达到最高温度。温度包络显示了在多种可能的工况下每个点的极端温度值。

对于此示例,我们考虑一个简单的稳态一维热传导问题。在第一种情况下,左端温度为 300 K, 右端温度为 400 K。在第二种情况下,温度发生反转,左端温度为 400 K,右端温度为 300 K。

为了构建最大温度包络,我们使用常规方法和 max(data1,data2) 表达式从两个解中创建一个合并数据集 Join 1 。然后,在线图中,数据集选择Join 1,表达式选择 T,以获取最大温度包络(如下所示)。

结果包络设置。

在下图中,我们可以看到合并操作和结果包络以及两种基本情况的结果:

如果要绘制最小温度包络,则必须使用 “合并设置”窗口中的 min(data1,data2) 添加一个新的合并数据集。

显式合并方法

使用常规方法进行合并时有一个限制,即在后续操作(例如绘图或积分)中,必须使用两个基本解中的相同变量。例如,要绘制第一个数据集的变量 u和第二个数据集的变量 v之和,就不能使用常规方法。如果在合并设置窗口的表达式下有 data1 + data2,则可以将其与u一起使用,返回 data1(u) + data2(u);或者和 v一起使用,返回 data1(v) + data2(v)。这时就可以使用显式 方法。选择此方法时,COMSOL Multiphysics 会创建两个新的算子 data1 和 data2,可分别用于访问第一个和第二个数据集中的量。与常规方法不同,显式方法在解合并阶段没有用于键入表达式的字段,我们可以在后面的绘图、积分、平均值或其他设置时直接使用这两个算子。例如,data1(u) + data2(v)可以在绘图设置窗口中键入,前提是 u是第一个解中的合法变量,并且 v在第二个解中可用。显式方法的另一个优点是,由于表达式在解合并阶段不是固定的,因此我们无需创建新的合并数据集就可以使用其他表达式。例如,在一维传热问题中,我们可以进行显式合并,并将其用于 L2 和 H1 模的两个不同的线积分中。对于 L2 模,我们将使用 (data1(T)-data2(T))^2;对于 H1 模,我们将使用 (data1(T)-data2(T))^2 + (data1(d(T,x))-data2(d(T,x)))^2。此处,d(T,x)是 T相对于的 x的导数,它是 COMSOL Multiphysics 中的预定义算子。回到温度包络示例。使用常规方法绘制最大和最小温度包络时,我们需要两个合并数据集。如果改用显式方法,则只需要一个合并数据集,并使用 max(data1(T),data2(T))和 min(data1(T),data2(T))在线图中分别绘制最大和最小包络。

在合并数据集上使用算子

常规方法

我们可以在模型开发器的定义节点中添加函数和组件耦合算子。如上所述,使用常规方法时,我们还会得到一个算子。因此,当我们使用用户定义的耦合算子或函数,并使用常规方法合并数据集时,最终得到了一个复合算子。问题是:组合中的哪个算子是内部算子,哪个是外部算子?答案是,通过解合并生成的算子是外部算子,并且在定义节点中添加的任何算子都将成为内部算子。下面我们用一个例子来说明这一点。以在上述一维热传导示例的定义节点中添加的耦合算子 intop1为例。数据集 Join 2 是由使用通用方法和表达式 (data1 - data2)^2的两个解组成。如果我们选择 Join 2 作为数据集,intop1(T)作为结果 > 派生值> 全局计算中的表达式 ,是否能够得到两个基本解之差的L2-模呢?答案是:不能。全局计算返回零值。由于 intop1是内部算子,因此要评估的是 (intop1(T)-intop2(T))^2,这显然不是差的 L2 模。要获得差的 L2 模,我们必须使用结果> 派生值中可用的预定义积分算子,然后为数据集选择Join 2并选择我们的域。最后,使用 T作为 Expression。下图显示了使用 COMSOL Multiphysics 实现这些操作的过程及其数学表达式。

通过常规方法在合并解上使用算子。

总之,复合运算中的算子顺序如下:在定义节点中添加的函数或耦合算子;通过合并创建算子;在结果 > 派生值中从内部到外部使用预定义的平均值、最大值、最小值和积分算子。

显式方法

使用显式组合时,情况会更清楚。下图显示了如何在显式合并的数据集Join 3上计算积分差和差分积分。

通过显式方法在合并解上使用算子。

其他合并方法

其他 5 种组合方法分别是差集、差分的模、积、商以及总和。他们等同于对常规方法使用表达式 data1-data2、abs(data1-data2)data1*data2、data1/data2和 data1 + data2。当然,用常规方法做的任何事情,也可以使用显式方法完成。在本篇文章中,我们主要讨论了无参数扫描的合并稳态解。在参数扫描或瞬态解中,每个基本解都包含多个数据集。特征频率和频域研究也是如此。对于这些研究类型,合并解可用于评估一些有用和有趣的物理量。我们将在后续文章中对此进行讨论。

本文内容来自 COMSOL 博客,点击“”,延伸文章。

comsol积分函数_如何在 COMSOL 软件中合并解相关推荐

  1. comsol积分函数_怎样在COMSOL中实现时间和空间积分

    展开全部 COMSOL Multiphysics是一款大型的高级数值仿真软件.广泛应用于各个领域的科学62616964757a686964616fe58685e5aeb931333363386162研 ...

  2. react中纯函数_如何在纯React中创建电子邮件芯片

    react中纯函数 by Andreas Remdt 由Andreas Remdt 如何在纯React中创建电子邮件芯片 (How to create email chips in pure Reac ...

  3. java eclipse导入工程文件_如何在Eclipse软件中导入Java工程文件

    有些在学习Java编程的用户虽然会创建工程,但是对于怎么导入工程文件却不清楚,下面这篇教程我们就来为大家介绍一下,在Eclipse软件中导入Java工程文件的方法,有兴趣的朋友就来了解一下吧. 解决方 ...

  4. java 合并和拆分单元格_如何在Microsoft Word中合并和拆分表和单元格

    java 合并和拆分单元格 You can easily merge and split cells in Microsoft Word to make your tables more intere ...

  5. java有没有求组合的函数_如何在Java 8中使用compose和andThen组合函数

    在这篇文章中,课课家将讨论利用java8的Function接口提供的两个组合函数--compose和andThen来实现函数的组合. 什么是函数组合? 首先需要创建一些小的可重用函数,然后将这些小函数 ...

  6. python类中函数_如何在Python类中使用模块函数

    参见英文答案 > How do you call a private module function from inside a class?                           ...

  7. python合并单元格 索引_如何在matplotlib选项卡中合并单元格

    我用matplotlib创建了一个表,我想合并一些单元格.索引中具有相同字符串的单元格将合并为一个单元格.在 问题被标记为重复,但链接无法回答我的问题#tbl_handler is an instan ...

  8. 【板栗糖GIS】如何在CASS软件中输出PDF

    [板栗糖GIS]如何在CASS软件中输出PDF 1. 点击文件-绘图输出-图形变白 2. 然后再选择文件-绘图输出-打印 选择 打印机为PDF,纸张为A4,点击红框的窗口框选数据的范围,接着点击确定, ...

  9. c语言如何输入矩阵_如何在 COMSOL 软件中调试外部材料

    问题描述 我实现了一种用于"结构力学"的外部材料,但我的模型无法求解. 解决方法 外部材料一般通过 C 语言编码,然后被编译到共享库中,供 COMSOL Multiphysics ...

最新文章

  1. svn官方备份hot-backup.py强烈推荐
  2. 亿级流量系统架构之如何设计承载百亿流量的高性能架构【石杉的架构笔记】...
  3. 论文笔记:孪生神经网络(Siamese Network)
  4. 超级任天堂游戏模拟器被曝安全漏洞
  5. 用matlab建立控制系统的数学模型,第二章控制系统的数学模型.ppt
  6. vue.js 2.x 能否设置某个组件不被keep-alive 的解决方案
  7. 博客版面设计~文章填充
  8. ionic 网站放在服务器,Ionic4 服务器插件-服务器Httpd - Ionic Native
  9. Table变量和临时表区别
  10. centos 7单网卡实现双路由,同时访问内外网
  11. 3dmax三点照明法场景照明的方法和技巧
  12. Excel解析easyexcel工具类
  13. 事务的传播行为(讲得比较好)
  14. C语言——scanf()函数的具体详解
  15. 项目--练习题61:超市收银系统
  16. 微信小程序低功耗蓝牙(BLE)开发总结
  17. Flutter 时间选择器
  18. 秒懂1U、2U、4U和42U服务器
  19. 抖音热门涨粉小技巧,你值得拥有!
  20. Topical PageRank(TPR)论文解读

热门文章

  1. postman socket接口测试_基于postman测试接口(整套接口测试)
  2. bzoj4569 [Scoi2016]萌萌哒 并查集+st表
  3. idea中浏览器打开页面404_深圳网站建设中的404页面有什么用
  4. 【英语学习】【Level 07】U08 Old Stories L4 Today's headline
  5. 【英语学习】【WOTD】hoodwink 释义/词源/示例
  6. Android人脸识别开发入门--基于虹软免费SDK实现
  7. android svg指纹录取动画_你知道几种前端动画的实现方式?
  8. autojs toast 可以改变字体颜色吗_你手中的渠道货够硬吗?看完这期 OFF WHITE x AIR JORDAN 5 对比,你就知道了!...
  9. matlab createtask,Matlab批量与createjob
  10. vant部署_详解VUE项目中安装和使用vant组件