全文预览

计算机模拟麦克斯韦速率分布

上传者:你的雨天 |  格式:docx  |  页数:2 |  大小:110KB

文档介绍
布类似。 5. 算法分析源代码已放入压缩包, 可供分析。下面仅做简单的分析。程序的整体思路是:用户开始模拟后,根据用户输入的温度和分子, 确定分子的初始状态。然后每隔时间, 刷新一次分子的位置和速度, 并显示在画面上。算法的核心在于, 如何更新分子在下一个中的位置和速度信息。对于每个分子, 在内, 其位形变化可能有 3 中情况: 与边界碰撞; 与粒子在碰撞; 未发生碰撞, 以原速度做直线运动。对于后两种情况,较为简单,不做讨论。下面重点讨论,如何判断内分子是否发生碰撞以及发生碰撞后分子位置和速度的变化。如图, 在某时刻, 分子的位矢和速度分别为分析其相对位置和相对速度。若发生碰撞,则要求相对位置和速度矢量夹角为锐角, 即满足另一方面, 两分子之后的最小距离, 应小于两倍的碰撞半径,即满足除此之外, 还应保证碰撞发生在时间内。当时, 如图, 应在点时, 发生碰撞。设, 由余弦定理, 可得解得两根分别对应和, 这里取负号, 得到碰撞发生的时间,若,则碰撞发生。由于两球质量相等, 有动量、能量守恒以及速度牵连关系, 碰撞过程中, 两球在撞时公切线方向的速度不变, 而法向速度交换。可先将两分子速度向切向和法向投影,经过碰撞后, 再将撞后的切向速度和法向速度投影回坐标系中。 6. 关于程序的其他说明本程序在 Microsoft Visual Studio 2010 下调试成功, 使用了 gtk 图形库。因此运行本程序需要 Visual C++ 2010 Runtime 以及 gtk 的库文件。在压缩包的 bin 目录下, 整理了部分 DLL 文件。 gtk 完整运行库可在其官方网站下载: / 如果程序因缺失 DLL 文件等原因不能运行,或者有任何意见和建议,请和作者联系: E-mail: 10300190058@fudan. 欢迎大家一起交流关于 C 语言程序设计这门课程的各类问题。

收藏

分享

举报
下载此文档