变化极限的积分和求解积分微分方程

2016年 10月 6日

上一篇博客中,我们讨论了时间和空间的积分方法,了解了如何使用积分耦合算子计算反导数。今天,我们将进一步扩展这个想法,介绍如何分析变化极限的空间积分,无论它们是显式指定还是隐式定义。这个技术对分析结果以及在 COMSOL Multiphysics® 软件中求解积分和微分方程都有帮助。

积分的变化极限

在 COMSOL Multiphysics 中,我们可以通过使用积分组件耦合算子或结果 部分派生值 下的积分工具来计算空间积分。虽然这些积分总是在一个固定的区域内进行计算,但有时我们会想改变积分的极限,并获得与新极限有关的结果。

例如,在一个一维问题中,积分算子通常会作如下计算:

I = \int_a^b f(x)dx.

其中,a 和 b 是域中的两个端点,代表积分上下限。

不过,我们要做的是,计算出:

I(s) = \int_a^sf(x)dx, \qquad s\in [a,b],

并得到关于积分 s 的可变极限的结果。

由于积分算子在一个固定的域内工作,我们来考虑如何使用它们来获得变化极限的积分。一个小窍门就是通过与一个在积分极限内等于1、在极限外等于0的函数相乘来改变积分值。也就是说,定义一个核函数

k(s,x) =
\begin{cases}
1 \quad x \leq s\\
0 \quad \mathrm{otherwise},
\end{cases}

并计算

I(s) = \int_a^Lk(s,x)f(x)dx = \int_a^sf(x)dx.

就像我们在上一篇关于时间和空间的积分方法的博客中所指出的,我们可以通过使用逻辑表达式或阶跃函数来建立这个核函数。

我们还需要知道在 COMSOL Multiphysics 中是如何指定辅助变量 s 的。这就是 dest 算子发挥作用的地方。dest 算子强制其参数在目的点上而不是在源点上被计算。在这个例子中,如果我们在 COMSOL 软件中把上述方程的左边定义为一个变量,那么我们就在右边输入 dest(x) 而不是 s

我们用一个例子来证明这一点。例如,一个模拟了一个平行板反应器中的稳态放热反应的模型。在中心附近有一个加热筒,左边有一个入口,在 x = 0 处。其中一个化合物的浓度为 cA

我们要做的是计算进气口和与进气口距离为 s 的横截面之间每单位厚度的总摩尔数。然后,将结果与进气口的距离作对比。

首先,我们为整个域定义一个积分耦合算子,保留默认的积分算子名称为 intop1。如果我们评估 intop1(cA),就可以得到整个域的积分。为了水平地改变积分的极限,我们用一个阶跃函数建立一个核,我们把它称作step1。然后,我们定义一个新的变量,intUpTox

COMSOL 软件中的积分算子屏幕截图
屏幕截图显示了在COMSOL Multiphysics 中使用变化极限创建的积分
结合积分耦合算子、dest 算子和新变量来计算具有变化极限的积分。

我们来看看上图中描述的变量是如何工作的。作为一个变量,它是一个分布式的量,其值等于积分算子返回的值。在积分过程中,我们在积分域的每一个点上计算 x,只在计算 intUpTox 的点上计算 dest(x)。我们找到一条水平线,从入口处一直延伸到出口处,并绘制 intUpTox

水平积分域的图片
屏幕截图显示了沿变化的极限积分进行积分
将浓度 cA 在一个积分域沿水平变化的极限上进行积分。

I(s) = \underbrace{\int_0^s\int_{y_{min}}^{y_{max}}c_A(x,y)dydx=\int_{\Omega} K(s,x)c_A(x,y)d\Omega}_{\text{Mathematical Expression}}=\underbrace{\mathrm{intop1(step1(x-s)*cA)=intop1(step1(x-dest(x))*cA)}}_{\text{COMSOL Implementation}}

如果我们改成绘制 intUpTox/intop1(cA)*100,就会得到一个给定点左边的百分数质量与 x 坐标的关系图。

在上述积分中,积分的极限是以x坐标为单位明确给出的。但有时,极限可能只以隐式标准给出,而反转这种标准并获得显式极限可能并不直接。例如,假设我们想知道在离加热缸中心一定径向距离内的总摩尔的百分比。给定从缸中心(xpos, ypos)的距离 s,我们希望核函数在径向距离内等于1,在其外等于 0。要做到这一点,我们可以使用:

k(s,x,y) = \mathrm{step1}\left[(x-x_{pos})^2+(y-y_{pos})^2-s^2\right].

但我们如何指定 s 呢? 再次使用 dest 算子 s^2 = (\mathrm{dest}(x)-x_{pos})^2+(\mathrm{dest}(y)-y_{pos})^2,带入等式得到:

k(s,x,y) = \mathrm{step1}\left[(x-x_{pos})^2+(y-y_{pos})^2- (\mathrm{dest}(x)-x_{pos})^2-(\mathrm{dest}(y)-y_{pos})^2\right].

显示了用于求解整数微分方程的径向积分域

通过定义一个截线 数据集来实现这个方法,用于获得通过孔中心的水平线,并将我们的积分表达式的图形置于其上。截线 不一定是水平的,它只需要穿越积分算子定义的整个域。此外,s 应该在截线上单调地变化。

COMSOL Multiphysics中的截线数据集的屏幕截图
用穿过孔中心的截线制作的新数据集。

在下面的图片中,我们通过放大图表的左下角区域添加了一个函数这一部分显示,在距离加热孔中心不到 2 mm 的地方,绘图上没有结果。这是因为该区域不在我们的计算域内。由于孔的半径为 2 mm ,所以在 2 mm 的标点上,序数从 0 开始。

屏幕截图显示了一个域中的百分比和变化的径向距离
一个域中的质量百分比,在固定点的径向距离内。径向距离是通过使用隐式表达式中的dest算子来改变的。

积分和积分微分方程

在前面的小节中,我们在给出积分的情况下对积分进行了计算。但是,如果我们有了积分并想求解积分,该怎么处理?这种问题的一个例子是 Fredholm 第一类方程

g(s) = \int_a^b K(s,x)u(x)dx,

当给定函数 g 和核 K 时,我们要求解函数 u。这些类型的积分方程经常出现在反问题中。

在整数微分方程中,未知函数的积分和导数都会涉及。例如,假设我们有

\frac{du} {dx}+\int_a^bf(x,u(s))ds = g(x),

并且对于给定的所有其他函数,想要求解 u

在 COMSOL 案例库中,有以下整数偏微分方程

\rho C_p \frac{\partial T}{\partial t}+\frac{\partial }{\partial x}(-\kappa \frac{\partial T} {\partial x}) = \frac{4D_i} {D_o^2-D_i^2}\varepsilon \sigma T^4 – \frac{4}{D_o^2-D_i^2}\varepsilon \sigma\int_0^LK(x,s)T(s)^4ds,

其中,求解温度 T(x),并给出所有其他函数和参数。

我们可以使用固体传热 接口来解决上述问题。在这个接口中,将上述方程的右侧添加为随温度变化的热源。第一个源项是可直接求解的,但我们需要使用积分耦合算子和 dest 算子在第二项中添加积分。对于名为 intop1 的积分算子,我们可以使用 intop1(k(dest(x),x)*T^4) 计算

\int_0^LK(x,s)T(s)^4ds

关于这个问题的实现和物理背景的更多细节,您可以点击这里下载整数-偏微分方程教程模型。请注意,一些积分方程往往是奇异的,我们需要使用正则化来获得解。

不同极限的空间积分总结

在今天的博客中,我们学会了如何在不同的空间极限上进行积分。这对于在后处理中计算积分或定义积分和微分方程是必要的。想要了解更多信息,请浏览以下 COMSOL 博客的相关内容。

关于积分和其算符的子完整列表,请参考 COMSOL 参考手册。

如果您对文中讨论的技术或对您的 COMSOL Multiphysics 模型有疑问,请随时与我们联系

博客分类


评论 (0)

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