MPB 使用指南(部分) 2006 年12 月01 日星期五 MPB 使用指南(部分) MPB 使用指南 在这里,我们会展示如何使用MPB 进行二维光子晶体能带计算和输出场分布图的整个过程。你可以从中知道 MPB 如何工作,也可以了解什么样的东西可以用它来 实现。这里所列出的只是一部分,在MPB User Reference 里会有更详细的内容。在下一个专题,data analysis tutorial,会有更多的例子,着重数据的分析和可视化。 ctl 文件 在MPB 的使用中,ctl 文件是不可缺少的,它的后缀是“ctl”,文件名类似 foo.ctl(你可以用你自己喜欢的名字代替 foo)。ctl 文件包括了 所要研究的几何结构,要计算的本征矢量的数目,想要输出的东西和其他你想要计算的东西。ctl 是用脚本语言来写的,所以它可以写成一系列简单的命令,来设 计几何结构等等。在这个文件中全部是用户输入,循环和其他必须的命令。 不过不用担心,你不须要做一个真正的程序员,因为这些语言都是比较简单的,例如你可以不用按顺序来输入,不用理会空格,可以随便插入说明,也可以不理会其他默认的设置。 ctl 文件是执行在libctl 库上面的,而 libctl 也是建立在Scheme 语言上。因此,在一个ctl文件中有三种可能的命令和语法: 1. Scheme 是由 MIT 开发出来的一个强大的程序语言,它的语法很简单:所有的状态量都是以下这个形式,(function arguments...) 。我们要在GUN Guile 编译器下运行Scheme。你不必学太多的Scheme 来写一个基本的ctl 文件,你可以在需要的时候再去查找。当然,有兴趣的话,可以参考它 们的主页。 2. libctl 是我们用Guile 编写的一个库,它是用来简化 Scheme 和科学计算软件的接口。libctl 设置了一些基本的格式来实现用户接口和定义大量有用的函数。具体参考其主页。 3. MPB 定义了全部的接口,用来实现光子能带的计算。在manual 里,会着重说明它的特点。 如果你能去了解一下libctl manual,你会获益非浅,特别是libctl Basic User Experience那一节,这样你就可以知道用户接口是怎样的,Scheme 语言大概是怎样的(这个是很有用的),还有一些有用的一般性质。在这里我们 就不再重复了。 那就让我们继续。MPB 程序一般是用以下的命令来运行: unix% mpb foo.ctl >& foo.out 这样,程序就会读入 ctl 文件,并且执行,保存数据在 foo.out 这个文件里(在 mpb-ctl / examples / 文件夹里有一些ctl 文...