我是化学网络模型的新手。目前,我正在转换以前的学生python代码,以适应实验室中的新版本。
首先,定义了机械气体混合物(预定义)。
gas_mix = ct.import_phases(mech,['gas'])然后,我想得到物种的数量,并使用cantera nSpecies
nsp = gas_mix.nSpecies()我得到的错误信息是
AttributeError:“列表”对象没有属性“nSpecies”
我也试过:
nsp = gas_mix.n_species同时也显示出
AttributeError:“列表”对象没有属性
请你帮我一下好吗?谢谢,并致以最良好的问候,YouBe
发布于 2016-03-08 14:36:15
看起来import_phases返回了一个对象列表--要么是“气体混合”的列表,要么是“气体”对象的列表。我不太确定,因为这是非常具体的程序,你正在工作。
无论如何,尝试遍历gas_mix中的值,看看是否可以调用nSpecies()方法或访问n_species属性:
gas_mix = ct.import_phases(mech,['gas'])
for gm in gas_mix:
print(gm.nSpecies())
# or you can try this:
print(gm.n_species)也许这会让你更接近你想要的。
发布于 2016-04-06 15:55:18
函数import_phases返回一个列表,对于您希望从同一个文件导入多个阶段定义的情况,这个列表非常有用。
mixtures = ct.import_phases(mech, ['gas1', 'gas2'])其中,mixtures[0]和mixtures[2]都将是一个单相定义。如果您只想定义单个阶段,则编写以下内容更容易:
gas_mix = ct.Solution(mech,'gas')或者,如果机制文件仅包含一个阶段定义,则只需
gas_mix = ct.Solution(mech)从这里,您应该可以访问的物种数目,如
gas_mix.n_species文档页"从旧Python模块迁移“描述了从旧接口迁移到新的Cantera接口的许多细节。
https://stackoverflow.com/questions/35869752
复制相似问题