Barracuda Virtual Reactor 17.4.0新功能说明
时间:2019-06-05 10:02:04  作者:

Barracuda Virtual Reactor 17.4.0发行指南

1. 体积平均化学反应的GPU计算

2. 升级解析器接口和子表达式

3. 用户自定义化学反应速率系数

4. 重启时重置时间平均

5. 在内部通量面输出原始粒子数据

6. 在内部通量面重置粒子停留时间

7. 检测损坏的IC文件

8. 无文件锁定的求解器标示

Virtual Reactor 17.4.0通过加入许多特色和增强功能,提高了化学计算的速度,改善了化学和曳力模型的灵活性和可用性,并修复了以前版本中的已知问题。

1. 体积平均化学反应的GPU计算

在版本17.4.0中,在GPU上进行体积平均化学反应计算。计算时间测试表明相比于版本17.3.1速度有了显著提升(仅在使用GPU时,以及同时使用GPU和openMP时)。图 1展示的是模拟几个相关工业反应器模型的计算速度对比结果。计算速度的增加取决于多个因素,包括处理问题的规模大小(网格和颗粒的数量)、定义的化学反应的数量以及可用的GPU硬件。总体而言,相对于以前的版本,计算速度的增加与项目中定义的体积平均化学反应的数量成正比。其中计算时间测试中的FCC再生器和化学循环反应器涉及的体积平均化学反应不到5个,而丙烯腈反应器项目中涉及的体积平均化学反应超过了15个。

                                  图 1 计算时间测试结果

2. 升级解析器接口和子表达式

在17.4.0版本中,解析器接口得到了很大的改进,允许用户使用子表达式简单明了地定义表达式。子表达式作为中间表达式,被分配一个变量名,后续可以在主表达式中使用。由于子表达式只在求解器需要时才参与计算,几乎不占用额外的计算成本,使用起来非常方便。此外,解析器接口也进行了修改,子表达式采用“C-style”的输入,一种用于主表达式、注释和语法高亮显示的返回语句。

该解析器可以被用于用户自定义曳力模型和用户自定义化学反应速率系数。

有关子表达式是如何使解析表达式更具可读性的示例,可参考非球形Ganser曳力模型。该模型是Virtual Reactor中比较复杂的曳力模型之一。在版本17.3.1中,在曳力模型编辑器中输入曳力模型需要大量的替换变量,使得模型难以阅读和调试。而在17.4.0中输入相同的模型时,由于使用了子表达式、注释和语法高亮显示,更容易阅读、调试,具体如图 2和图 3所示。

                                      图 2 解析器中的非球形Ganser曳力模型定义

                                   图 3 解析器中的非球形Ganser曳力模型定义

用户手册的相关章节:

(1) 解析器GUI模式

(2) 用户自定义曳力模型

(3) 用户自定义化学反应速率系数

3 用户自定义化学反应速率系数

版本17.4.0中提供了一种新的化学反应速率系数:User-defined Expression(用户自定义表达式)。通过使用更新升级的解析器接口和子表达式,允许用户以一种非常强大、灵活的新方式定义反应速率系数。如图4所示是一个在17.4.0版本中用户自定义的化学反应速率系数,这种定义在以前版本中是无法实现的。

                              图 4 用户自定义的表达式化学反应速率系数

用户自定义表达式接口中有几个变量是17.4.0版本中新增的,允许用户定义以前不可能定义的反应系数:

(1) Re - 雷诺数

(2) thetaCP - 颗粒密实堆积体积分数;

(3) diamSauterP - 计算单元内的Sauter平均直径,单位为微米;

(4) sphericityP - 粒子球形度;

(5) viscF - 流体粘度,单位为Pa•s;

(6)dVelPF - 粒子和流体之间速度差,单位为m/s;

(7) residenceTime - 颗粒的停留时间,单位为s;

(8) time - 模拟时间,单位为s;

(9) X - 区域中X坐标位置,单位m;

(10)Y - 区域中Y坐标位置,单位m;

(11)Z - 区域中Z坐标位置,单位m。

用户手册的相关章节:

(1) 解析器GUI模式

(2) 用户自定义化学反应速率系数

4. 重启时重置时间平均

在以前版本的Virtual Reactor中,重新启动计算时会弹出一个额外的对话框,询问是否重置时间平均值。旧对话框如下所示。

注意

必须选择此框,以便在重启时重置时间平均。

图 5 重启对话框复选,用于在版本17.4.0中重置时间平均

用户手册的相关章节:

 重新启动模拟

5. 在内部通量面输出原始粒子数据

在内部通量面设置界面上已添加该选项,用来输出原始粒子数据。在以前的Virtual Reactor版本中,原始粒子数据只在边界条件通量面可用。

             图 6 在内部通量平面上输出原始粒子数据

用户手册的相关章节:

 Flux Planes

6. 在内部通量面重置粒子停留时间

内部通量面设置界面增加了一个新选项,当粒子穿过平面时,它会将粒子停留时间重置为零。该功能可以用来跟踪颗粒在循环流化床中的运动时间,或者计算颗粒在系统中两个位置之间的运动时间。

图 7 重置内部通量平面处的颗粒停留时间

用户手册的相关章节:

 Flux Planes

7. 检测损坏的IC文件

由17.4.0版本编写的Restart 文件 (IC_*)现在包含一个散列,求解器使用该散列来验证文件写入后是否发生损坏。在过去,一些用户在跨网络传输大型IC_*文件时遇到了文件损坏问题,而新的散列检查将使此类问题更容易被排除。在绝大多数情况下,IC_*文件不存在损坏,因此用户在重新启动计算时不会注意到任何差异。

8. 无文件锁定的求解器标示

默认情况下,Virtual Reactor求解器开始运行时会对history.log文件进行锁定。这可以防止多个求解器同时在同一目录中运行,从而能够避免多个求解器不断地覆盖彼此写入的文件。但是,在某些批处理作业系统上,不允许文件锁定。因此,解算器中添加了一个新的命令行标示 -nolock,以避免在运行时对任何内容进行文件锁定。使用此标示时,用户务必确保每个目录中只运行一个求解器。

如果要使用新的命令行标示,请将其添加到“运行”窗口中的“高级命令行标示”文本框,或将其传递给命令行上的求解器。例如:

cpfd.x.17.4.0 -gpu -d0 -nolock my.prj