Linux 上的开源物理 已翻译 100%

oschina 投递于 2013/04/23 08:04 (共 6 段, 翻译完成于 04-26)
阅读 4070
收藏 65
OSP
4
加载中

我的最近几篇文章介绍了很多科学研究相关的软件。不过有一个重要领域我没有详细介绍,那就是关于讲授下一代计算科学的相关资源。为了填补这一部分的空白,你可以看一下 开源物理学项目 提供的代码。这个项目由美国物理教师协会 (AAPT) 和国家科协基金会(NSF)提供支持,它包括一些用于模拟和分析的软件包。

开源物理首先提供了可用于不同的物理系统仿真的Java程序的整个套件。因为这些仿真程序是用Java写的,因而可以在Linux以外的系统中运行。覆盖到的类别包括天文学、电磁学、经典力学、量子力学、光学和相对论。在项目的主站点,你可以通过搜索或者按主题浏览来找到一个仿真程序。仿真程序打包成.jar文件,你可以下载它们,然后简单的用下面的命令去运行:

java -jar filename.jar

这样可以在你的桌面上运行仿真程序。不过由于这些是Java程序,所以你也可以把他们放到web站点上,使得它们在浏览器中运行。这意味着你可以在你的科学网站中包含它们,在你解释某个系统的时候可以让用户看相应的仿真。

图 1. 示例:开始模拟沿斜面下滑,同时弹出相关的介绍资料。

zicode
zicode
翻译于 2013/04/23 10:20
1

有的仿真程序可以让你修改参数来改变仿真运行时的细节。这些参数可能是质量、速率或者磁场强度等。如果你用到的仿真程序有可以修改的参数,那么会有一个选项让你把模型的细节保存到一个数据文件。你可以通过点击File→Save Model来保存。数据文件是一个XML文件,所以用文本编辑器直接修改的话还是相对比较清晰的。之后你可以通过点击File→Load Module来加载这些参数到仿真程序。这样,你就可以通过把XML数据文件共享给别人来共享你开发的模型。

图 2. 保存运行模型,用来分享给其他人

当你熟悉完预打包的那些仿真程序之后,你可能想了解还有哪些你可以建模和分析的系统。开源物理为此提供了一个叫做Easy Java Simulations (EJS)的系统。这个Java程序提供了一个漂亮而简单的界面,让你去实现原型、测试和分发你自己的仿真程序。EJS对于教学非常适用,因为它可以实现相对复杂的仿真程序,而对编程并不需要了解太多。

zicode
zicode
翻译于 2013/04/23 13:56
1
EJS 比我上面提到的仿真器要大一点,所以除了下载一个jar文件之外,你还要下载一个zip文件。zip文件下载完成之后,你需要把它解压缩到你的机器上。进入刚才解压出来的文件夹然后运行:
java -jar EjsConsole.jar

它会弹出一个终端窗口。在终端窗口中你可以设置一些初始化变量并启动一个或者更多的EJS实例。之后会打开一个供建模和编辑的工具,你可以用它来定义你的物理系统和你想模拟的细节。你可以在编辑工具中运行这些模型,因此你可以将你的想法模拟出来看看结果是否与你所想的一致。如果你对模拟结果感到满意,编辑工具还提供了允许你将整个仿真环境打包为一个包来和其他人分享的选项。这是很棒的功能,特别当你是在为一个班级编写代码的时候。因为你可以为你的仿真定制你所要教授的特定物理系统环境,然后将其打包分发给你的学生。

dama2010
dama2010
翻译于 2013/04/23 22:15
1

开源物理致力于为教学的各个方面提供帮助,所以它提供了一个叫做启动器的程序。启动器是一个核心程序,它能获取一系列的仿真并提供文档支持和教学参考。你可以点击课程链接来搜索与之相关的题材集合。就像使用单个仿真器一样,你可以搜索一个特定的项目或者浏览启动器已有的某个主题列表。当然,你不会被仅限于此,你完全可以使用启动器来创建你自己的资料集合。该工具让你能够定义你想放到一起的材料,然后它会生成一个可以分发给他人的jar文件。实际上,材料列表是被存储为XML文件的,因此如果你想在生成该文件之前重新定义任何内容,你都可以用文本编辑器来编辑修改。

图4. 数据处理工具为你的数据提供基本的统计帮助。

图4. 数据处理工具为你的数据提供基本的统计帮助。

dama2010
dama2010
翻译于 2013/04/24 11:29
1

当你已经准备好了更进一步时,开源物理项目还提供了一整套的基于 Eclipse IDE 的编程环境。该 IDE 包含了使用各种仿真以及 EJS 代码时需要用到的函数库。因此,在遇到一般性的任务时,你可以用它来开发你自己的程序而不必重新发明轮子。你还可以获取很多文档,包括《开源物理:用户实例指南》、《计算机仿真方法导论》这两本即将出版的新书的部分章节。

开源物理还提供了另外的两个工具:数据处理工具和跟踪器。首先我们来看看数据处理工具。数据处理工具提供了数据绘制和数据拟合函数来帮助你分析实验数据。你可以通过在主窗口中选择参数来互动地改变所绘图形的外观。一旦数据加载完成,数据处理工具还可以对数据集合进行基本的统计。因此,你可以快速地得到一些数据项,比如平均数、中位数、标准差等。在所绘图形中你可以获取坡度以及曲线下的面积。通常你会收集数据来尝试说明输入与输出间的某种关系。为了证明这种关系,你试图让你的数据拟合某些函数。数据处理工具提供了很多预定义的函数,你可以对数据调用它们来尝试拟合。或者你也可以使用拟合创建器来定义你自己的函数并将其用于拟合程序。你或许会发现在对数据进行绘制或者尝试拟合之前需要为它们添加一些信息,而这或许会引发对你数据的一系列不同类型的数学转化。在通常的数据分析中,这一转换过程就是一个与输入数据相捆绑的操作步骤,但在数据处理工具中,它提供了一个叫做数据创建器的函数来让你能在此时进行这步操作。

dama2010
dama2010
翻译于 2013/04/24 17:18
1

最后我们来看看Tracker这个工具。通过使用开源物理库的功能,Tracker可以做图形和视频分析。Tracker能够对视频中的目标进行跟踪,并反馈其位置、速度和加速度给你。它可以提供覆盖和图形,特效过滤器,多参考帧和校准点,甚至可以用来分析光谱和干扰模式,让您分析实验室测量。例如,你可以在一个视频剪辑上覆盖简单的动态粒子模型。这让你能够拍下实验录像然后用它完成你的测量和分析。在网络上有很多这样的例子,人们用这种方法模拟各种事件,包括愤怒的小鸟的物理建模。快速google搜索就能让你看到什么是可能的。

图5。Tracker通过对象跟踪处理视频分析

这篇间断的文章只涉及开源物理的一些表皮。如果你正教物理或学习物理,那将值得你花时间去探索开源物理项目。

Joey Bernard有物理和计算机科学背景。在新不伦瑞克大学担任计算研究顾问,这让他在日常工作中游刃有余。他也教计算物理学和并行编程。

jimmyjmh
jimmyjmh
翻译于 2013/04/26 11:48
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(6)

赵云30
赵云30

引用来自“sami”的评论

既然是java的为啥要强调是linux上的 windows下不能运行么?

可能理论上可以用,实际还要调试一番。
TrumpCyber
TrumpCyber

引用来自“TrampCyber”的评论

引用来自“sami”的评论

既然是java的为啥要强调是linux上的 windows下不能运行么?

也能啊,文中说了,也能在Linux 以外的系统上运行

见文中第二段
TrumpCyber
TrumpCyber

引用来自“sami”的评论

既然是java的为啥要强调是linux上的 windows下不能运行么?

也能啊,文中说了,也能在Linux 以外的系统上运行
sami
sami
既然是java的为啥要强调是linux上的 windows下不能运行么?
Ev4n
Ev4n
虽不明但觉厉
Tobias_de
Tobias_de
用来教与学
返回顶部
顶部