请引用:Barba, Lorena A. 和 Forsyth, Gilbert F. (2018)。 CFD Python:纳维-斯托克斯方程的 12 个步骤。开源教育杂志, 1 (9), 21,https://doi.org/10.21105/jose.00021
CFD Python ,又名纳维-斯托克斯的 12 个步骤,是一个实用模块,用于通过编码描述流体流动物理的基本偏微分方程的解来学习计算流体动力学 (CFD) 的基础。该模块是 Lorena Barba 教授于 2009 年至 2013 年间在波士顿大学机械工程系教授的课程的一部分(Barba 教授后来转到乔治华盛顿大学)。
该模块仅假设您具备基本的编程知识(任何语言)以及一些偏微分方程和流体力学背景。这些“步骤”的灵感来自于 Rio Yokota 博士的想法,Rio Yokota 博士在 2011 年之前一直是 Barba 教授实验室的博士后,并且 Barba 教授和她的学生在教授 CFD 课程的几个学期中对课程进行了完善。我们于 2013 年编写了这套 Jupyter 笔记本,用于在阿根廷门多萨教授为期两天的强化课程。
指导学生完成这些步骤(不跳过任何步骤!),他们学到了许多宝贵的经验教训。练习的增量性质意味着他们在每次作业结束时都会有一种成就感,并且他们觉得自己的学习毫不费力。随着他们的进步,他们自然会练习代码重用,并逐渐学习编程和绘图技术。当他们分析结果时,他们了解数值扩散、准确性和收敛性。在大约四个星期的定期课程中,他们成为中等熟练的程序员,并有动力开始讨论更多的理论问题。
在常规大学课程中,学生可以在 4 到 5 周内完成CFD Python课程。作为强化教程,该模块可以在两到三天内完成,具体取决于学习者之前的经验。这些课程也可以用于自学。在所有情况下,学习者都应该按照每节课中的工作示例,在新的 Jupyter 笔记本中重新输入代码,也许在尝试时记下原始笔记。
使用 Binder 服务启动与此模块的交互式会话:
步骤 1-4 位于一个空间维度。步骤 5-10 是二维 (2D) 的。步骤 11-12 求解二维纳维-斯托克斯方程。三个“奖励”笔记本涵盖了数值稳定性的 CFL 条件、NumPy 的数组操作以及 Python 中的定义函数。
要使用这些课程,您需要 Python 3 和科学 Python 的标准堆栈:NumPy、Matplotlib、SciPy、Sympy。当然,您还需要 Jupyter——一种在 Web 浏览器上运行的交互式计算环境。
本迷你课程是作为一组 Jupyter 笔记本构建的,其中包含有关 Python 代码的书面材料和解决方案。为了使用这些材料,我们建议您用一个全新的笔记本开始每节课,然后按照步骤输入每一行代码(不要复制粘贴!),并通过更改参数进行探索并看看会发生什么。
安装后,为确保您的软件包是最新的,请在终端中运行以下命令:
conda update conda
conda update jupyter numpy sympy scipy matplotlib
如果您更喜欢 Miniconda(Anaconda 的迷你版本,可以节省磁盘空间),请通过在终端中运行以下命令来安装所有必要的库来学习本课程:
conda update conda
conda install jupyter
conda install numpy scipy sympy matplotlib
pip install jupyter
另请确保您已通过运行安装了必要的库
pip install numpy scipy sympy matplotlib
我们通过拉取请求接受贡献——事实上,一些用户已经提交了拉取请求,进行了更正或小的改进。如果您发现错误或有建议,也可以提出问题。
(c) 2017 年洛雷娜·A·巴尔巴、吉尔伯特·F·福赛思。所有内容均受知识共享归属 CC-BY 4.0 约束,所有代码均受 BSD-3 条款约束(之前受 MIT 约束,于 2018 年 3 月 8 日更改)。
如果您以任何方式重复使用这些内容,我们会很高兴!