磁流体动力学

在 COMSOL® 中构建磁流体动力学多物理场模型

作者 Walter Frei
2019年 6月 19日

COMSOL Multiphysics® 软件中的模型可以从零开始构建,软件支持模拟多物理场,您可以按照自己的意愿轻松地将代表不同物理场现象的模型进行耦合。有时这可以通过使用软件的内置功能来实现,但有些情况下,需要做一些额外的工作。我们以一个磁流体动力学(MHD)模型为例介绍在 COMSOL 中的建模工作流程。

磁流体动力学的多物理场建模

MHD 现象建模本质上是一个多物理场问题,我们必须用数值方法求解流体流动、电流和磁场之间的耦合问题。这些不同的物理场都是由偏微分方程描述的,可以通过有限元方法求解。
磁流体动力学多物理场模型示意图。
施加电流后,两个磁体通道中导电流体的 MHD 模型。

我们看看如何在一个相对简单的问题背景下进行建模:如上所述,绝缘的矩形通道内为不可压缩导电流体,这个通道连接两个流体静压相等的无限大容器(未建模)。有两个电极穿过流动通道在两侧伸出,通过施加电势差驱动电流通过流体。此外,在上方和下方分别放置一个圆形磁铁。磁体产生静磁场 \mathbf{B},使得具有导电性 \sigma 的流体以一定速度  \mathbf{v}  移动通过该磁场,从而产生感应电流 \mathbf{J} = \sigma \left( \mathbf{v \times B}\right) 。除了这些感应电流之外,由于电势场的边界条件,还会产生电流 V,因此流体中的总电流变为:

\mathbf{J} = \sigma \left( – \nabla V + \mathbf{v \times B}\right)

流经磁场的电流将对流体产生体积力 \mathbf{F = J \times B} ,并将流体从一个容器泵送到另一个容器。我们假设系统在稳定状态下运行。

耦合电场、磁场和流场

对于这个问题,我们需要求解流体中的偏微分方程组来描述电场和磁场。方程式为:

\nabla \times \left( \mu_0^{-1} \mu_r^{-1} \mathbf{B} \right) = \mathbf{J}

\nabla \cdot \mathbf{J} = 0

这组方程通过磁场和电场 接口(AC/DC 模块的一部分),使用安培定律和电流守恒 特征以及单独的速度(洛伦兹项) 特征求解。

在移动流体周围的空间中,没有电流,所以我们只需求解单矢量方程:

\nabla \times \left( \mu_0^{-1} \mu_r^{-1} \mathbf{(B+B_r)} \right) = \mathbf{0}

其中 \mathbf{B_r}  是剩余磁通密度,它仅在磁域中非零。当单独求解上述方程时,请使用磁场和电场 接口中的安培定律 特征。

我们假设通道壁的属性不影响场,因此在模型中忽略它们。使用一组材料属性和边界条件来给出说明性结果。任何位置的磁场边界条件都是磁绝缘 条件, xy 平面除外,该平面采用理想磁导体 条件来利用系统的对称性。表示电极的域必须一直延伸到建模域的边界,接触磁绝缘 边界,以提供电流返回路径电压 接地 终端 条件应用于这些外表面,而电绝缘 条件应用于所有其他适用的边界。

此外,我们还需要求解通道中的流场。我们假设流动是层流,从而在通道域中求解纳维-斯托克斯方程。如果流动是湍流,我们可以添加一个湍流模型开放边界 条件应用于通道的两端,表压为零。对称 条件应用于 xy 平面。计算域如下图所示。
显示 MHD 模型的计算域和边界条件的图形。
计算域和边界条件。

流动将由流体中电流和磁场的相互作用产生的体积力 \mathbf{F = J \times B} 驱动。这个力的表达式没有内置到软件中,所以在这里我们需要做一些手工操作。我们需要找到电流和磁场分量的内置表达式,可以通过查看方程视图 并生成报告来实现,如知识库中关于实现用户定义的多物理场耦合的描述。这些内置表达式用于定义流体上的体积力,如下面的屏幕截图所示。
COMSOL Multiphysics® 中体积力设置窗口的屏幕截图。
显示计算力分量的变量的屏幕截图。

最后,要将计算出的速度场耦合回电磁问题,请使用磁场和电场 接口中的速度(洛伦兹项) 特征,如下面的屏幕截图所示。请注意,软件会自动将流体速度场识别为此特征的输入。非常简单!这两个物理场之间的耦合现在完全实现了。
将速度(洛伦兹项)耦合到电磁学分析的设置的屏幕截图。
显示速度如何耦合到 磁场和电场接口的屏幕截图。

MHD 问题的网格划分和求解

说到单元网格划分和单元阶次,这里一个重要的问题是模型的计算量。求解流体和周围域中的磁场和电场是模型中计算量最大的部分,因此我们希望将整个模型中的网格单元总数保持最少。基于线性静态问题的一些经验法则,我们可以说至少具有二阶单元是一个很好的起点。因此,我们将流体流动的离散化转换为 P2 + P2 离散化,这意味着速度和压力都用二阶基函数来描述。磁场和电场都用二阶离散化来描述。由于所有场都被离散化为至少二阶,因此几何形状的阶次也将自动变为二阶。对可选网格阶次和网格大小的全面调查留给有积极性的读者作为练习。

求解时,软件将自动采用所谓的分离方法,在确定电磁场和速度场之间来回切换,并计算这些场的线性子系统,每个子系统都有自己的优化迭代求解器。由于这种多物理场问题本质上是非线性的,因此了解解决此类问题时可能出现的难题以及如何解决这些难题通常也很有帮助,正如此条知识库条目中关于提高非线性稳态模型的收敛性所述。

多物理场分析的结果如下图所示。我们观察到明显的泵送效应:施加的电压导致电流流过流体,当这些电荷在磁场中移动时,它们会受到一个力的作用,这个力被传递给流体。
COMSOL 中 MHD 多物理场仿真结果的图像。
由于 MHD 多物理场耦合引起的流体泵送的结果图。

简化 MHD 模型

到目前为止,我们已经建立了一个包括磁场、电流和流体流动的模型,我们考虑了所有物理场方程之间的双向耦合。也就是说,每一种物理场现象都会影响其他物理场现象。但事实证明,对于这种特殊情况,我们不需要这样做。接下来我们看一下其中的原因,以及它如何让我们的模型更简单。

如果我们回过头来看一下之前的所有控制方程,我们可以看到只有两个方程引入了物理场现象之间的耦合。方程 \mathbf{F = J \times B}  由于电流和磁场而对流体施加一个力,还有一个方程 \mathbf{J} = \sigma \left( – \nabla V + \mathbf{v \times B}\right),表示流体中的总电流。后一个方程表明,电流是由于外加电压边界条件以及导电流体通过磁场的运动而产生的。但是,如果我们假设前一项远大于后一项(即 – \nabla V \gg \mathbf{v \times B}),那么我们将当前的方程简化为:\mathbf{J} = \sigma \left( – \nabla V \right) 。这意味着流体流动问题不会影响电流,流动方程可以与电磁场方程完全分开求解。也就是说,我们可以首先求解电磁场,一旦知道了电磁场,就使用这些场作为流动问题的输入,从而使问题单向耦合。

我们还可以进行额外的简化。严格地说,磁场是由磁铁和电流引起的。然而,对于我们这里分析的边界条件和材料特性,由于电流产生的磁场远小于由磁体引起的磁场。因此,我们可以做出简化的假设,即磁场仅仅是由于磁铁而产生的;也就是说,电流不会产生明显的磁场。这样,我们可以在无电流假设下求解磁场,并分别使用磁场,无电流 电流 接口求解电流。这些物理场接口具有与前面讨论的类似的一组边界和域条件。

磁场,无电流 接口定义了方程 \nabla \cdot \left( \mu_0 \mu_r \mathbf{H + B_r} \right) = 0,该方程的计算量远低于磁场和电场 接口中定义的方程组。此外,这个方程可以独立于电流求解。
用于简化 MHD 模型的设置的屏幕截图。
显示简化模型设置的屏幕截图。

上面的屏幕截图显示了分析这些简化后新模型的设置。流体上体积力的表达式将使用不同的变量名,但除此之外,该模型与之前非常相似。请注意,三个不同的物理场接口在三个单独的研究步骤中求解。磁场,无电流 电流 接口方程可以分别求解,两者都必须在层流 接口方程之前求解。
显示简化 MHD 模型仿真结果的图像。
简化的 MHD 模型的结果。

与完全耦合的情况相比,软件在求解这种简化模型时,求解时间将大大减少,这是因为,物理场方程是分开求解的,软件不需要进行迭代。从上面显示的结果我们可以看出,这些解几乎与之前未简化的模型计算结果相同。当然,我们所做的这些假设和简化确实有其局限性,因此对照完整的模型进行检查是没有坏处的,但 COMSOL Multiphysics 平台具有强大的功能和灵活性,我们可以用它来轻松构建简化模型和完整模型,并进行比较,然后根据需要进行修改。你准备好开始建立自己的多物理场建模了吗?请联系 COMSOL

如果要下载所提供的示例模型,请单击下面的按钮(请注意,你必须登录 COMSOL Access 帐户并拥有有效的软件许可证):


评论 (9)

正在加载...
旖旎 孙
旖旎 孙
2019-09-26

如果流体两端是完全封闭的,如何获取两端收到的力及形变?

翀翀 徐
翀翀 徐
2023-10-23

你好,可以交流一下吗?

李托夫斯基
李托夫斯基
2023-12-30

您好,请问如果导电流体的电导率和介电常数会随其密度的改变而改变呢?应该如何设置呢?软件会自动选择迭代求解器吗?

Hao Li
Hao Li
2024-01-02 COMSOL 员工

您好!
感谢您的评论。

可以将材料属性写为密度的函数,直接进行仿真。若想使这些物理量在计算过程中根据状态变化,建议写为将密度转化为因变量的函数。

如果有进一步问题,建议您联系COMSOL的技术支持团队:
在线支持中心:cn.comsol.com/support
Email: support@comsol.com
谢谢!

一鸣 何
一鸣 何
2024-06-06

您好,如果我想构建没有电流的磁流体动力学模型,仅存在磁场及流场,该如何将磁力作为体积力加入流场中。我的模型能够简化为:一长圆管,圆管外套上环形永磁体,圆管内初始为磁流体,设圆管一段为压力入口,通入压力线性变化的空气介质,我想知道在压力到达多少的时候,磁流体会被冲破造成泄漏,泄漏量是多少,有些类似磁流体密封的感觉。希望您能看见并与我讨论,非常感谢。

没延 韩
没延 韩
2024-06-14 COMSOL 员工

首先没有“电流”应该只是说没有电流作为磁场的场源,是用永磁体提供的磁场。如果流体本身导磁,那么可以用“磁场,无电流”接口和“层流”手动耦合,在“磁场,无电流”中加入一个“力计算”,然后在“层流”中加入一个“体积力”,里面写入mfnc.Force_x~z。
如果磁流体本身不导磁但导电,那么磁场驱动流体靠的还是洛伦兹力。“磁场”接口能模拟电磁体也能模拟永磁体,因此在磁场中加入永磁体后加入耦合节点“磁流体动力学”即可。这个多场耦合节点不支持磁场无电流。两种方法任选。
第二,你的模型实际上是两个过程,第一是充气,第二是冲破后的流动。这样要分两个阶段。第一阶段是密封过程中给容器不断加压,这个过程是一个电磁+流体+固体力学耦合,需要一个固体力学节点。“冲破”需要一个判据,一般是考察应力或者应变/变形,压力和阈值对应。然后冲破以后给圆管开一个“出口”,去掉固体力学继续做电磁流体建模。

一鸣 何
一鸣 何
2024-06-18

非常感谢您的回答,我的确是采用计算磁力后再通过体积力将磁力耦合到流体中,但在体积力写入时出现单位不一致现象,力计算中磁力的单位是N,而体积力写入时需要的单位为N/m3,此种情况应该如何正确写入体积力。
关于第二点,我并未加入固体力学耦合,仅有磁场无电流以及层流两个物理场,冲破判据我是依靠流体出口是否存在流量来判断,但现在我入口压力只要比出口高哪怕1pa,出口也会有泄漏,我认为是我的体积力写入错误导致,以上是我的看法,希望您能继续与我讨论,非常感谢。

没延 韩
没延 韩
2024-06-20 COMSOL 员工

“力计算”使用的是麦克斯韦表面应力张量作为积分计算得到的,是用来计算磁吸力的主要方法。这个力值没有分布的概念,因为是靠其表面的应力张量进行的积分。所以直接用力值除以流体体积即可,因为磁导率是恒定没有分布的,所以受力可认为是均匀受力。

一鸣 何
一鸣 何
2024-06-25

好的 非常感谢您的解答

浏览 COMSOL 博客