You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于有限差分法求解耦合PDE中Arrhenius表达式计算的疑问

关于有限差分法耦合PDE示例中Arrhenius速率常数计算逻辑的疑问

我正在尝试复现一个用有限差分法求解耦合偏微分方程(PDE)的过程,但其中Arrhenius速率常数函数k里的arrh_expr计算式没有明确温度范围定义,想请教这个表达式的计算逻辑。

import numpy as np

nz = 50
dz = 1 / nz
nt = 50
t = np.linspace(0, 4, nt)

p = np.array([0.01, 0.5, 1.0])

# 初始化浓度和温度数组
C = np.zeros(nz)
T = np.zeros(nz)

# 设置浓度初始条件
C[0] = 1.0

# 初始化结果存储数组
c_results = np.zeros((nt, nz))
T_results = np.zeros((nt, nz))

# 定义Arrhenius速率常数函数
def k(temperature):
    arrh_expr = 4.68 * np.exp(-806 / ((600 - 273) * temperature + 273))
    return arrh_expr

# 计算特定空间点的时间导数
def rhsC(c0, c1, c2, T1, dz, p):
    return (p[0] * (c2 - 2 * c1 + c0) / dz**2 - 
            p[1] * (c2 - c0) / (2 * dz) - 
            p[2] * k(T1) * c1**2)

def rhsT(T0, T1, T2, c1, dz, p):
    return (0.01 * (T2 - 2 * T1 + T0) / dz**2 - 
            0.5 * (T2 - T0) / (2 * dz) + 
            2.45 * k(T1) * c1**2)

# 时间步进循环
for it in range(nt):
    c_results[it, :] = C
    T_results[it, :] = T
    
    for iz in range(1, nz - 1):
        # 计算浓度和温度的导数
        dc_dt = rhsC(C[iz - 1], C[iz], C[iz + 1], T[iz], dz, p)
        dT_dt = rhsT(T[iz - 1], T[iz], T[iz + 1], C[iz], dz, p)
        
        # 用向前欧拉法更新浓度和温度
        C[iz] += dz * dc_dt
        T[iz] += dz * dT_dt

Arrhenius速率常数arrh_expr的计算逻辑拆解

标准Arrhenius公式的形式为:
k = A * exp(-Ea/(R*T))
其中:

  • A为指前因子(频率因子)
  • Ea为活化能
  • R为气体常数
  • T为绝对温度(开尔文,K)

对示例中的表达式逐部分解析:

  1. 温度转换逻辑:
    代码中的temperature是归一化到[0,1]区间的摄氏温度。通过(600 - 273) * temperature + 273将其转换为绝对温度:

    • 当temperature=0时,计算得273K(对应0℃)
    • 当temperature=1时,计算得600K(对应327℃)
      这意味着输入的temperature变量本身就被限制在0-1之间,转换后自然落在273K到600K的绝对温度区间,无需额外定义温度范围。
  2. 对应标准公式的参数映射:

    • 指前因子A=4.68
    • 指数项中的806是Ea/R的组合值(单位:K),省去了单独的气体常数项,直接使用活化能与气体常数的比值代入计算。

总结:这个表达式是标准Arrhenius公式的工程变形,核心是通过归一化温度的转换,将输入映射到特定的绝对温度区间,再完成速率常数的计算。

内容的提问来源于stack exchange,提问作者NAA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:35:28