使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)
本文为博主原创文章,未经博主允许不得转载
1.模拟二维空间气流气压用到的方程式
计算2D空间气流气压要用到以下方程式:
其中第一个方程为xxx方向速度uuu的N-S方程式(Navier-Stokes equation);第二个方程为yyy方向速度vvv的N-S方程式(Navier-Stokes equation);第三个方程为第一二个方程进行数学变换得到的方程。第三个方程将气压ppp与速度关联起来,称为气压的泊松方程。
记号:
u:u:u: xxx方向速度[m/s][m/s][m/s]
v:v:v: yyy方向速度[m/s][m/s][m/s]
t:t:t: 时间[s][s][s]
x:x:x: xxx方向
y:y:y: yyy方向
ν:\nu:ν: 运动粘度[m2/s][m^2/s][m2/s]
ρ:\rho:ρ: 密度[kg/m3][kg/m^3][kg/m3]
p:p:p: 气压(实际气压和雷诺平均气压的差值)[pa][pa][pa]
2.将偏微分方程离散化
对第一节中的三个方程进行时间离散化(Temporal Discretization)和空间离散化(Spatial Discretization)。其中时间离散化选用前进差分(Forward Difference),对于空间离散化,一阶偏微分(如:∂u/∂x\partial u/\partial x∂u/∂x)选用后退差分(Backward Difference),二阶偏微分(如:∂2u/∂x2\partial ^2u/\partial x^2∂2u/∂x2)选用中心差分(Central Difference)。
离散化之后的方程如下:
uuu的N-S方程式:
vvv的N-S方程式:
气压的泊松方程:
记号:
n:n:n: nnn时点[s][s][s]
n+1:n+1:n+1: n+1n+1n+1时点(nnn时点之后的一个时点)[s][s][s]
Δt:\Delta t:Δt: 时间间隔[s][s][s]
ui,j:u_{i,j} :ui,j: 以模拟区域的左下角为原点的i,ji,ji,j格子点处的xxx方向速度
关于计算网格请看下图说明:
接着我们将离散化后的方程式的n+1时点项和n时点项分离,n+1时点项放在等式左边,n时点项放在等式右边。变形后的结果如下:
uuu的N-S方程式:
vvv的N-S方程式:
气压的泊松方程:
3.设置模拟条件
3.1 计算网格
假设我们模拟下图所示二维房间的气流。房间的左右侧完全开敞,无墙壁等物体;上下侧为固体墙壁。风从左侧流入房间,从右侧流出。
3.2 初始条件
假设房间最开始xxx方向充满了5m/s5m/s5m/s的风,yyy方向充满了3m/s3m/s3m/s的风。气压(实际气压和雷诺平均气压的差值)处处为0。
3.3 边界条件
根据3.1节的模拟条件,选用如下图所示边界条件。
4.编写Python程序
根据以上公式和模拟条件,就可以开始编写Python程序啦。
Python程序代码见以下链接:
link
程序运行结果如下:
感谢您阅读本文,
如果您觉得本文还不错,记得点击右边打赏按钮打赏我哦~
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)相关推荐
- python编写程序的一般步骤-Python编写win程序的操作流程
今天给大家讲的是Python怎样编写win程序的方法,对Python编写win程序的操作流程感兴趣的同学们就一起学习下具体方法吧! Python编写win程序的操作流程 1.在app.py同一目录下建 ...
- python程序-30分钟学会用Python编写简单程序
原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...
- 下载python流程-Python编写win程序的操作流程
今天给大家讲的是Python怎样编写win程序的方法,对Python编写win程序的操作流程感兴趣的同学们就一起学习下具体方法吧! Python编写win程序的操作流程 1.在app.py同一目录下建 ...
- 编写一个python程序判断用户输入的8位银行卡_用Python编写的程序,提示用户输入一个由7位数字组成的帐号?...
我在上一门Python入门课程,但有点困在作业上.任何建议或资源将不胜感激!在 问题是: 用Python编写一个程序,提示用户输入由7位数字组成的帐号.在 从用户处获取该帐号后,验证该帐号是否有效.您 ...
- Python编写一个程序来计算 BMI 值。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.BMI是什么? 二.使用步骤 1.简单代码 2.结果 总结 前言 Python编写一个程序来计算 BMI 值: 一 ...
- 如何编写一个程序模拟扔硬币的结果
编写一个程序模拟扔硬币的结果 package test;import java.util.Random;public class CoinTossing {public static void mai ...
- python写软件实例-30分钟学会用Python编写简单程序
原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...
- 抖音短视频数据抓取实战系列(六)——Mitmproxy+python编写监测程序
抖音短视频数据抓取实战系列(六)--Mitmproxy+python编写监测程序 项目目录 1.抖音短视频数据抓取实战系列(〇)--前言 2.抖音短视频数据抓取实战系列(一)--模拟器的选择与设置 3 ...
- C++ 第一章 NO.11 编写一个程序模拟支票输出。程序要求用户输入日期,姓名和支票的数量,然后模拟支票的形式输出以下信息,
//******************************************************************************************** //*程序 ...
最新文章
- Linux中的popen-pclose
- C++类与new和delete操作符
- JVM实战与原理---类加载机制
- 安装数据库windows 安装redmine 详解
- 数仓中的星型模型和雪花模型
- 武汉大学c语言实验报告模板,武汉大学C语言程序设计第3讲(2012级).ppt
- jquery操作select时怎么产生事件
- Android真正的静默安装
- 四柱排盘系统--阳历转农历
- json转xml报[java.lang.NoClassDefFoundError: nu/xom/Serializer]
- c语言memcmp函数详解,C语言之memcmp()函数
- antd里面select组件mode为tags时,输入重复按回车键做保留处理
- 什么是学习能力?如何提高学习能力?
- 使用RecyclerView实现瀑布流
- kitty终端使用笔记
- 蛊惑者马云发家史(曾推毛氏运动唐僧团队)二
- Java 计算时间差之年龄问题
- 单代号网络图计算例题_常用连续随机变量的关系与密度函数的计算
- matlab中的sig函数,MATLAB——sigmoid传递函数
- 因故意引入漏洞,整所大学被禁止为Linux内核做贡献,回应来了!
热门文章
- ArcEngine 一些实现代码
- 全球与中国振动监测与诊断系统市场行业供需现状及投资策略分析报告2022-2028年
- python unix 时间戳转北京时间,python正常时间和unix时间戳相互转换的方法
- uvw77ay_aiffip
- Polyspaces软件下载安装使用试用
- 学手绘太难了?别怕,零基础手绘教程来啦包教包会!
- 189_NTC负温度系数热敏电阻
- hub无法登录 unity_又来三大科研神器—文献,期刊,谷歌学术登录一网打尽!
- 天富龙冲刺上交所:拟募资10.9亿 朱大庆夫妇控制94%股权
- 西门子S7-200PLC