从数学公式到C++代码全面解析喷雾传热传质过程原理
传热传质计算公式
首先是能量传递,气相通过温差热传导传热给液相,液相接受能量,使自己升温并蒸发。蒸发出来的热量重新回到气相。这里有一个潜热的关系,即蒸发出来的那部分液相的能量+潜热=蒸发出来的气相所包含的能量。所以说,由喷雾引起的气相能量源项是:
其中, 是蒸发出来的气相处于液滴温度下的焓。如果气相求解的是显焓的输运方程,则这里是显焓。如果是绝对焓的输运方程,则这里是绝对焓。
另一方面,对于液相,
文献中液滴温度计算公式:
代码解析
首先从求解器代码中可以获知气相能量输运方程中的源项是 parcels.Sh(he)。
Sh 函数定义于 ThermoCloudI.H:
template<class CloudType> |
其中的 hsTrans() 定义于 ThermoCloudI.H:return hsTrans_();。
其中 hsTrans_ 的类型是 autoPtr<volScalarField::Internal>。
在 ReactingParcel 的 calc 函数中计算它:
hsTrans()[cellI] += dm*hs 正数! |
dm 是蒸发质量,hs 是蒸发出来的气相的显焓(按照液滴温度计算的),dhsTrans 在 calcHeatTransfer中计算。calcHeatTransfer 定义于 ThermalParcel,调用于 ReactingParcel 中的 calc 函数,返回新的粒子温度。
template<class ParcelType> |
其中用到的其它函数定义:
template<class Type> |
calcHeatTransfer 函数中的数学原理:
| 代码中的变量 | 数学公式 |
|---|---|
As | |
htc | |
bcp = htc*As/(m*Cp_) | |
acp=bcp*Tc | |
Sh = -dMassPC[i]*dh/dt | |
ancp = Sh/(m*Cp_) | |
delta(phi, dt, Alpha, Beta)=(Alpha-Beta*phi)*dtEff | - |
phi | |
Alpha=acp+ancp | |
Beta=bcp | |
analytical:dtEff = (1 - exp(- Beta*dt))/Beta | |
Euler:dtEff = dt/(1 + Beta*dt) | |
deltaT | $dtEff \frac{ Nu\kappa\pi D_p (T_c-T_p) + \dot m_p h_v }{m_p C_p} $ |
Tnew = T_ + deltaT | - |
deltaTncp = ancp*dt | |
deltaTcp = deltaT - deltaTncp | |
dhsTrans = -m*Cp_*deltaTcp | |
Sph = dt*m*Cp_*bcp |
上述公式中的 是液滴的比热容, 是液滴直径,是vapour diffusivity,是汽化潜热,是液滴温度。
calcPhaseChange 定义于 ReactingParcel,调用于 ReactingParcel 中的 calc 函数。
template<class ParcelType> |
另外还有一个 Sh 的临时 scalar,申明并初始化为 0 于 ReactingParcel 中的 calc 函数。
注释说明它是:Explicit enthalpy source for particle。
随后通过 calcPhaseChange计算 Sh:
forAll(dMassPC, i) |
这里的 dMassPC 是文献传质公式中的,因为蒸发模型得到的 dMassPC 是正数,但是液滴传质是损失质量,所以传质公式中的 是负数。
最后在 calc 中通过 calcHeatTransfer 使用 Sh。
前面已经多次提到这个 ReactingParcel 中的 calc 函数,这里给出它的代码:
template<class ParcelType> |

