反应模型参考

对于在大量流体中发生反应的物理连续体,可以选择反应模型。

表 1. 反应模型参考
理论 请参见反应流体。
提供方式 [物理连续体] > 模型 > 反应期
节点路径示例 连续体 > Physics 1 > 模型 > 反应
要求
  • 材料:多成分气体或多成分液体
激活 物理模型 反应流体模型
模型控制(子节点) 反应

包含化学机制中反应的详细信息。可以手动定义这些反应,或将在导入化学机制时显示这些反应。请参见导入组分和反应或手动定义化学反应。

[反应]
反应物
产物
属性
反应系统属性

[反应] > 属性

“属性”节点包含深一层的子节点“复杂反应属性”和“反应系数”。当在“阿雷尼乌斯系数”下激活“第三体”时,“第三体效率”子节点也变为可用。如果导入的化学机制中定义了压力相关的反应,则还会显示另一个以特定方法(即用于指定“林德曼脱落公式”、“Troe 脱落公式”或“SRI 脱落公式”压力相关参数的方法)命名的节点。林德曼、Troe 或 SRI 的值从导入的化学机制中自动设置。但是,如有必要,可以手动设置这些值。

复杂反应属性
压力相关
用于指定此反应使用压力相关的林德曼机制。激活时,将显示林德曼脱落公式节点。
反应系数
阿列纽斯反应参数用于根据有限速率动力学计算化学反应率。
方法 相应的子节点
阿列纽斯系数
指前
定义 Eqn. (3411) 中的指前因子 A 。
阿列纽斯系数:属性
温度指数,β
设置 Eqn. (3411) 中此反应的温度指数 β 。
活化能,Ea
设置 Eqn. (3411) 中此反应的活化能 E a 。
可逆
激活时,反应被指定为可逆。在可逆反应中,指定正向速率系数,并选择如何使用属性 > 逆向反应系数节点来计算逆向速率。当从 Chemkin 机制读取可逆反应时,激活此属性,且自动设置反应属性。如果定义可逆反应,确保为混合物的每个组分指定焓、熵和比热的值。对于比热,可选择热力学多项式或多项式 (T) 选项。
第三体

默认情况下,假设混合物中的每个组分都贡献与第三体同等的效率。因此,所有组分都与第三体的效率相同。如果一个或多个组分的贡献多于或少于第三体,可以激活此属性,然后在第三体效率节点下指定组分的效率系数。如果导入的机制包含第三体效率的详细信息,此属性将变为激活状态,自动导入值。

“阿列纽斯系数”节点还提供了定义 Eqn. (3411) 中的指前因子 A 的指前子节点。
逆反应系数
当在反应系数 > 阿列纽斯系数节点下激活可逆时可用。
方法 相应的子节点
根据平衡常数的反向系数
根据平衡常数的反向系数
使用平衡常数计算后向反应率系数。此计算需要在反应定义中定义焓、熵和比热。
逆向反应的阿列纽斯系数
逆向反应的阿列纽斯系数
温度指数,β
设置 Eqn. (3411) 中的后向反应温度指数 β 。
活化能,Ea
设置 Eqn. (3411) 中的后向反应活化能 E a 。
逆向反应的阿列纽斯系数 > 指前
定义 Eqn. (3411) 中的后向反应指前因子 A 。
第三体效率
如果第三体效率作为化学机制的一部分导入,此节点下将显示第三体组分及其效率系数的详细信息。如有必要,可以手动定义第三体效率,方法是右键单击此节点,然后选择选项增加第三体系数 > [组分(连续体)]。包含的每个组分显示为子节点,可以为其指定 Eqn. (3418) 中的第三体效率系数 α i j 。
林德曼脱落公式
指定高压限制(Eqn. (3424) 中的 A ∞ 、 β ∞ 和 E ∞ )和低压限制(Eqn. (3423) 中的 A 0 、 β 0 和 E 0 )的阿列纽斯速率参数值,以分别解释 Eqn. (3411) 中的速率常数 A j 、 β j 和 E j 的压力依赖性。反应机制中的术语确定了值表示的是高压限制还是低压限制。
Troe 脱落公式
指定 Eqn. (3426) 中 α 、 T * * * 、 T * 的值,以及(可选) T * * 的值,这些值用于计算 F c e n t 。然后,使用 F c e n t 计算混合因子 F ,如 Eqn. (3425) 中所示。
SRI 脱落公式
指定 a 、 b 、 c ,还可以选择性指定 d 和 e (位于 Eqn. (3427) 中),皆用于计算混合因子 F (位于 Eqn. (3425) 中)。

反应系统属性

组分反应源雅可比
当使用用户编程的反应率时,强烈建议将“数值”选项用于雅可比计算。但是,如果需要额外的分析雅可比计算速度,Simcenter STAR-CCM+ 允许使用用户程序分析雅可比选项。
方法 相应的子节点
分析

CVODE 求解器中将使用分析雅可比。

分析
  • 当组分反应源方法设为内部时,Simcenter STAR-CCM+ 将以分析方式计算雅可比。
  • 当组分反应源方法设为用户自定义时,指定用户函数以定义分析雅可比。请参见使用用户函数。
数字雅可比

以数值方式计算雅可比。

数值
雅可比是反应率对组分特定的摩尔分数(质量分数除以分子量)和温度的导数的平方矩阵。请参见 Eqn. (3471) 和 Eqn. (3472)。
组分反应源
方法 相应的子节点
内部

Simcenter STAR-CCM+ CVODE 求解器提供反应组分的反应率源项。

无。
用户自定义

提供用户自定义的组分源指定节点,用于指定是修改内部计算的反应率源项,还是定义全新的反应率源项。

用户自定义
用于指定以前导入的定义组分反应率源项的用户函数。请参见使用用户函数。
场函数
指定要用于相应用户函数的标量场函数,以修改计算的反应率,或定义反应率源项。
以下文本是用户代码中有关如何访问场函数的示例:
struct UserAccessibleData *udata = (struct UserAccessibleData *)data;

if (udata->_fieldFunctionsData._nFF > 1)
{ double ff0 = udata->_fieldFunctionsData._ffVal[0]; double ff1 = udata->_fieldFunctionsData._ffVal[1]; ... }

如果在模拟中使用群集,这些场函数将自动显示在群集 > 组分节点下。

用户自定义反应密度
当结合“复杂化学”模型选择“用户自定义的 EOS(状态方程)”模型并将多组分气体的密度指定为场函数时可用。
用户函数
将多组分气体的密度指定为用户代码,以计算组分源项。
代码的输出必须与为多组分气体密度创建的场函数相同。
用户自定义反应密度雅可比
当结合“复杂化学”模型选择“用户自定义的 EOS(状态方程)”模型并将多组分气体的密度指定为场函数时可用。
用户函数
指定多组分气体密度的雅可比作为用户代码,用于组分源项计算。
密度雅可比的用户代码必须返回 和 。 d ρ d t d ρ d z i z i = Y i W i 为比摩尔分数,其中 为质量分数, 为第 i 个组分的分子量。 Y i W i
以下文本是返回理想气体的密度和密度导数的用户编码函数示例:
#include "UserAccessibleData.h"

void rho(double *rho, double T,  unsigned int nSpe, double *z, void *data)
{
  double const Ru = 8314.4621;
  struct UserAccessibleData *udata = (struct UserAccessibleData *)data
  double Rgas = 0.0;
  for( unsigned int i=0; i<nSpe; i++)
  {
    Rgas += z[i];
  }

  Rgas *= Ru;
  *rho = udata->_pressure / ( Rgas * T);  
}

void rhoJac(double *drhodT, double *drhodzi, double *rho, double T,  unsigned int nSpe, double *z, void *data)
{
  struct UserAccessibleData *udata = (struct UserAccessibleData *)data;

  double Rgas = 0.0;
  double const Ru = 8314.4621;
  for( unsigned int i=0; i<nSpe; i++)
  {
    Rgas += z[i];
    
  }

  Rgas *= Ru;
  *rho = udata->_pressure / ( Rgas * T );  

  *drhodT = -*rho/T;
  *drhodzi = -*rho/Rgas * Ru;
}

#include "uclib.h"

void uclib()
{
  ucfunc(rho, "UserDensityForChemistry", "rho");
  ucfunc(rhoJac, "UserDensityJacobianForChemistry", "rhoJac");
}
用户自定义的组分源指定
当“组分反应源方法”设为“用户自定义”时可用。
方法 相应的子节点
计算组分源
计算组分源
指定要使用以前导入的用户函数库来定义全新的反应率源项。在这种情况下,不计算内部反应率源。显示以下属性:
内部反应能量源
激活时,假设为恒定压力反应器,则在内部计算 ODE 能量方程的源项。请参见 Eqn. (3468)。停用时,必须计算 ODE 能量源,并存储在反应速率 ω ˙ 矢量的第 N+1 个单元中。
修改内部组分源
修改内部组分源
指定要使用以前导入的用户函数修改现有的反应率源项 - 通常将现有值乘以一个常数。
修改内部反应速率
修改内部反应速率
指定要修改各个反应的现有速率。提供了正反应速率和反向反应速率。
可以使用先前导入的用户函数修改内部反应速率。
使用组分反应源 > 用户自定义节点选择适当用户函数。有关如何创建用户函数的更多信息,请参见使用用户函数。