设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

开源新探索:Linux上的开源物理

2013-4-27 13:00| 发布者: joejoe0332| 查看: 2082| 评论: 0|原作者: 开源中国社区|来自: 开源中国社区

摘要:   我的最近几篇文章介绍了很多科学研究相关的软件。不过有一个重要领域我没有详细介绍,那就是关于讲授下一代计算科学的相关资源。为了填补这一部分的空白,你可以看一下开源物理学项目提供的代码。这个项目由美国 ...

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

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

java -jar filename.jar

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

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

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

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

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

  EJS 比我上面提到的仿真器要大一点,所以除了下载一个jar文件之外,你还要下载一个zip文件。zip文件下载完成之后,你需要把它解压缩到你的机器上。进入刚才解压出来的文件夹然后运行:

java -jar EjsConsole.jar

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

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

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

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

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

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

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

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

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

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

  英文原文:Open-Source Physics on Linux


酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部