COMSOL 中提供了多种粒子计数工具。您可以根据具体应用选择最优的方法,比如说,您希望在方程组还是后处理中使用已计数的粒子数。COMSOL Multiphysics 的粒子追踪 接口提供了三个主要的粒子计数选项。这些方法都有很好的通用性,支持计算类似电荷密度和动量通量等物理量,本篇博客将主要介绍如何计算一组域或边界上的粒子数。
粒子的三种计数方法
在后处理中
最简单的粒子计数方法是在求解完成后直接在后处理时进行粒子计数。我们将介绍这个基本方法的实现步骤。
首先,求解完成后会自动生成一个缺省粒子数据集,为该数据集创建复本。在数据集中增加一个选择,如下图所示,然后选择您希望进行粒子计数的域或边界。
接下来,在派生值下增加全局计算节点,指向新的粒子数据集,此例中应为粒子 2。您可以在设定窗口中选择具体的参数值或输出时间。
在增加/替换表达式菜单下的粒子统计 栏,选择以下预定义表达式:
- <
phys
>.alpha
— 透射率(由粒子数据集选定的粒子数除以粒子总数)。 - <
phys
>.Nsel
— 选定的粒子总数(由粒子数据集选定的粒子数)。 - <
phys
>.Nt
— 粒子总数(整个模型中的粒子总数)。
对全局计算节点进行计算,求得的表达式的值将显示在表格中。
App 库示例
- 分子流模块 > 行业应用 > 电荷交换池
- AC/DC 模块 > 粒子追踪 > 四极质谱过滤器
使用累加器
如需要在其他物理场接口中使用粒子数或粒子的数密度,则可以通过累加器 更好地来实现。累加器会将粒子信息传递至粒子留驻的网格单元;能够用于域及边界处,还可以通过粒子追踪 接口的右键菜单访问。当在域中添加累加器时,将出现以下设定:
累加器 特征提供了以下选项:
- 累加器类型:设为计数 时,将只统计每个网格单元上的累加变量,不受单元尺寸的影响。设为密度 时,会将累加变量除以网格单元的体积,可以计算类似粒子数密度类的物理量。
- 累加基于:设为单元 时,累加变量将只是计算给定时间点驻留在单元内的所有粒子的源项之和。设为单元和时间 时,粒子会基于其在单元驻留时间的长短对经过的单元产生贡献。
- 源项:这是在粒子上定义并希望投射到底层网格中的表达式。当进行粒子计数时,只需将源项 设为 “1”,但也支持粒子上的任意表达式,比如电荷或动能;还可以基于在粒子驻留域内定义的变量。
- 单位:当为累积变量选择单位时,源项 所需的单位将相应变化。
为了计数粒子总数,您可以在累加器的驻留域中增加积分组件耦合。边界累加器会自动在选定边界上增加组件耦合。在我们的示例中,粒子总数由 <integration_operator_name
>(pt.count)
得到。这可以通过全局计算节点计算。每个网格单元内的粒子数也可以于其他物理场耦合,因为它也是一个自由度。我们可以在累加变量和底层网格绘图中绘制粒子的位置,以此显示软件如何进行粒子计数。
绘图显示了粒子在底层网格(灰线)上的位置(黑点)。每个单元内颜色表示累加变量的值。
从上图中可以清楚看到,累加器的确会统计每个网格单元内的粒子数。对不包含粒子的网格单元,累加变量为零,网格单元显示为蓝色。大部分网格单元中包含一个粒子,这类网格显示为绿色。其中一个网格内恰好包含两个粒子,显示为红色。
您还可以使用累加器来统计经过一条内部边界的粒子数。为此,您只需在粒子经过的边界上增加一个壁条件,并设为穿过。向壁节点增加累加器子特征,并设为:
当粒子经过边界时,累加器会增加对应边界网格单元中的自由度;得到通过内部边界的粒子数的空间分布,如下方动画所示。
我们可以轻松以时间函数的形式绘制经过边界的粒子总数;只需增加一维绘图 组和全局 绘图特征。累加器会创建多个预定义变量,并加成到所有网格单元的累加变量中。如果要得到粒子总数,您可以使用累加变量 总和选项。
以下绘图显示了穿过内部边界的粒子的总数。
备注:要了解有关累加器 App 的更多信息,请阅读我的同事 Christopher Boucher 之前提供的这篇博客文章。
App 库示例
- 分子流模块 > 标准案例 > s 弯标准案例
COMSOL Multiphysics 5.2 版本新增粒子计数器特征
粒子计数器 是一个域或边界特征,可以提供有关从指定特征释放并到达一组选定域或表面的粒子信息。这些量可以是透射率、电流和质量流率。粒子计数器 特征的设定非常简单。释放特征可以设为释放 或全部。您可以在模型中增加粒子计数器特征,无需重新求解就能访问这些变量。您只需选择研究 > 更新解,就能自动生成新的变量,并能即时用于计算。
每个粒子计数器都可以得到以下表达式。注意:该范围不同于粒子统计 绘图组中提供的变量,如第一节所示。
- <
phys
>.
<feature
>.rL
— 包含粒子的逻辑表达式;可以用于粒子轨迹 绘图的过滤器 节点,支持只显示连接源端与目标端的粒子。 - <
phys
>.
<feature
>.Nsel
— 选定的粒子总数;计算在粒子计数器对应的一组域或边界内由特定特征释放的粒子总数。 - <
phys
>.
<feature
>.Nfin,
— 最终到达粒子计数器的粒子数量(最终求解时间内粒子计数器选定的粒子数)。 - <
phys
>.
<feature
>.alpha
— 透射率(粒子计数器选定的粒子数除以由释放特征释放的粒子数)。
当释放特征为粒子束 时(带电粒子追踪 接口的专业释放特征),还将针对连接计数器与粒子束的粒子生成附加变量,包括平均束位置、速度和动能。
App 库示例
- 粒子追踪模块 > 带电粒子追踪 > 敏感性高分辨率离子微探针
- 粒子追踪模块 > 教程 > 布朗运动
- 粒子追踪模块 > 流体流动 > 层流混合器
COMSOL Multiphysics 中的粒子计数功能总结
COMSOL 提供了三种方式来统计域和边界中的粒子数。对只包含单个释放特征的简单模型,可以直接使用后处理工具。如希望绘制域或边界上的粒子数,或希望在其他物理场接口中使用粒子数,则应使用累加器特征。如需要计算连接指定释放特征和选定域或边界的粒子,则可以使用 COMSOL Multiphysics 5.2 版本新增的粒子计数器特征。
其他资源
通过下方链接访问本博客文章中介绍的教程模型和仿真 App 的 MPH 文件和文档。
评论 (6)
Libo Ai
2016-12-02您好,请问如果想设置电子初始能量分布符合某个方程,应该如何设置呢?
Yuansheng Zheng
2016-12-05Libo,您好!
感谢您的评论。
模型相关的问题,请您联系我们的技术支持团队:
在线支持中心://www.denkrieger.com/support
Email: support@comsol.com
谢谢!
Yuansheng
jie yang
2018-11-02您好,请问结果动图中的网格怎么显示
丛 石
2018-12-14请问,如何才能设置,粒子的运行方程。比如我想设置一个拉格朗日运动方程?? 然后说明书上好像没有说明。
Fang Donggen
2023-06-23您好,请问一下,如果想要分析某一个流场区域内的粒子数和累积粒子数应当如何设置呢?
Xiaohan Jiang
2023-06-25 COMSOL 员工参考 “S 弯中的分子流” 这个案例,里面使用了累加器功能,可分析区域内的瞬时粒子数和时间累计的总粒子数量,同时,这个粒子数量密度还可以通过后处理变量表征成为云图的形式。