⬜⬜⬜⬜⬜
🟩⬜🟩⬜🟩
⬜⬜⬜⬜⬜
🟩⬜🟩⬜🟩
OpenFOAM.YAML
OpenFOAM 案例的 Python 接口(采用 YAML 配置)
探索文档 »
查看演示/案例
·
报告错误
·
寻求功能
关于项目
本项目最初是为了解决 OpenFOAM 案例文件结构复杂的问题1,我的解决方案是采用通用2配置文件格式来重新描述案例。在比较了市面上现有的通用配置文件格式后,我最终选择了 YAML3,同时 Python 是我最熟悉的编程语言之一,OpenFOAM、YAML 与 Python 的结合便有了本项目。
本项目目前不能自动识别 OpenFOAM 案例,必须首先手动或半手动4将 OpenFOAM 案例转化为等价的 YAML 格式。为了弥补无法自动转化案例的遗憾,本项目已经预先手动转化了部分官方教程案例与优秀第三方教程到 YAML 格式。在转化完 YAML 格式后,便可借助本项目:
而且,由于案例可以通过 YAML 格式反复生成,解决了之前部分文件需要加 .orig
后缀防止覆盖、部分 Allclean
脚本复杂等问题。
最后,希望通过本项目可以将 OpenFOAM 与 Python 生态相结合,激发 OpenFOAM 的生命力与创造力。
许可证
在 GPL-3.0 许可下发布。许可证相关的更多信息请见 LICENSE.txt
。
联系我
梁钰栋 - @iydon - liangiydon_AT_gmail.com
-
OpenFOAM 的 wmake 命令同样存在类似的问题,相关统计结果请见
script/wmake.py
脚本 ↩ -
通用是指与编程语言无关,最好是主流编程语言均有工具可以解析该配置文件格式 ↩
-
YAML 手写起来较为简洁,但是理论上只要能转化为对应的数据结构,什么配置文件格式均可 ↩
-
半手动可以借助
script/case2yaml.py
脚本,目前暂无对该脚本的升级计划 ↩ -
按理来说进度监控会对性能产生影响,但是在一分钟以内简单串行案例的初步比较下,应用本项目运行案例的平均时间要低于应用
Allrun
脚本运行案例的平均时间,平均时间减少约 6.4%。期待后续添加更多具体、完善的基准测试到script/bench.py
脚本中 ↩