问题标签 [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.
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 系数。
python - 在 Python 上安装 Cantera 的问题
我正在尝试在 python 上使用 Cantera。我下载了 Anaconda 并按照 Cantera 网站上的说明进行安装。他们网站的教程说要写:
当我运行它时,我收到错误:
我尝试重新安装所有内容。
python - 如何读取这两列并将其存储在关键字字典中
目前,正在建模定容反应器-RCM。我正在努力设置墙壁的速度。我的教授告诉我,必须使用体积-时间历史曲线来设置壁速度。我不知道如何将这两列作为配置文件。
我有一个这样的文本文件。有时间和音量栏。
谁能建议我为此编写代码?我在某处读到这些数据应该被读取并存储在关键字字典中。然后我可以用它来设置壁速度。谁能帮我吗?
python - 超类 __init__ 覆盖子类构造函数
我正在与 cantera 合作,试图cantera.Solution
通过创建 subclass 来创建类的扩展Flow
。这基本上是用它的运动参数来扩展对气相的描述。
Solution
是通过使用某些构造的**kwargs
。我想要做的是将它们保存**kwargs
在一个Template
类对象中并使用该对象来定义我Flow
的对象。我试图Solution.__init__
使用. Flow.__init__
_ 但是,似乎覆盖了.Template
super()
Solution.__init__
Flow.__init__
现在,假设我有一个Template
名为 的适当对象template
,它用作所有**kwargs
所需对象的容器Solution.__init__
。我正在尝试创建我的Flow
对象:
我得到:
如果我尝试,我会得到同样的错误:
所以基本上我所有的子类构造函数参数都传递给超类的构造函数。由于未覆盖超类构造函数,因此我不能使用Template
对象将 my 定义Solution
为Flow
. 我在网上读到这不是默认行为,因为子类构造函数应该覆盖超类构造函数。这有什么帮助?
python - 选择名称以保存 .csv 文件并使用在整个 python 脚本中输入的名称
每次我想使用不同的名称时,我都想使用 Python 保存一个 .csv 文件。所以我写了这段代码。除此之外,我想在保存后继续运行的脚本的其余部分中使用新名称。我怎样才能做到这一点?建议?非常感谢。
我想将数据保存在 .csv 文件中,其中定义了 ColumnNames...我该怎么办?此致
python - IndexError:使用 glob()、rsplit() 列出超出范围的索引
我正在尝试执行一个给我 IndexError 的 python 脚本。我知道 rsplit() 方法无法拆分字符串。我不完全知道为什么它显示索引超出范围。谁能告诉我如何解决这个问题?
代码
输出
如果我删除文件 strain_loop_07.xml,我会在另一个文件中遇到同样的错误。
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.py
或setup.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
(我没有),尝试运行它似乎毫无意义......我做了......仍然是同样的错误。
python - 如何将数据保存到 csv Cantera 和错误
我在 Cantera 上有这个脚本。我想将脚本的两个部分的数据保存到 csv 中:第一个评估 Tfinal 与自燃延迟时间,第二个评估 NTC 行为。在第一部分中,示例建议取消注释 # timeHistory.to_csv("time_history.csv") 但它不起作用。我想我需要创建一个数据框,因为它的定义不明确(我想)。不仅如此,我还看到了这个错误:<cantera.composite.SolutionArray object at 0x7f4badca0fd0>。
我该如何解决这个问题,如何为这个脚本创建两个 csv?
非常感谢
python - Cantera (Python 3.8) 安装后在 PyCharm 中不可用包
我按照他们网站上的Cantera 安装指南进行操作,但仍然无法将其作为包添加到 PyCharm 中。我还尝试下载 miniconda 来安装conda,但也未能成功让 Cantera 在 PyCharm 中工作。寻找一些帮助来指出我正确的方向。
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/