在热力学、传热学计算中涉及到大量的物性参数。对于Python而言,也有一些方法调用物性参。

1.Python第三方库:CoolProp

coolprop 是一个开源物性参数获取工具,其本身就包含了各种流体的物性参数数据,还可以通过其refprop接口调用refprop程序。

coolprop支持多种程序调用,支持的编程语言如下:

1.1安装

pip install CoolProp

但实际安装可能出现问题,比如我在安装时就出现了无法正常编译的现象。

此时可能需要安装最新的开发版,

pip install -vvv --pre --trusted-host www.coolprop.dreamhosters.com --find-links http://www.coolprop.dreamhosters.com/binaries/Python/ -U --force-reinstall CoolProp

假如还不行的话,还可以尝试下载后手动安装,

安装包页面:

需要根据Python版本和电脑系统选择正确安装包

CoolProp-6.1.1.dev0-cp36-cp36m-win_amd64.whl

如上面这个适用于python3.6版本,win 64-bit;下载后直接安装即可。

pip install CoolProp-6.1.1.dev0-cp36-cp36m-win_amd64.whl

详细内容参见Python Wrapper - CoolProp 6.1.0 documentation​www.coolprop.org

1.2使用

通过PropsSI函数可以获取物性,

# Import the PropsSI function

In [1]: from CoolProp.CoolProp import PropsSI

# Saturation temperature of Water at 1 atm in K

In [2]: PropsSI('T','P',101325,'Q',0,'Water')

Out[2]: 373.1242958476844

例如上面的例子是给定水的压力求饱和温度,即沸点。

实际上给出任意两个参数都可以得到其他参数,这里是部分可用的参数。全部参数见High-Level Interface - CoolProp 6.1.0 documentation​www.coolprop.org

Pure and Pseudo-Pure fluid properties​www.coolprop.org

部分流体见下

1.3混合物

自定义混合物时采用的是摩尔分数,如R410A表示为'HEOS::R32[0.697615]&R125[0.302385]'

# Using properties from CoolProp to get R410A density

In [44]: PropsSI('D','T',300,'P',101325,'HEOS::R32[0.697615]&R125[0.302385]')

Out[44]: 2.986886779635724

1.4调用refprop

这一部分我这里没调用成功。。囧。。

# Using properties from REFPROP to get R410A density

In [45]: PropsSI('D','T',300,'P',101325,'REFPROP::R32[0.697615]&R125[0.302385]')

Out[45]: 2.9868825938765213

2.直接调用refprop

上面可以通过coolprop调用refprop,不过我现在还没成功。实际上可以通过动态编译库dll调用refprop,在NIST官网上有相关说明,包含了各种程序调用的方法。不过上面的有些方法和文件可能已经过时了。

在Python部分有一个Ben Thelen提供的调用脚本,文件有点老了,直接在github上可以找到相对新一点的版本,地址见下:BenThelen/python-refprop​github.com

其中包含了python2.7和python3.2两个版本。我试了下py3.2版本,可以使用。

2.1python-refprop使用

在refprop.py文件中已经提供了详细示例和说明,参照使用即可,这里看几个示例

示例一

import refprop as rp

#定义流体

rp.setup('def','argon')

#给定压力、密度、组分求取温度等

#'pD'为给定的参数,后面是对应的数值,注意单位转换,最后一项是摩尔分数,单质为1

prop=rp.flsh('pD',2*1000,15/rp.wmol([1])['wmix'],[1])

#温度

T=prop['t']

print(prop)

#输出结果

{'x': [1], 'p': 2000.0, 'q': 3.598595014001103, 'kph': 1, 't': 637.377588657857, 'D': 0.37548813457494745, 'Dliq': 0.37548813457494745, 'Dvap': 0.37548813457494745, 'xliq': [1.0], 'xvap': [1.0], 'e': 7905.926715642425, 'h': 13232.326715642423, 's': 145.66418486785653, 'cv': 12.499081845920108, 'cp': 20.947050592992625, 'w': 473.925521521264, 'hfld': ['ARGON'], 'nc': 1, 'hrf': 'DEF', 'hfmix': 'HMX.BNC'}上面出现了flsh函数,从输出结果可以看到,这是一个字典,其中包含了我们所需要的各项物性值,取出即可。

rp.wmol([1])['wmix']为单质的摩尔质量

示例二

import refprop as rp

#定义流体

rp.setup('def','CO2')

#给定温度压力、组分求取物性

prop=rp.flsh('tp',300,101.325,[1])

print(prop)

#密度

D=prop['D']*rp.wmol([1])['wmix']

print(D)

结果:{'x': [1], 'p': 101.325, 'q': 998.0, 'kph': 1, 't': 300.0, 'D': 0.04082354605979431, 'Dliq': 0.04082354605979431, 'Dvap': 0.04082354605979431, 'xliq': [1.0], 'xvap': [1.0], 'e': 19849.305258122084, 'h': 22331.328741618327, 's': 120.67828662408958, 'cv': 29.017749085012724, 'cp': 37.5237802709575, 'w': 269.3829019748082, 'hfld': ['CO2'], 'nc': 1, 'hrf': 'DEF', 'hfmix': 'HMX.BNC'}

1.7966360973823357

示例三:传输特性

import refprop as rp

rp.setup('def','CO2')

T=300 #K

P=101.325 #kPa

#摩尔密度,mol/L;

rho=rp.tprho(T,P,[1])['D']

#参数为t,K;摩尔密度,mol/L;组分摩尔分数

prop=rp.trnprp(T,rho,[1])

print(prop)

#黏度,μPa-s;

mu=prop['eta']

#热导率W/m-K

lam=prop['tcx']

示例四:自定义混合物

import refprop as rp

#定义组分

rp.setup('def','CO2','nitrogen')

x=[0.5,0.5] #定义组分,摩尔分数

#prop=rp.xmole(x) #质量分数转摩尔分数

prop=rp.xmass(x) #摩尔分数转质量分数

print(prop)

x=prop['x'] #质量分数

wmix=prop['wmix'] #摩尔质量

#基本物性,t,p,D,cp,cv,wm

prop=rp.flsh('tp',250,220*wmix,x)

print(prop)

#传输特性,ets,tcx

prop=rp.trnprp(t=250,D=prop['D'],x=x)

print(prop)

3.总结

通过上面两种方法都可以实现在Python中调用物性,不过可能还有一些坑。使用时要注意各物理量的单位,比如上述两种方法就相差极大。

coolprop使用中有问题可到github上提问

python-refprop只能用于32位python

coolprop github页面:CoolProp/CoolProp​github.com

coolprop官方文档Welcome to CoolProp​www.coolprop.org

nist官网关于refprop调用的说明http://trc.nist.gov/refprop/LINKING/Linking.htm#PythonApplications​trc.nist.gov

python物性库能调用哪些物质_Python获取流体热物性(1):CoolProp和python-refprop相关推荐

  1. python物性库能调用哪些物质_Python获取热物性(2)使用ctREFPROP调用refprop

    前面一篇文章介绍了通过python-refprop和coolprop调用refprop.不过前者需要使用32位Python,后者我之前尝试遇到了bug暂时没法用.这里提供另一个python包ctREF ...

  2. python物性库能调用哪些物质_用于水和水蒸汽物性计算的Python模块——iapws

    在进行热力循环分析.流动传热计算时,需获得水和水蒸汽的物性参数.网上主流的水蒸汽物性计算程序是上海成套所的杨宇教授开发的,有Fortran.C.C#.VB等多个语言版本,还有桌面版本,被本专业学生和研 ...

  3. python标准库os.path中用来_Python标准库os.path中用来判断指定文件是否存在的方法是_____________。...

    Python标准库os.path中用来判断指定文件是否存在的方法是_____________. 答:exists() 通常,我们称脾为( ? ?) 答:后天之本 智慧职教: 生物与非生物的主要区别在于 ...

  4. python查看类的属性和方法_Python 获取对象的属性和方法—dir 函数

    工作中,我们使用一些之前没用到过的模块,使用时需要了解一下这个模块中的一些类的方法或属性,怎么做呢?目前我比较常用的两款IDE"Pycharm"和"VSCode" ...

  5. Python标准库中os模块的environ获取系统的环境变量

    应用背景:我们想要用Python获取到一些有关系统的各种环境变量信息的时候可以考虑使用Python标准库中的os模块的environ.什么是环境变量,环境变量是程序和操作系统之间的通信方式.有些字符不 ...

  6. python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...

    Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...

  7. python程序设计基础第二版pdf下载_Python程序设计基础董付国课后答案-Python程序设计基础第二版清华大学出版社PDF电子版完整高清版-精品下载...

    Python程序设计基础(第2版)完全面向Python 3.x,全部案例代码使用Python 3.5.x和Python 3.6.x编写,大部分内容也同样适用于Python 3.4.x.本书对Pytho ...

  8. Python:opencv库实现调用摄像头拍照并保存到本地

    导入 opencv-python库,复制代码即可运行 import cv2def picture_shoot(image_name='img.png', image_path=r'E:/') -> ...

  9. python标准库os中用来列出_Python 标准库 os 中用来列出指定文件夹中的文件和子文件夹列表的方式是listdir()。_高职高专数字资源平台答案_学小易找答案...

    [单选题]生物膜主要成分是脂与蛋白质,它们主要是通过什么键相连.( ) (2.0分) [单选题]卵磷脂分子是由甘油.脂酸.磷酸.( )基团组成. (2.0分) [名词解释]活力单位 [单选题]1. 脂 ...

  10. python标准库os中的方法_python中OS常用方法

    下面列出了一些在os模块中比较有用的部分.它们中的大多数都简单明了. os.sep可以取代操作系统特定的路径分隔符.windows下为 "\\" os.name字符串指示你正在使用 ...

最新文章

  1. tar -cvPf new.tar `rpm -ql vsftpd` 建议不要用绝对路径'/'
  2. layui table 列覆盖
  3. 疯子的算法总结(七) 字符串算法之 manacher 算法 O(N)解决回文串
  4. tomcat启动报:No Spring WebApplicationInitializer types detected on classpath
  5. SpringMVC路径匹配规则AntPathMatcher(转)
  6. 给年薪不到48w的程序员提个醒!!
  7. qq浏览器翻译功能启用划词插件教程
  8. Airflow 中文文档:管理连接
  9. 2021了,不会还有测试人员认为Jmeter就等于性能测试吧!
  10. 笔记-配置博客园客户端代码高亮(2016.08.20)
  11. @ Before,@ BeforeClass,@ BeforeEach和@BeforeAll之间的区别
  12. python 调用 c 模块
  13. 记一次联想Y7000P安装黑apple系统地经历
  14. java数字时钟_java Swing数字时钟
  15. Windows快捷键
  16. 计算机其它离的360云盘,多台电脑无缝共享文件 360云盘无限保存
  17. Mac关闭fn切换输入法功能
  18. 在开发板上显示彩虹c语言(800*480屏幕)
  19. C++图片格式转换:BMP转JPEG
  20. 亚历山大对马其顿士兵的演说(经典演说

热门文章

  1. 早教机器人刷固件_父母不要再盲目去买智能儿童早教机器人,知道这几点事半功倍!...
  2. 模拟银行转账(java+mysql+tomcat +JDBC+ druid连接池 + Servlet + Ajax)
  3. LWIP协议栈详解(2)_网络接口层与协议栈初始化
  4. 51单片机跑马灯c语言,51单片机——跑马灯详解(示例代码)
  5. 【Python】基于VB、Python、PythonGUI的BMI计算器小程序
  6. (转)互利主义:道德经济人的基本行为准则
  7. 《Word排版艺术》读后感——兼谈与LaTeX的比较
  8. 软件下载地址900款正版
  9. SQL Server数据库出现恢复挂起时的解决办法
  10. C# MD5算法实现对文件校验