问题标签 [cantera]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
597 浏览

python - 在 Cantera 反应器中使用生物质热解动力学

我正在尝试使用具有生物质热解动力学方案的 Cantera 来观察间歇反应器中浓度随时间的变化。下面显示了动力学的概述以及对论文的参考。请注意,物种浓度是基于质量的,例如kg/m^3

基本的

中学

  • 木材 = 生物质,通常是松木
  • 气体 = 包含轻质不凝性气体的集总物质
  • 焦油 = 可冷凝热解蒸气的集总物质
  • char = 完全热解的木材,基本上是碳

参考:Colomba Di Blasi。多孔固体燃料热解过程中的对流和二次反应效应分析。燃烧科学与技术,卷。90,第 315-340 页,1993 年。

假设初始木材浓度为1.0,我可以使用 Python 求解反应速率方程组,并绘制随时间的转换,如下所示。

阴谋

不幸的是,我在 Cantera 中使用动力学方案的尝试给出了关于不兼容相类型的错误。我的blasi.cti文件包含以下内容:

blasi_reactor.py使用上述文件的 Python 文件cti是:

Cantera 的错误信息是:

如何使用 Cantera 定义集中的物种,例如木材、天然气、焦油和炭?甚至有可能在 Cantera 中使用这样的动力学方案吗?我通常使用 Python 创建自己的热解模型,但我想使用 Cantera 中的反应器功能。这也可以让我比较 Cantera 和我的个人 Python 模型之间的结果。

注意 - 我查看了 Cantera 文档网站上的示例,但所有内容都是针对明确定义的气相物种,您知道元素组成和 NASA 系数。

0 投票
4 回答
3843 浏览

python - 在 Python 上安装 Cantera 的问题

我正在尝试在 python 上使用 Cantera。我下载了 Anaconda 并按照 Cantera 网站上的说明进行安装。他们网站的教程说要写:

当我运行它时,我收到错误:

我尝试重新安装所有内容。

0 投票
0 回答
40 浏览

python - 如何读取这两列并将其存储在关键字字典中

目前,正在建模定容反应器-RCM。我正在努力设置墙壁的速度。我的教授告诉我,必须使用体积-时间历史曲线来设置壁速度。我不知道如何将这两列作为配置文件。

我有一个这样的文本文件。有时间和音量栏。

谁能建议我为此编写代码?我在某处读到这些数据应该被读取并存储在关键字字典中。然后我可以用它来设置壁速度。谁能帮我吗?

0 投票
1 回答
71 浏览

python - 超类 __init__ 覆盖子类构造函数

我正在与 cantera 合作,试图cantera.Solution通过创建 subclass 来创建类的扩展Flow。这基本上是用它的运动参数来扩展对气相的描述。

Solution是通过使用某些构造的**kwargs。我想要做的是将它们保存**kwargs在一个Template类对象中并使用该对象来定义我Flow的对象。我试图Solution.__init__使用. Flow.__init___ 但是,似乎覆盖了.Templatesuper()Solution.__init__Flow.__init__

现在,假设我有一个Template名为 的适当对象template,它用作所有**kwargs所需对象的容器Solution.__init__。我正在尝试创建我的Flow对象:

我得到:

如果我尝试,我会得到同样的错误:

所以基本上我所有的子类构造函数参数都传递给超类的构造函数。由于未覆盖超类构造函数,因此我不能使用Template对象将 my 定义SolutionFlow. 我在网上读到这不是默认行为,因为子类构造函数应该覆盖超类构造函数。这有什么帮助?

0 投票
2 回答
510 浏览

python - 选择名称以保存 .csv 文件并使用在整个 python 脚本中输入的名称

每次我想使用不同的名称时,我都想使用 Python 保存一个 .csv 文件。所以我写了这段代码。除此之外,我想在保存后继续运行的脚本的其余部分中使用新名称。我怎样才能做到这一点?建议?非常感谢。

我想将数据保存在 .csv 文件中,其中定义了 ColumnNames...我该怎么办?此致

0 投票
1 回答
273 浏览

python - IndexError:使用 glob()、rsplit() 列出超出范围的索引

我正在尝试执行一个给我 IndexError 的 python 脚本。我知道 rsplit() 方法无法拆分字符串。我不完全知道为什么它显示索引超出范围。谁能告诉我如何解决这个问题?

代码

输出

如果我删除文件 strain_loop_07.xml,我会在另一个文件中遇到同样的错误。

0 投票
1 回答
94 浏览

python - 在 Debian 测试中使用旧(?) Python3 模块安装 Cantera 以运行 SCons 脚本时遇到问题

更新

这是cantera的链接:在此处输入链接描述 ,我确实安装了scons;

直接链接到源:

在此处输入链接描述

这是调用安装脚本的示例;

scons build prefix='/home/X/SW/Cantera/installed/' --config=force


我一直在尝试升级/安装 Cantera (cantera.org),它依赖于 Scons(使用脚本,'SConstruct')。我注意到在脚本中有一行from buildutils import *. 我尝试使用 , 安装它python3 -m pip install --user buildutils,但我收到了这个大错误:

我看到“版本冲突”和括号问题......我还注意到最新版本是 2007 年...... https://pypi.org/project/buildutils/有更新的替代品吗?

我想过尝试从源代码手动安装它(egg 文件显然是为 python2 构建的),但无法成功执行ez_setup.pysetup.py没有错误。我跟着一页,但在我不确定发生了什么之前从未这样做过。

我在互联网上看到很多关于找不到模块的请求,但大多数答案都围绕着错误命名(Can't install PyZMP for Python -- Dependencies),或者没有安装。

buildutils我从 Debian存储库中搜索有关的东西,但没有找到相关的东西。

这源于我KeyValue从 scons 脚本中得到的一个错误,这里显示了相关部分:

所以脚本的 1543 周围的行SConstruct是;

这看起来很像一本字典,即此处的快速入门部分:在此处输入链接描述,def Environment但我在目录 ( ) 的脚本中找不到(也可能是此配置),grep -nRHI "def Environment" *因此我认为它可能是此模块的一部分buildutils。这解释了为什么我尝试安装它以及随后的错误。我意识到我可以尝试只注释掉第 1543 行并取消缩进第 1544 行,因为我确实有铿锵声,但我不确定我是否有“正确”的铿锵声......

编辑

我确实有buildutil,并且正在搜索 PyPl,也许这是替代品.... mercurial 存储库链接buildutils似乎不起作用,但也许我可以awk在整个项目中替换名称...我也在https 上看到: //pypi.org/project/buildutil/它可能只对python3.6有好处...

编辑 2

我现在想知道它是否不仅仅是重命名...,因为这两个名称都列在https://github.com/tedicreations/buildutil ...所以也许只是awk将名称从更改为的buildutils脚本buildutil...

编辑 3 根据 的建议2to3,我尝试了显示这些更改;

但是在 ascons clean和 a之后scons test-clean,错误仍然存​​在(可能是字典问题......);

我注意到,如果这确实是一个适当的更改,则2to3可能无法将模块从转换为buildutils的规则...buildutil

和...

这是来自modernize模块,因为它没有摆脱buildutils(我没有),尝试运行它似乎毫无意义......我做了......仍然是同样的错误。

0 投票
2 回答
97 浏览

python - 如何将数据保存到 csv Cantera 和错误

我在 Cantera 上有这个脚本。我想将脚本的两个部分的数据保存到 csv 中:第一个评估 Tfinal 与自燃延迟时间,第二个评估 NTC 行为。在第一部分中,示例建议取消注释 # timeHistory.to_csv("time_history.csv") 但它不起作用。我想我需要创建一个数据框,因为它的定义不明确(我想)。不仅如此,我还看到了这个错误:<cantera.composite.SolutionArray object at 0x7f4badca0fd0>。

我该如何解决这个问题,如何为这个脚本创建两个 csv?

非常感谢

0 投票
0 回答
22 浏览

python - Cantera (Python 3.8) 安装后在 PyCharm 中不可用包

我按照他们网站上的Cantera 安装指南进行操作,但仍然无法将其作为包添加到 PyCharm 中。我还尝试下载 miniconda 来安装conda,但也未能成功让 Cantera 在 PyCharm 中工作。寻找一些帮助来指出我正确的方向。

0 投票
0 回答
42 浏览

python - 为什么__init__在派生类的__init__之前调用父类的__init__?

cantera在 python 中使用模块,特别是尝试cantera.Solution使用继承来扩展类。基类可以这样调用:

其中“gri30.cti”是要使用的化学模型的文件名。

我正在尝试创建一个新类,SolutionExtended它继承自cantera.Solution. 这是类定义:

实例化SolutionExtended对象时,出现此错误:

cantera.Solution这与您尝试在没有任何输入参数 ( gas = cantera.Solution())的情况下实例化父类时引发的错误相同。

此外,这两条print语句都没有实际打印。

这让我想到 that cantera.Solution.__init__is被调用before SolutionExtended.__init__,因为没有提供输入参数而失败。但是,我绝不是 python 专家,所以这可能完全不成立。

谁能告诉我这里发生了什么?SolutionExtended在不需要显式输入化学模型的情况下如何使初始化工作?

我对此感到很困惑,所以我非常感谢任何帮助。谢谢!

这是我的完整代码:

cantera包网站链接: https ://cantera.org/