反应模型参考
对于在大量流体中发生反应的物理连续体,可以选择反应模型。
“属性”节点包含深一层的子节点“复杂反应属性”和“反应系数”。当在“阿雷尼乌斯系数”下激活“第三体”时,“第三体效率”子节点也变为可用。如果导入的化学机制中定义了压力相关的反应,则还会显示另一个以特定方法(即用于指定“林德曼脱落公式”、“Troe 脱落公式”或“SRI 脱落公式”压力相关参数的方法)命名的节点。林德曼、Troe 或 SRI 的值从导入的化学机制中自动设置。但是,如有必要,可以手动设置这些值。
- 复杂反应属性
-
- 压力相关
- 用于指定此反应使用压力相关的林德曼机制。激活时,将显示林德曼脱落公式节点。
- 反应系数
- 阿列纽斯反应参数用于根据有限速率动力学计算化学反应率。
方法 相应的子节点 阿列纽斯系数 - 指前
- 定义 Eqn. (3411) 中的指前因子 。
- 阿列纽斯系数:属性
-
- 温度指数,β
- 设置 Eqn. (3411) 中此反应的温度指数 。
- 活化能,Ea
- 设置 Eqn. (3411) 中此反应的活化能 。
- 可逆
- 激活时,反应被指定为可逆。在可逆反应中,指定正向速率系数,并选择如何使用节点来计算逆向速率。当从 Chemkin 机制读取可逆反应时,激活此属性,且自动设置反应属性。如果定义可逆反应,确保为混合物的每个组分指定焓、熵和比热的值。对于比热,可选择热力学多项式或多项式 (T) 选项。
- 第三体
-
默认情况下,假设混合物中的每个组分都贡献与第三体同等的效率。因此,所有组分都与第三体的效率相同。如果一个或多个组分的贡献多于或少于第三体,可以激活此属性,然后在第三体效率节点下指定组分的效率系数。如果导入的机制包含第三体效率的详细信息,此属性将变为激活状态,自动导入值。
- 逆反应系数
- 当在节点下激活可逆时可用。
- 第三体效率
- 如果第三体效率作为化学机制的一部分导入,此节点下将显示第三体组分及其效率系数的详细信息。如有必要,可以手动定义第三体效率,方法是右键单击此节点,然后选择选项。包含的每个组分显示为子节点,可以为其指定 Eqn. (3418) 中的第三体效率系数 。
- 林德曼脱落公式
- 指定高压限制(Eqn. (3424) 中的 、 和 )和低压限制(Eqn. (3423) 中的 、 和 )的阿列纽斯速率参数值,以分别解释 Eqn. (3411) 中的速率常数 、 和 的压力依赖性。反应机制中的术语确定了值表示的是高压限制还是低压限制。
- Troe 脱落公式
- 指定 Eqn. (3426) 中 、 、 的值,以及(可选) 的值,这些值用于计算 。然后,使用 计算混合因子 ,如 Eqn. (3425) 中所示。
- SRI 脱落公式
- 指定 、 、 ,还可以选择性指定 和 (位于 Eqn. (3427) 中),皆用于计算混合因子 (位于 Eqn. (3425) 中)。
反应系统属性
- 组分反应源雅可比
- 当使用用户编程的反应率时,强烈建议将“数值”选项用于雅可比计算。但是,如果需要额外的分析雅可比计算速度,Simcenter STAR-CCM+ 允许使用用户程序分析雅可比选项。
- 组分反应源
-
方法 相应的子节点 内部 Simcenter STAR-CCM+ CVODE 求解器提供反应组分的反应率源项。
无。 用户自定义 提供用户自定义的组分源指定节点,用于指定是修改内部计算的反应率源项,还是定义全新的反应率源项。
- 用户自定义
- 用于指定以前导入的定义组分反应率源项的用户函数。请参见使用用户函数。
- 场函数
- 指定要用于相应用户函数的标量场函数,以修改计算的反应率,或定义反应率源项。
- 用户自定义反应密度
- 当结合“复杂化学”模型选择“用户自定义的 EOS(状态方程)”模型并将多组分气体的密度指定为场函数时可用。
- 用户函数
- 将多组分气体的密度指定为用户代码,以计算组分源项。
- 用户自定义反应密度雅可比
- 当结合“复杂化学”模型选择“用户自定义的 EOS(状态方程)”模型并将多组分气体的密度指定为场函数时可用。
- 用户函数
- 指定多组分气体密度的雅可比作为用户代码,用于组分源项计算。
以下文本是返回理想气体的密度和密度导数的用户编码函数示例:
#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 个单元中。
修改内部组分源 - 修改内部组分源
- 指定要使用以前导入的用户函数修改现有的反应率源项 - 通常将现有值乘以一个常数。
修改内部反应速率 - 修改内部反应速率
- 指定要修改各个反应的现有速率。提供了正反应速率和反向反应速率。

