GitHub - yuanxiaoming8899/CFDPython: 一系列 Jupyter 笔记本,其中包含“通往 Navier-Stokes 的 12 个步骤” http://lorenabarba.com/

差价合约Python

请引用:Barba, Lorena A. 和 Forsyth, Gilbert F. (2018)。 CFD Python:纳维-斯托克斯方程的 12 个步骤。开源教育杂志1 (9), 21,https://doi.org/10.21105/jose.00021

DOI

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 条件、N​​umPy 的数组操作以及 Python 中的定义函数。

  • 快速 Python 介绍 — 对于 Python 新手,本课程介绍数值库(NumPy 和 Matplotlib)、Python 变量、空格的使用和数组切片。
  • 步骤 1 - 具有阶跃函数初始条件 (IC) 和适当边界条件 (BC) 的线性对流。
  • 步骤 2 — 使用相同的 IC/BC,非线性对流。
  • CFL 条件 — 探索数值稳定性和 Courant-Friedrichs-Lewy (CFL) 条件。
  • 步骤 3 — 使用相同的 IC/BC,仅扩散。
  • 步骤 4 —Burgers 方程,带有锯齿 IC 和周期性 BC(附带 Sympy 简介)。
  • 使用 NumPy 进行数组运算
  • 步骤 5 — 使用平方函数 IC 和适当的 BC 进行二维线性对流。
  • 步骤 6 — 使用相同的 IC/BC,二维非线性对流。
  • 步骤 7 — 使用相同的 IC/BC,进行 2D扩散。
  • 步骤 8 — 二维伯格斯方程
  • 在 Python 中定义函数
  • 步骤 9 — IC 为零且具有 Neumann 和 Dirichlet BC 的拉普拉斯方程。
  • 步骤 10 — 二维泊松方程。
  • 步骤 11 - 求解 2D 腔流的纳维-斯托克斯方程。
  • 步骤 12 — 求解 2D 通道流的纳维-斯托克斯方程。

依赖关系

要使用这些课程,您需要 Python 3 和科学 Python 的标准堆栈:NumPy、Matplotlib、SciPy、Sympy。当然,您需要Jupyter——一种在网络浏览器上运行的交互式计算环境。

本迷你课程是作为一组Jupyter 笔记本构建的,其中包含有关 Python 代码的书面材料和解决方案。为了使用这些材料,我们建议您用一个全新的笔记本开始每节课,然后按照步骤输入每一行代码(不要复制粘贴!),并通过更改参数进行探索并看看会发生什么。

通过 Anaconda 安装
我们*强烈*建议您安装 [Anaconda Python Distribution]( http://docs.continuum.io/anaconda/install)。它会让你的生活变得更加轻松。您可以在 Windows、OSX 和 Linux 上下载并安装 Anaconda。

安装后,为确保您的软件包是最新的,请在终端中运行以下命令:

conda update conda
conda update jupyter numpy sympy scipy matplotlib

如果您更喜欢 Miniconda(Anaconda 的迷你版本,可以节省磁盘空间),请通过在终端中运行以下命令来安装所有必要的库来学习本课程:

conda update conda
conda install jupyter
conda install numpy scipy sympy matplotlib
没有蟒蛇
如果您的计算机上已经安装了 Python,则可以使用 pip 安装 Jupyter:

另请确保您已通过运行安装了必要的库

pip install numpy scipy sympy matplotlib

如何为 CFD Python 做出贡献

我们通过拉取请求接受贡献——事实上,一些用户已经提交了拉取请求,进行了更正或小的改进。如果您发现错误或有建议,也可以提出问题。

版权和许可

(c) 2017 年洛雷娜·A·巴尔巴、吉尔伯特·F·福赛思。所有内容均受知识共享归属CC-BY 4.0约束,所有代码均受 BSD-3 条款约束(之前受 MIT 约束,于 2018 年 3 月 8 日更改)。

如果您以任何方式重复使用这些内容,我们会很高兴!

执照 许可证:CC BY 4.0