首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将python2.6cantera1.8改为python2.7cantera2.2

将python2.6cantera1.8改为python2.7cantera2.2
EN

Stack Overflow用户
提问于 2016-03-08 14:16:36
回答 2查看 62关注 0票数 1

我是化学网络模型的新手。目前,我正在转换以前的学生python代码,以适应实验室中的新版本。

首先,定义了机械气体混合物(预定义)。

代码语言:javascript
复制
gas_mix = ct.import_phases(mech,['gas'])

然后,我想得到物种的数量,并使用cantera nSpecies

代码语言:javascript
复制
nsp = gas_mix.nSpecies()

我得到的错误信息是

AttributeError:“列表”对象没有属性“nSpecies”

我也试过:

代码语言:javascript
复制
nsp = gas_mix.n_species

同时也显示出

AttributeError:“列表”对象没有属性

请你帮我一下好吗?谢谢,并致以最良好的问候,YouBe

EN

回答 2

Stack Overflow用户

发布于 2016-03-08 14:36:15

看起来import_phases返回了一个对象列表--要么是“气体混合”的列表,要么是“气体”对象的列表。我不太确定,因为这是非常具体的程序,你正在工作。

无论如何,尝试遍历gas_mix中的值,看看是否可以调用nSpecies()方法或访问n_species属性:

代码语言:javascript
复制
gas_mix = ct.import_phases(mech,['gas'])
for gm in gas_mix:
    print(gm.nSpecies())
    # or you can try this:
    print(gm.n_species)

也许这会让你更接近你想要的。

票数 0
EN

Stack Overflow用户

发布于 2016-04-06 15:55:18

函数import_phases返回一个列表,对于您希望从同一个文件导入多个阶段定义的情况,这个列表非常有用。

代码语言:javascript
复制
mixtures = ct.import_phases(mech, ['gas1', 'gas2'])

其中,mixtures[0]mixtures[2]都将是一个单相定义。如果您只想定义单个阶段,则编写以下内容更容易:

代码语言:javascript
复制
gas_mix = ct.Solution(mech,'gas')

或者,如果机制文件仅包含一个阶段定义,则只需

代码语言:javascript
复制
gas_mix = ct.Solution(mech)

从这里,您应该可以访问的物种数目,如

代码语言:javascript
复制
gas_mix.n_species

文档页"从旧Python模块迁移“描述了从旧接口迁移到新的Cantera接口的许多细节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35869752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档