Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >COMSOL 中空间与时间积分的方法介绍

COMSOL 中空间与时间积分的方法介绍

原创
作者头像
技术客
发布于 2022-05-24 05:36:18
发布于 2022-05-24 05:36:18
6.7K0
举报

积分是数学模型中最重要的功能之一,特别是对数值仿真而言。例如,偏微分方程组 (PDEs) 就是由积分平衡方程派生而来。当需要对偏微分方程进行数值求解时,积分也将发挥非常重要的作用。本文介绍了 COMSOL 软件中可用的积分方法以及如何使用。

积分的重要性

COMSOL 使用了有限元方法,它将控制 PDE 转化为积分方程,换言之,就是弱形式。如果仔细观察一下 COMSOL 软件,您可能会发现许多边界条件都是由积分公式表示,例如总热通量或悬浮电位。积分在后处理中也非常重要,因为 COMSOL 提供了许多基于积分的派生值,比如电能、流速或总热通量。当然,用户还可以根据自己的方法来使用积分,本文我们将具体介绍如何实现。

利用派生值求积分

积分的一般形式如下:

其中,

 是时间间隔、

 是一个空间域,而 

 则是因变量 

 的任意一个表达式。表达式可以包括相对空间与时间的派生值,或任何其他派生值。

通过功能区(在非 Windows® 操作系统中则为‘模型开发器’)‘结果’部分的“派生值”,可以最便捷地访问积分选项。

如何将体、面或线积分增加作为派生值。

您可以通过选定对应的数据集来引用任何可用的解。表达式框为被积函数,并支持因变量或派生变量。在瞬态仿真中,会计算每一个时间步长的空间积分。或者,设定窗口提供了‘数据系列操作’,可在此为时域选择积分选项。这将得到空间和时间的积分。

面积分设定示例,并通过‘数据系列操作’增加了额外的时间积分。

平均是另一个与积分相关的派生值。它等于积分结果除以所考察域的体积、面积或长度。平均中的‘数据系列操作’还可以将结果除以时间范围。派生值非常有用,但由于它们仅能用于后处理,所以无法处理所有的积分类型;因此 COMSOL还提供了更加强大和灵活的积分工具。我们将通过下方的模型示例演示这些方法。

传热示例模型中的空间和时间积分

我们将介绍一个简单的传热模型,即 (x, y) 二维平面内的单位正方形铝。上侧和右侧固定为室温 (293.15 K),左侧和下侧规定有 

 的‘广义流入热通量’。下图显示了 100s 后的稳态解和瞬态解。

稳态解,点击图片放大。100s 后的瞬态解,点击图片放大。

利用组件耦合算子求空间积分

举例来说,当一个表达式中综合了几个积分,或在计算中需要积分,或需要一组路径积分时,就需要组件耦合算子。可以在对应组件的定义部分中定义组件耦合算子。在这个阶段,我们尚未计算这些算子,只是确定了它们的名称和对象选择。

如何增加组件耦合算子方便后续使用。

在示例中,我们首先希望计算恒定温度下的空间积分,这可以通过以下公式计算:

在 COMSOL 软件中,我们使用了一个缺省名称为 intop1 的积分算子。

积分算子设定窗口。如何计算积分算子。

下一步,我们将演示如何在模型中使用积分算子。例如,我们希望计算将平均温度相对室温上升 10 K,即达到 303.15 K,需要施加多少热能。首先,我们需要计算目标温度与实际平均温度之差。平均温度可通过对 

 的积分除以对 

 的积分得到,对常数 1 的积分可以得到域的面积。幸运的是,在 COMSOL 中这类计算可以轻松地通过缺省名称为 aveop1 的平均算子得到。(注意域内的平均与我们的积分示例相同,因为域为单位面积。) 对应的温差可通过如下公式计算:

接下来,我们需要找到左侧和下方边界的‘广义热通量’,以便满足所需的平均温度。为此,我们增加了一个名为 q_hot 的额外自由度,以及一个额外的约束作为全局方程。将‘广义流入热通量’替换为 q_hot。

如何通过增加一个额外的自由度以及一个全局方程来把平均温度强制设为 303.15 K。

对这个耦合系统进行稳态求解,得到 

。要在整个域中得到 303.15 K 的平均温度,‘广义流入热通量’边界条件就应为这样的一个值。

利用积分耦合计算不定积分

我们的 Support 邮箱经常收到这样一个问题:如何得到空间不定积分?下面这个积分耦合的应用就将回答这一问题。不定积分与积分对应,从几何上讲,它支持计算由函数图形约束的任意面积。它的一个重要应用就是计算统计分析中的概率。为演示这一点,我们的示例固定为 

,并通过 

 表示不定积分 

。这意味着 

。以下积分代表了该不定积分:

其中,我们使用 

 来区分积分与输出变量。和上文的积分相反,我们这里将函数作为结果,而非标量。我们需要加入这一信息,即对于每个 

,对应的 

 值需要求解一个积分。幸运的是,这在 COMSOL 环境中很容易设定,可以说,只需要三个组分。第一步,可以使用一个逻辑表达式将积分转化为:

第二步,我们需要一个积分算子作用在我们示例域的下边界。我们通过 intop2 来表示。第三步,我们需要加入积分与输出变量的区分。这一情况下源项与目标端的符号分别为 

 和 

。当使用积分耦合算子时,内置算子 dest 可用,它指出对应的表达式不属于积分变量。更精确地说,它意味着 COMSOL 中的 

。综合逻辑表达式与 dest 算子,得到表达式 T*(x<=dest(x)),这正是 intop2 所需输入的表达式。总之,我们可以通过 intop2(T*(x<=dest(x))) 计算不定积分,并在我们的示例中得到如下图示:

如何通过积分耦合、dest 算子,以及逻辑表达式绘制不定积分。

COMSOL 提供了两个不同的积分耦合算子,名称是广义投影和线性投影。可通过它们得到域任意方向的一组路径积分,即仅针对一个维度执行积分,结果是一个维度而非域的函数。在二维示例中,结果是一个一维函数,可以在任意边界进行计算。在接下来的一篇有关组件耦合的博客中,我们将更加详细地介绍如何使用这些算子。

在附加物理场接口求解空间积分

要最灵活地使用空间积分,可以将它增加到一个附加的 PDE 接口上。继续使用不定积分的例子,假设我们并非只希望计算 

 的不定积分。这一任务可以通过 PDE 阐释:

并在左边界上指定狄氏边界条件 

。系数型偏微分方程接口是执行这一方程的最简单接口,我们仅需作如下设定:

如何针对空间积分使用附加物理场接口。

因变量 

 代表相对于 

 的不定积分,在计算和后处理时可用。这种方法除了灵活性,还具有准确性的优势,因为积分并非作为派生值获取,而是作为计算及内部误差估计的一部分。

利用内建算子求时间积分

我们之前提到过‘数据系列操作’可以作为时间积分使用。通过分别代表了时间积分或时均的内置算子 timeint 和 timeavg 是实现时间积分另一项重要方法。它们可用于后处理中,能够对指定时间间隔的任何瞬态表达式执行积分操作。在示例中,我们对 90s 和 100s 的平均温度感兴趣,即:

下方的表面图显示了得到的积分,它是 (x,y) 中的一个空间方程。

如何使用内置时间积分算子 timeavg。

类似的算子还有用于球面对象的积分,也就是 ballint、circint、diskint 以及 sphint。

利用其它物理场接口实现的时间积分

COMSOL Multiphysics工程实践与理论仿真 多物理场数值分析技术如果模型中要用到时间积分,您需要将其定义为额外的因变量。与上方显示的系数型偏微分方程示例类似,这可以通过增加数学分支的常微分方程接口实现。例如,假设在每个时间步长,模型均需要从开始时刻到当前的总热通量,即需要测量累计能量。COMSOL 会自动计算总热通量变量,名称为 ht.tfluxMag。积分可以作为带有分布式常微分方程的附加因变量计算,它是域常微分和微分代数方程接口的子节点。该域常微分方程的源项为被积函数,如下图所示。

如何针对时间积分使用附加的物理场接口。

这类计算的优势是什么呢?积分可以在另一个物理场接口重复使用,比如那些可能会被系统中的累计能量影响的接口。此外,它现在还可用于各类后处理,比内建算子更加便捷和高效。例如,检查多相催化模型中的碳沉积,模型使用域常微分方程来计算催化剂的孔隙率,并以此作为存在化学反应时的瞬态场变量。

求解析函数及表达式的积分

到目前为止,我们已经显示了如何在计算或后处理中求解变量的积分,但我们尚未涉及到解析函数或表达式的积分。为此,COMSOL 还提供了内置算子 integrate (表达式、积分变量、下边界,及上边界)。

表达式可能是任意一维函数,例如 sin(x);也可能包括附加变量,例如 sin(x*y)。第二个参数指出了对哪个变量求积分。例如利用 integrate(sin(x*y),y,0,1) 可以得到一个有关 x 的函数,因为积分仅会消除积分变量 y。积分算子也可用于处理解析函数,我们需要在当前组件的定义节点定义解析函数。

如何增加一个解析函数(左)如何求解析函数的积分。(右)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
「神经常微分方程」提出者之一David Duvenaud:如何利用深度微分方程模型处理连续时间动态
提到 David Duvenaud 你或许有些陌生,但最近大热的「神经常微分方程」想必你一定听说过。
机器之心
2020/07/06
1.1K0
AI攻破高数核心,1秒内精确求解微分方程、不定积分,性能远超Matlab
这是Facebook发表的新模型,1秒给出的答案,超越了Mathematica和Matlab这两只付费数学软件30秒的成绩。
量子位
2019/12/20
1K0
AI攻破高数核心,1秒内精确求解微分方程、不定积分,性能远超Matlab
使用自变分原理改进正则化核回归:通过变分法推导和推广Nadaraya-Watson估计
核回归技术是一组非参数方法,用于通过一组数据点拟合平滑的曲线。Nadaraya-Watson 估计就是这样一种方法。它通常是在自变量分布的核密度估计以及因变量和自变量联合分布的基础上,通过计算因变量的条件期望得到的。
deephub
2021/12/09
1K0
使用自变分原理改进正则化核回归:通过变分法推导和推广Nadaraya-Watson估计
高数期末有救了?AI新方法解决高数问题,性能超越Matlab
机器学习的传统是将基于规则的推断和统计学习对立起来,很明显,神经网络站在统计学习那一边。神经网络在统计模式识别中效果显著,目前在计算机视觉、语音识别、自然语言处理等领域中的大量问题上取得了当前最优性能。但是,神经网络在符号计算方面取得的成果并不多:目前,如何结合符号推理和连续表征成为机器学习面临的挑战之一。
机器之心
2019/12/24
1.6K0
【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向后Euler)【理论到程序】
是一个关键参数,它决定了离散化的程度,选择合适的步长对于数值解的准确性和稳定性非常重要。
Qomolangma
2024/07/30
3230
【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向后Euler)【理论到程序】
加州理工华人博士提出傅里叶神经算子,偏微分方程提速1000倍,告别超算!
微分方程是数学中重要的一课。所谓微分方程,就是含有未知函数的导数。一般凡是表示未知函数、未知函数的导数与自变量之间关系的方程,就叫做微分方程。
新智元
2021/11/15
1.2K0
【GAN优化】从动力学视角看GAN是一种什么感觉?
今天讲述的内容是GAN与动力学,这是一个非常好玩、非常新鲜的视角。考虑到很多人微积分和线性代数等知识的涉猎不多,我将会对涉及的内容都做出基本说明,也并不会涉及过深入的东西,然后争取串成一个故事,扩展一下大家的视野。
用户1508658
2019/08/29
1.5K1
Matlab系列之符号运算(下)
上一篇主要对符号对象进行了一些生成和使用的基本操作,然后本篇将介绍符号矩阵、微积分、积分变换以及符号方程的求解,具体内容就往下慢慢看了。
狂人V
2020/10/10
1.4K0
Matlab系列之符号运算(下)
求解微分方程,用seq2seq就够了,性能远超 Mathematica、Matlab
近日,Facebook AI研究院的Guillaume Lample 和Francois Charton两人在arxiv上发表了一篇论文,标题为《Deep Learning for Symbolic Mathematics》。
AI科技评论
2019/12/19
1.2K0
求解微分方程,用seq2seq就够了,性能远超 Mathematica、Matlab
机器学习会取代数学建模吗?
来源商业新知网,原标题:机器学习会取代数学建模吗?让我们假设一个微积分落后但深度学习发达的文明社会……
商业新知
2019/06/12
1.4K0
机器学习会取代数学建模吗?
【机器学习】因微知著,穷数通灵:微积分与机器学习的量化之美
在机器学习的学习旅程中,微积分不仅是理解单变量变化的工具,更是处理多变量和复杂系统的关键。上一篇文章中,我们详细讲解了积分的基本概念与计算方法,并通过实战项目展示了积分在概率与统计中的应用。本篇文章将进一步探讨多重积分与微分方程,这两者在机器学习中的应用广泛且重要。通过理论与实践相结合的方式,你将能够更好地理解和运用这些高级微积分概念。
半截诗
2025/01/09
2450
【机器学习】因微知著,穷数通灵:微积分与机器学习的量化之美
Matlab符号运算
sym函数用于建立单个符号对象,其常用调用格式为:符号对象名=sym(A) 将由A来建立符号对象。其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;A也可以是一个变量名(加单引号),这是符号对象为一个符号常量。
十二惊惶
2024/02/28
2360
硬核NeruIPS 2018最佳论文,一个神经了的常微分方程
在最近结束的 NeruIPS 2018 中,来自多伦多大学的陈天琦等研究者成为最佳论文的获得者。他们提出了一种名为神经常微分方程的模型,这是新一类的深度神经网络。神经常微分方程不拘于对已有架构的修修补补,它完全从另外一个角度考虑如何以连续的方式借助神经网络对数据建模。在陈天琦的讲解下,机器之心将向各位读者介绍这一令人兴奋的神经网络新家族。
机器之心
2019/01/02
1K0
用Python来计算
最近做毕业设计的时候需要计算机器人运动学和动力学,但是这玩意在计算过程中需要计算很多矩阵,这个就很头疼。一般这种计算直接给MATLAB,但是它太太太大了,界面也太太太丑了,而且一运行就会很卡,再加上MATLAB也很贵,因此用了python的sympy库。用了之后发现这个是一个宝库,遇到问题,别问,问就python因此写一下。
用户6948990
2025/04/03
1000
用Python来计算
有限元法(FEM)
空间和时间相关问题的物理定律通常用偏微分方程(PDE)来描述。对于绝大多数的几何结构和所面对的问题来说,可能无法求出这些偏微分方程的解析解。不过,在通常的情况下,可以根据不同的离散化 类型来构造出近似的方程,得出与这些偏微分方程近似的数值模型方程,并可以用数值方法求解。如此,这些数值模型方程的解就是相应的偏微分方程真实解的近似解。有限元法(FEM)就是用来计算出这些近似解的。
技术客
2022/05/19
2K0
热传导方程非特征 Cauchy 问题的一些笔记
1、解的存在性: \forall y \in Y, \exist x \in X, 使得 Ax=y. 2、解的唯一性: \forall y_1, y_2 \in Y, y_1 \neq y_2, 有 Ax_1=y_1, Ax_2=y_2, 使得 x_1 \neq x_2. 3、解的稳定性(即解的连续性):若有 Ax_1=y_1, Ax_2=y_2, 则当 y_1 \rightarrow y_2 时, 使得 x_1 \rightarrow x_2.
Cloud-Cloudys
2023/10/21
6210
热传导方程非特征 Cauchy 问题的一些笔记
有哪些不定积分的运算(心算)技巧?[1]
计算不定积分实际上就是根据导函数找原函数。求导的计算方法有一定的套路,对于任给的初等函数都套这些求导法则都可以找到导函数。但是不定积分不然。不定积分的两种运算律——换元积分法和分部积分法——都只是告诉你你可以怎么算,但是并没说这么算一定能算出来。因此,不定积分的计算有十分强的技巧性。
云深无际
2021/04/14
1.9K0
有哪些不定积分的运算(心算)技巧?[1]
有限元法在非线性偏微分方程中的应用
Mathematica 12 为偏微分方程(PDE)的符号和数值求解提供了强大的功能。本文将重点介绍版本12中全新推出的基于有限元方法(FEM)的非线性PDE求解器。首先简要回顾用于求解 PDE 的 Wolfram 语言基本语法,包括如何指定狄利克雷和诺伊曼边界条件;随后我们将通过一个具体的非线性问题,说明 Mathematica 12的 FEM 求解过程。最后,我们将展示一些物理和化学实例,如Gray-Scott模型和与时间相关的纳维-斯托克斯方程。更多信息可以在 Wolfram 语言教程"有限元编程"中找到,本文大部分内容都以此为基础(教程链接见文末)。
WolframChina
2020/06/24
2.7K0
利用python的sympy求解微积分
一般的数学算式math就可以解决了,但是涉及到极限,微积分等知识,math就不行了,程序中无法用符号表示出来。
叶子陪你玩
2020/03/12
1.7K0
在 COMSOL 中模拟瞬态加热的方法
COMSOL Multiphysics®软件经常被用来模拟固体的瞬态加热。瞬态加热模型很容易建立和求解,但它们在求解时也不是没有困难。例如,对瞬态加热结果的插值甚至会使高级 COMSOL®用户感到困惑。在这篇文章中,我们将探讨一个简单的瞬态加热问题的模型,并利用它来深入了解这些细微差别。
CAE学习笔记
2023/02/13
2.3K0
在 COMSOL 中模拟瞬态加热的方法
推荐阅读
相关推荐
「神经常微分方程」提出者之一David Duvenaud:如何利用深度微分方程模型处理连续时间动态
更多 >
LV.0
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档