从数学公式到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> |