使用偏微分方程(PDE)接口建模:对方程系统采用弱形式
在此系列课程的第 11 部分,我们将进一步探讨在 COMSOL Multiphysics®中使用弱形式设置偏微分方程(PDE)的技术。具体来说,我们将研究一些耦合方程组。为了说明这一点,我们将继续使用系列课程第 9 部分中的平面应力示例,对使用内置平面应力接口和使用弱形式偏微分方程接口定义的用户自定义平面应力方程系统进行比较。
线弹性方程的弱形式
在第 9 部分中,我们了解了如何使用系数形式偏微分方程接口实现平面应力方程。接下来,我们介绍如何推导相应的弱形式。为此,我们可以从一般的三维线弹性问题开始。
各向异性线弹性材料的胡克定律可写为:
如果我们使用爱因斯坦求和约定,对表达式中出现两次的指数求和,上面的表达式可以简化为:
这样做的另一个好处是,我们不需要写出求和符号。
与第 9 部分一样,为简单起见,我们将假设变形和旋转都很小。第 9 部分中使用的符号与本文使用的符号有如下关系:
应力张量分量:
...
应变张量分量:
...
张量形式的材料常数:
是刚度或弹性张量。
三维空间中的因变量为分别表示x,y和z方向上的位移。
应变与因变量的关系为:
等等。
按照第 10 部分的能量方法,在求解线弹性问题时,相应的最小化问题是最小化系统中的总势能,其中包括内部弹性能和载荷势能。现在,我们将考虑一个具有边界的计算域
。使用本文讨论的符号,势能可以写成
式中,是表面牵引矢量的分量。
为简单起见,我们假设不存在体积力。
得到一阶变分
刚度张量有很多对称性。例如,有以下关系:
利用这些对称性和胡克定律,我们可以将第一项改写为:
因此,静定条件为
在不假设线弹性的情况下,这种一般公式也是有效的。其中一个原因是,在体积项中,我们并不是直接在因变量上应用变分算子,而是应用在应变上(只要我们使用的应力和应变定义是 “共轭” 或 “兼容” 的,这一点就是正确的)。这种格式使我们能够使用更简洁的符号,这也是使用弱形式的好处之一。请注意,在结构力学中,这种方程形式也被称为虚功原理。
回想一下,当我们编写一个试函数分量时,例如
隐含地使用了这样一个结论,即,既然
也有:
(以及可接受条件)。
一般来说,我们有
或使用矢量符号:
和
使用张量符号,我们可以写出
替代
其中表示对两个指数求和的张量双点积。
同样,我们可以把边界项写成
替代
现在,通过使用
方程的弱形式变为:
就像在第 10 部分中一样,我们可以进行分部积分,回到方程的强形式或方程组:
请注意,由于是一个矢量,所以我们可以得出这样的结论:
也就是说,我们可以把方程写成
其中,物理量
是由单位法向量表示的边界上的单位面积力,也对应于诺伊曼边界条件:
这表示,对于只有诺伊曼边界条件的问题,我们只剩下域积分项。
域积分:
需要对所有可接受的试函数都有效
要做到这一点,唯一的办法是:
这是第 9 部分中的纳维方程,用于边界载荷采用诺伊曼边界条件的问题。
存在体积力或载荷的情况下,我们可以得到
如果在弱形式中加入体积力,就会得到
请注意,弱形式方程是标量方程,部分原因是它与能量的关系,而纳维方程是矢量方程。偏微分方程的弱形式总是标量方程,但在有两个或多个因变量的情况下,强形式方程通常不是标量方程。
平面应力的弱形式方程
对于平面应力,我们在第 9 部分中看到,应力和应变张量分量之间的关系由以下公式描述:
所有其他应力分量均等于零。
但是,请注意并不为零,因为
但的变分并未进入弱形式,因为
。
有关平面应力的应力分量和应变分量之间关系的更多信息,请参阅我们的博客文章:平面应力与平面应变的区别。
现在,我们可以将平面应力方程写为域分部积分的弱积分形式:
其中,我们按照弱形式偏微分方程接口的惯例,将积分移到了右侧。

模型中的弱形式偏微分方程节点下的平面应力弱形式方程。
只有部分项为非零,因此实际上对于域积分,我们可以得到
但是,由于对称性,我们可以得出
和
因此,我们可以将域中的弱形式表达式写成
或使用其他等价符号:
在使用表面应力边界条件的情况下,边界项为
不过,在平面应力条件下,最后一项会被忽略。
请注意,如果遇到压力荷载的特殊情况
我们得到:
或者,在二维情况下:
使用弱形式偏微分方程接口模拟带圆孔的矩形板
如第 9 部分所示,在模型向导中设置平面应力的弱形式偏微分方程接口步骤与使用系数形式偏微分方程接口的步骤相同。我们还将与系数形式偏微分方程示例一样,假定我们有如下图所示的全局参数。

弱形式示例的全局参数。
此外,我们将假设已根据下图定义了应力和应变分量的变量。

平面应力的应力和应变分量变量。
利用这些定义,我们可以输入域级别的弱形式方程:
-(sxx*test(exx)+2*sxy*test(exy)+syy*test(eyy))
下图展示了在弱形式偏微分方程接口下显示的表达式。

弱形式偏微分方程接口中的弱形式表达式。
使用与第 9 部分示例中相同的边界条件集,其中的约束条件和逐点约束条件完全相同。要在最右边的边界输入载荷,我们有几种边界条件可供选择。最简单的选项是使用通量/源边界条件,如下图所示。
The COMSOL Multiphysics UI showing the Model Builder with the Flux/Source boundary condition selected, the corresponding settings, and the Graphics window showing the rectangular plate.
将压力载荷作为通量/源
边界条件输入。
另一种输入压力载荷的方法是使用表达式将其作为弱贡献输入:
1e6*test(u)
如下图所示。接下来几部分,我们将详细讨论弱贡献。
The COMSOL Multiphysics UI with the Weak Contribution node selected, the corresponding Settings window, and the Graphics window showing the rectangular plate.弱贡献
节点的设置。
要在边界上输入具有一般牵引力的载荷,可以使用如下表达式:
fx*test(u)+fy*test(v)
或者,如果载荷是压力载荷:
-p*(nx*test(u)+ny*test(v))
与第 9 部分的示例一样,使用的网格将被设置为极细化。计算完成后,您可以绘制各种应变和应力分量的结果,其结果与使用预定义物理场接口和系数形式偏微分方程接口的结果完全相同。

可视化的应力分量sxy。
方程视图窗口
请注意,有两个弱表达式文本框可用于输入方程,但我们只使用了其中一个。您也可以在第一个文本框中输入一些项,在第二个文本框中输入另一些项,因为在形成求解器将使用的最终弱表达式时,这些项将被相加。在某些情况下,拥有两行弱表达式会非常有用,例如,当您想对方程组的不同部分使用不同的积分阶次时。
要查看积分阶次设置,需要在模型开发器的工具栏打开显示更多选项对话框中启用方程视图如下图所示,方程视图节点将出现在模型树中。

偏微分方程系统的积分阶次设置。
要了解有关数值积分的更多信息,请参阅博客文章:数值积分和高斯点简介。
在方程视图窗口的弱表达式部分,可以看到接口使用的弱形式方程,其中的每个特征节点都有一个相应的方程视图窗口。在使用内置物理场接口时也是如此。通过方程视图窗口,您可以 “窥探” 底层,查看变量定义(如应变和应力变量)以及所使用的弱表达式列表。
修改方程和弱贡献
您甚至可以添加或修改弱形式项来改变内置接口的底层偏微分方程组(包括边界条件)。要查看这方面的示例,您可以检查位于案例库的COMSOL Multiphysics>Multiphysics分支下的热微执行器教程模型中的方程视图节点,如下图所示。

在这个示例中,热膨胀是通过修改应变张量的相应变量定义实现的,如下图所示。我们在学习中心文章:通过用户定义耦合来自动定义多物理场模型中逐步地详细介绍了这一过程。
The Model Builder with the Equation View node selected and the corresponding Settings window showing the Variables table.
对定义应变张量的变量表达式进行修改的方程视图
节点。
您甚至可以通过添加弱贡献来修改预定义接口的弱公式。为此,您需要在显示更多选项对话框中启用基于方程的贡献。如下图所示,您可以在更多节点下的物理场接口右键菜单中找到该选项和其他高级选项。

菜单显示了访问弱贡献节点的位置。
这样,您就能够在弱形式上添加额外的方程项,用于描述对原始方程的扩展和修改。在下图中,广义平面应变方程中添加了弱贡献;另请参阅博客:如何使用 COMSOL Multiphysics®为广义平面应变建模请注意,自 COMSOL Multiphysics®5.3a 版本起,广义平面应变可作为结构力学模块和 MEMS 模块的内置接口使用。

弱贡献节点的设置。
更多一般物理场的弱形式
并非所有类型的物理场都基于能量最小化原理,而是与鞍点(仍然是静定点)相对应。一个典型的例子就是对流物理场,如对流扩散方程或纳维-斯托克斯方程。
在对流扩散方程的情况下:
包含有诺伊曼边界条件
我们可以通过乘以一个试函数得出弱函数形式并积分:
接下来,进行分部积分:
然后,利用边界条件,我们可以得到
按照使用 COMSOL®的惯例,我们将方程移至右侧,得到
请注意,在域积分中,扩散项相对于试函数和因变量是对称的,即它们具有相同阶次的导数。而对流项则不同,这是没有相关能量的弱形式方程的共同特征。在有限元离散时,对流方程项的这种不对称性通常会导致非对称刚度矩阵。请浏览我们关于弱形式的博客。
使用弱形式偏微分方程接口的不同方法
您不需要从偏微分方程或能量表达式开始推导弱形式方程,而是使用更直接的方法。在最简单的情况下,可以直观地将试函数(如test(u))与之相乘的表达式视为弱形式方程,并将其设为零。换句话说,如果我们在弱表达式文本框中输入一个表达式,例如
test(u)*(u-f(x,y))
则可将其解释为方程
(u-f(x,y))=0
在弱形式方程中,如之前我们讲过的,弱形式方程允许不连续。
在上面的表达式中,f(x,y)可以是插值函数,也可以是解析函数。因变量域u将使用有限元和定义在三角形或三维四面体上的分段多项式等方法近似该函数。
在这种特殊情况下,可以看到弱形式来自于最小化:
(u-f(x,y))^2
通过形成第一个变量,就能找到静定点:
test((u-f(x,y))^2)=2*((u-f(x,y)))*test(u)
或使用数学表达式:
这应该理解为类似于链式规则:
在此基础上,还可以添加因变量梯度的试函数,以引入扩散或对流效应等。有关不从偏微分方程开始推导的示例,请参阅我们关于图像去噪和其他多维变分问题的博客文章。
扩展学习
虽然您可以下载本文中的示例模型,但我们鼓励您根据文中提供的指导方法自己建立模型,这将有助于您巩固学习如何在软件中使用弱形式方程设置偏微分方程。之后,您可以打开并研究模型示例的文件,将其与使用预定义物理场接口实现的模型进行比较。
请提交与此页面相关的反馈,或点击此处联系技术支持。



