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

Python thermo库Mixture计算水/Ca(OH)2混合属性报错问题咨询

问题说明

使用Python thermo库计算石灰乳-水混合物属性时,执行如下代码触发TypeError: unsupported operand type(s) for /: 'float' and 'NoneType'报错:

from thermo.chemical import Mixture
mix = Mixture(['water', 'Ca(OH)2'], Vfls=[.6, .4], T=300, P=1E5)
print(mix.Cp)

排查发现库内Ca(OH)2的部分属性值为None,核心原因不是水和Ca(OH)2不能组成混合体系,是使用场景和参数传入不符合库的设计逻辑:

  • thermo.chemical.Mixture 类的默认适用范围是均相流体混合物,即互溶液体、均相气体体系。石灰乳是Ca(OH)2固体颗粒分散在水中的多相悬浊液,本身不属于均相流体,不在该类的默认支持场景内。
  • 库内Ca(OH)2的流体相物性缺失是正常情况:常压下Ca(OH)2加热到580℃会直接分解为氧化钙和水,不存在常温下的稳定纯液态,因此库没有收录它的液态热容、液态密度等流体相参数,计算时读取到None值就会触发类型错误。
  • 传入的Vfls(纯液体组分体积分数)参数不满足使用前提:该参数要求所有组分在计算条件下均为纯液态、且混合后体积符合加和性,常温下的Ca(OH)2根本不满足纯液态的前提。
  • 热力学层面也不支持该参数设置:常温下Ca(OH)2在水中的溶解度仅为0.17g/100mL左右,你设置的40%体积分数远超过溶解度上限,体系中绝大多数Ca(OH)2都是固体颗粒,不存在“液态Ca(OH)2和水按体积比4:6混合”的状态。
可行计算方案
  • 若要计算饱和澄清石灰水(Ca(OH)2完全溶解的均相低浓度溶液):将Ca(OH)2的摩尔分数/质量分数调整到常温溶解度范围内再传入Mixture类,此时Ca(OH)2占比极低,整体物性接近纯水,不会触发参数缺失报错。
  • 若要计算高固含量的石灰乳悬浊液:不能直接调用Mixture类的均相混合计算逻辑,需要手动按多相加权规则计算:单独查询固态Ca(OH)2的热容、密度等固体物性,液相部分取饱和澄清石灰水的物性,再按固液两相的质量/体积占比加权计算混合物整体属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:15:52