如何在 COMSOL 中进行粒子计数

COMSOL 中提供了多种粒子计数工具。您可以根据具体应用选择最优的方法,比如说,您希望在方程组还是后处理中使用已计数的粒子数。COMSOL Multiphysics 的粒子追踪接口提供了三个主要的粒子计数选项。这些方法都有很好的通用性,支持计算类似电荷密度和动量通量等物理量,本文将介绍如何计算一组域或边界上的粒子数。

粒子的三种计数方法

在后处理中

最简单的粒子计数方法是在求解完成后直接在后处理时进行粒子计数。我们将介绍这个基本方法的实现步骤。

首先,求解完成后会自动生成一个缺省粒子数据集,为该数据集创建复本。在数据集中增加一个选择,如下图所示,然后选择您希望进行粒子计数的域或边界。

如何在 COMSOL 中进行粒子计数的图1

接下来,在派生值下增加全局计算节点,指向新的粒子数据集,此例中应为粒子 2。您可以在设定窗口中选择具体的参数值或输出时间。

如何在 COMSOL 中进行粒子计数的图2

在增加/替换表达式菜单下的粒子统计栏,选择以下预定义表达式:

  • <phys>.alpha — 透射率(由粒子数据集选定的粒子数除以粒子总数)。

  • <phys>.Nsel — 选定的粒子总数(由粒子数据集选定的粒子数)。

  • <phys>.Nt — 粒子总数(整个模型中的粒子总数)。

如何在 COMSOL 中进行粒子计数的图3

对全局计算节点进行计算,求得的表达式的值将显示在表格中。

App 库示例
  • 分子流模块 > 行业应用 > 电荷交换池

  • AC/DC 模块 > 粒子追踪 > 四极质谱过滤器

使用累加器

如需要在其他物理场接口中使用粒子数或粒子的数密度,则可以通过累加器更好地来实现。累加器会将粒子信息传递至粒子留驻的网格单元;能够用于域及边界处,还可以通过粒子追踪接口的右键菜单访问。当在域中添加累加器时,将出现以下设定:

如何在 COMSOL 中进行粒子计数的图4

累加器特征提供了以下选项:

  • 累加器类型:设为计数时,将只统计每个网格单元上的累加变量,不受单元尺寸的影响。设为密度时,会将累加变量除以网格单元的体积,可以计算类似粒子数密度类的物理量。

  • 累加基于:设为单元时,累加变量将只是计算给定时间点驻留在单元内的所有粒子的源项之和。设为单元和时间时,粒子会基于其在单元驻留时间的长短对经过的单元产生贡献。

  • 源项:这是在粒子上定义并希望投射到底层网格中的表达式。当进行粒子计数时,只需将源项设为 “1”,但也支持粒子上的任意表达式,比如电荷或动能;还可以基于在粒子驻留域内定义的变量。

  • 单位:当为累积变量选择单位时,源项所需的单位将相应变化。

为了计数粒子总数,您可以在累加器的驻留域中增加积分组件耦合。边界累加器会自动在选定边界上增加组件耦合。在我们的示例中,粒子总数由 <integration_operator_name>((pt.count))得到。这可以通过全局计算节点计算。每个网格单元内的粒子数也可以于其他物理场耦合,因为它也是一个自由度。我们可以在累加变量和底层网格绘图中绘制粒子的位置,以此显示软件如何进行粒子计数。

如何在 COMSOL 中进行粒子计数的图5

绘图显示了粒子在底层网格(灰线)上的位置(黑点)。每个单元内颜色表示累加变量的值。

从上图中可以清楚看到,累加器的确会统计每个网格单元内的粒子数。对不包含粒子的网格单元,累加变量为零,网格单元显示为蓝色。大部分网格单元中包含一个粒子,这类网格显示为绿色。其中一个网格内恰好包含两个粒子,显示为红色。

您还可以使用累加器来统计经过一条内部边界的粒子数。为此,您只需在粒子经过的边界上增加一个壁条件,并设为穿过。向壁节点增加累加器子特征,并设为:

如何在 COMSOL 中进行粒子计数的图6

当粒子经过边界时,累加器会增加对应边界网格单元中的自由度;得到通过内部边界的粒子数的空间分布,如下方动画所示。

如何在 COMSOL 中进行粒子计数的图7

我们可以轻松以时间函数的形式绘制经过边界的粒子总数;只需增加一维绘图组和全局绘图特征。累加器会创建多个预定义变量,并加成到所有网格单元的累加变量中。如果要得到粒子总数,您可以使用累加变量总和选项。

如何在 COMSOL 中进行粒子计数的图8

以下绘图显示了穿过内部边界的粒子的总数。

如何在 COMSOL 中进行粒子计数的图9

App 库示例
  • 分子流模块 > 标准案例 > s 弯标准案例

COMSOL Multiphysics 粒子计数器特征

粒子计数器是一个域或边界特征,可以提供有关从指定特征释放并到达一组选定域或表面的粒子信息。这些量可以是透射率、电流和质量流率。粒子计数器特征的设定非常简单。释放特征可以设为释放或全部。您可以在模型中增加粒子计数器特征,无需重新求解就能访问这些变量。您只需选择研究 > 更新解,就能自动生成新的变量,并能即时用于计算。

如何在 COMSOL 中进行粒子计数的图10

每个粒子计数器都可以得到以下表达式。注意:该范围不同于粒子统计绘图组中提供的变量,如第一节所示。

  • <phys>.<feature>.rL— 包含粒子的逻辑表达式;可以用于粒子轨迹绘图的过滤器节点,支持只显示连接源端与目标端的粒子。

  • <phys>.<feature>.Nsel — 选定的粒子总数;计算在粒子计数器对应的一组域或边界内由特定特征释放的粒子总数。

  • <phys>.<feature>.Nfin,— 最终到达粒子计数器的粒子数量(最终求解时间内粒子计数器选定的粒子数)。

  • <phys>.<feature>.alpha — 透射率(粒子计数器选定的粒子数除以由释放特征释放的粒子数)。

当释放特征为粒子束时(带电粒子追踪接口的专业释放特征) ,还将针对连接计数器与粒子束的粒子生成附加变量,包括平均束位置、速度和动能。

App 库示例
  • 粒子追踪模块 > 带电粒子追踪 > 敏感性高分辨率离子微探针

  • 粒子追踪模块 > 教程 > 布朗运动

  • 粒子追踪模块 > 流体流动 > 层流混合器

COMSOL Multiphysics 中的粒子计数功能总结

COMSOL 提供了三种方式来统计域和边界中的粒子数。对只包含单个释放特征的简单模型,可以直接使用后处理工具。如希望绘制域或边界上的粒子数,或希望在其他物理场接口中使用粒子数,则应使用累加器特征。如需要计算连接指定释放特征和选定域或边界的粒子,则可以使用 COMSOL 中的粒子计数器特征。


本文来自:COMSOL博客

(1条)
默认 最新
👍
评论 点赞
点赞 7 评论 1 收藏 1
关注