Python氮氧甲烷乙烷乙烯丙烯气体和固体热力学模型计算

本文主要是介绍Python氮氧甲烷乙烷乙烯丙烯气体和固体热力学模型计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🎯要点

  1. 🎯固体和粒子:计算二态系统、简谐振子和爱因斯坦固体的内能和比热,比较爱因斯坦固体和德拜固体。模拟多个粒子的一维和二维随机游走,在数值上确认方差的线性趋势,模拟多个粒子的梯度下降,模拟双井的梯度下降。
  2. 🎯混合物:🖊建立理想气体及其混合物和多相纯物质的属性模型 。
  3. 🎯计算给定条件下的气体数值:🖊氮给定条件下的焦耳-汤姆逊系数 | 🖊气态氧流等熵效率的比功和出口气体温度 | 🖊液态水流量泵的冷却负荷和轴功率 | 🖊甲烷与十二烷合并流温度 | 🖊制冷剂经饱和蒸气压缩后的出口压力 | 🖊液氨储存罐安全体积 | 🖊氮气流过阀门哪一部分变成液体 | 🖊二氧化碳和氧气合流绝热压缩和等温压缩的压缩功率 | 🖊乙烯经两阀门膨胀后的温度 | 🖊蒸馏塔中塔压下降时泄漏率会如何变化 | 🖊丙烯储存容器加热后初始压力和最终温度 | 🖊氧气流被压缩机压缩后,压缩机功率和氧气出口温度 | 🖊热力循环水经过恒压加热、等熵膨胀、恒压冷凝和等熵压缩后的热效率 | 🖊计算甲烷焦耳-汤姆逊系数 | 🖊氨被压缩后,每摩尔压缩机的负荷和出口温度 | 🖊蒸汽压缩循环模拟。
  4. 🎯Python和C++物理计算热力学 | 🎯Python物理差分方程解​

🍇Python水波纹偏微分方程

有一个不可否认的事实:波一直在我们周围。 无论是通过电磁辐射、空气中传播的声音,还是由一滴水引起的涟漪,波绝对无处不在。 尽管其形式多种多样,但在所有波浪中都适用的一件事是控制它们的严格物理规则。 在数学上,所有这些物理规则都浓缩为一个简单的微分方程之一:波动方程。
∂ 2 u ∂ t 2 = c 2 ( ∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 ) \frac{\partial^2 u}{\partial t^2}=c^2\left(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}\right) t22u=c2(x22u+y22u)
波动方程告诉我们任何波如何在空间中传播并随时间演化,它为我们提供了函数 u(t, x, y),该函数给出了任意时间内任意点 (x, y) 处的波的高度 t。 本质上,如果你告诉波动方程,你把一个球扔进池塘,它会告诉你球产生的涟漪如何随着时间的推移而发展,并允许你预测由此引起的水的变化。 就像你告诉波动方程你尽可能大声尖叫一样,它会告诉你你创建的声波将如何传播并与环境相互作用。 总而言之,通过求解波动方程,我们将能够轻松模拟我们的纹波。

想象一下,两个人最初紧紧地握着一根绳子(红色),然后一个人快速上下移动手,在绳子上释放出波浪。在波穿过这条绳子后拍一张快照,我们想弄清楚它将如何随着时间的推移继续演化。 为了举例说明,我们假设一根无重力的无摩擦绳索。 为了开始解决这个问题,我们首先定义一些变量。

绳索在位置 x 和时间 t 处的高度将被称为函数 u(t, x) 的值。 考虑到这一点,我们要考虑什么可能会导致绳索随着时间的推移而发生变化。 由于我们确定不存在重力或摩擦力,因此作用在绳子上的唯一力就是张力,我们可以想象,张力在绳子的最小和最大高度处最大。

本质上,这是对凹度的陈述,因为张力在沿着绳索的高弯曲点处达到最高,并且随着远离这些点而减弱。 这里最终可以确定的是,在绳索上的任何给定点,它所承受的张力与其凹度成正比。 由于微积分告诉我们函数的凹性是由其在空间中的二阶导数定义的,因此我们可以将其表述为:
F tension  = k ∂ 2 u ∂ x 2 F_{\text {tension }}=k \frac{\partial^2 u}{\partial x^2} Ftension =kx22u
其中 k 是一个简单的比例常数。 现在我们必须找到一种方法,将力用 u 表示,并将其转化为我们可以解决和使用的东西。 研究牛顿第二定律,它告诉我们 F = ma,允许快速替换,结果为:
m a = k ∂ 2 u ∂ x 2 m a=k \frac{\partial^2 u}{\partial x^2} ma=kx22u
其中 m 是该点的质量,a 是加速度,u 是高度,k 是比例常数。 正如物理学告诉我们的那样,任何处理位置的函数的加速度只是其相对于时间的二阶导数,这意味着我们可以将方程重新定义为:
∂ 2 u ∂ t 2 = k m ∂ 2 u ∂ x 2 \frac{\partial^2 u}{\partial t^2}=\frac{k}{m} \frac{\partial^2 u}{\partial x^2} t22u=mkx22u
离散化波动方程
∂ 2 u ∂ t 2 = c 2 ( ∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 ) \frac{\partial^2 u}{\partial t^2}=c^2\left(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}\right) t22u=c2(x22u+y22u)
在代码中,网格域将如下所示:

Lx = 10 
Nx = 80 
Ly = 10 
Ny = 80 x_vec = numpy.linspace(0, Lx, Nx) 
dx = x_vec[2] - x_vec[1] y_vec = numpy.linspace(0, Ly, Ny)
dy = y_vec[2] - y_vec[1] 

dt 可以选择,这就是对我有用的数字,c 保持为 1 以保持方程简单。 dt 越小越好,因为它将导致更准确但更慢的模拟。

dt = .025 
Nt = 4000 
c = 1 
u = numpy.zeros([Nt, len(x), len(y)])

如前所述,我们希望在池的中心出现扰动(中心为 (nx/2, ny/2)),因此 t-dt 和 t 的初始条件如下所示:

u[0, Nx // 2, Ny // 2] = numpy.sin(0) 
u[1, Nx // 2, Ny // 2] = numpy.sin(1/10) 

最后,要解决所有问题,我们要做的就是迭代时间并将所有值代入离散方程,从而得到:

for t in range(1, Nt-1):for x in range(1, Nx-1):for y in range(1, Ny-1):if (t < 100):u[t, Nx // 2, Ny // 2] = numpy.sin(t / 10)u[t+1, x, y] = c**2 * dt**2 * ( ((u[t, x+1, y] - 2*u[t, x, y] + u[t, x-1, y])/(dx**2)) + ((u[t, x, y+1] - 2*u[t, x, y] + u[t, x, y-1])/(dy**2)) ) + 2*u[t, x, y] - u[t-1, x, y]

现在您已经通过求解波动方程正式模拟了水波纹!只需迭代计算值并在代码中为每个步骤及时绘制一个曲面:

fig = pyplot.figure()
ax = fig.add_subplot(111, projection='3d')
X, Y = numpy.meshgrid(x_vec, y_vec)
for t in range(0, Nt):surf = ax.plot_surface(X, Y, u[t], color='b', shade=True,linewidth=0, antialiased=False)ax.view_init(elev=45)ax.set_zlim(-.0001, 2.4)pyplot.axis('off')pyplot.pause(.0001)pyplot.cla()

参阅一:计算思维

参阅二:亚图跨际

这篇关于Python氮氧甲烷乙烷乙烯丙烯气体和固体热力学模型计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964613

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很