系统命令包括同操作系统文件系统交互的命令、以及运行脚本文件的命令等。
1、系统命令
命令 | 描述 |
newproject
|
创建一个新的模拟设计环境
|
newmode
|
创建一个新的 MODE 设计环境
|
save
|
保存一个 fsp 文件或者 lms 文件
|
load |
装载一个 fsp 文件或者 lms 文件
|
del
|
删除一个文件
|
rm
|
删除一个文件
|
ls
|
列出目录中的文件
|
dir
|
列出目录中的文件
|
cd
|
改变工作目录
|
pwd
|
返回当前工作目录
|
cp
|
拷贝一个文件
|
mv
|
移动一个文件
|
exit
|
退出应用程序
|
system
|
运行命令行提示
|
fileexists
|
检查一个文件是否存在
|
currentfilename
|
获取当前文件名称
|
filebasename
|
从一个字符串获取文件基本名称
|
filedirectory
|
从一个字符串获取文件目彔
|
fileextension
|
从一个字符串获取文件扩展名
|
2、脚本命令列表
命令 | 描述 |
getcommands
|
返回可用的脚本命令的列表
|
3、开始执行和停止执行脚本命令
命令 | 描述 |
running a script
|
写入脚本名称并运行脚本
|
getpath
|
获取当前路径
|
addpath
|
将一个目录添加到路径
|
which
|
路径中文件所在目彔
|
pause
|
程序暂停一定时间
|
break
|
在脚本的对应行处结束脚本的执行
|
ESCAPE key
|
中断脚本的运行或长串命令的执行
|
4、文件输入和输出
命令 | 描述 |
format
|
设置脚本解释器的精度
|
标准输出(STD OUT)
| |
write
|
将字符串写到文本文件或者标准输出
|
LDF 文件
| |
loaddata
|
从 ldf 文件装载变量或者 d-card 数据
|
savedata
|
将变量保存到 ldf 文件
|
savedcard
|
将 d-card 数据保存到 ldf 文件
|
数据文件(Text files)
| |
readdata
|
读文本文件
|
write
|
将字符串写到文本文件或标准输出
|
fld (field) 文件
| |
asapexport
|
将监视器输出到 fld 文件
|
asapload
|
装载 fld 文件中的数据
|
asapimport
|
从 fld 文件将数据导入到导入光源
|
VTK 文件
| |
vtksave
| 以.vtk 格式保存 |
Touchstone 文件
| |
touchstoneload
|
从一个包含 Touchstone 文件格式的 s-参数的文件中装载无源网络数据。
|
查找表(Lookup tables)
| |
lookupclose
|
关闭以前用 lookupopen 命令创建的文件
|
lookupopen
|
打开文件写查找表。
|
lookupread
|
从一个包含设计和提取参数查找表的文件中寻找最近的提取值。
|
lookupwrite
|
向一个查找表写入一对设计和提取参数。
|
5、调试( Debugging)
命令 | 描述 |
debug | 打开调试工具窗口。 |
6、MATLAB 函数(MATLAB functions)
命令 | 描述 |
matlabsave | 将工作区数据保存到一个 Matlab .mat 文件 |
matlabsavelegacy | 将工作区数据保存为早期的 Matlab .mat 文件格式 |
matlab | 执行一个 MATLAB 命令 |
matlabget | 从 MATLAB 工作区获取一个变量 |
matlabput | 将一个变量送到 MATLAB 工作区 |
matlabload | 将 MATLAB .mat 文件装载到工作区 |
下面是对上述命令的简要介绍:
7、newproject
创建一个新的模拟计算工程文件。
语法 | 描述 |
newproject; | 创建一个新的模拟计算设计环境;没有返回数据。 |
newproject(option); | 选项(option)可以是 1: 采用默认文件和数据库作为模板 2: 采用当前文件和数据库作为模板 3: 打开文件浏览器,选择存在的文件作为模板 默认选项(option)为 1 。 |
8、save
保存一个模拟工程文件。如果文件已经执行过,文件同样包含模拟计算结果。
语法 | 描述 |
save; | 打开一个文件浏览器保存文件。不返回任何数据。 |
save(filename); | 保存文件名指定的文件。 |
9、load
装载一个模拟工程文件。如果文件已经执行过,文件同样包含模拟计算结果。
语法 | 描述 |
load(filename); | 装载一个模拟文件,函数不返回任何数据。 |
10、del rm
删除一个文件。
语法 | 描述 |
del("filename"); | 删除文件 "filename"。 函数不返回任何数据。 |
rm("filename"); |
11、dir ls
列出目录中的文件。
语法 | 描述 |
out = dir; out = ls; | 输出为一字符串 |
out = dir("directory"); out = ls("directory"); | 显示指定目彔(directory)中的文件 |
12、cd
改变目录。
语法 | 描述 |
cd; | 打开一个目录浏览器。函数无返回值。 |
cd("directory"); | 将工作目录改变为(directory),无论何时打开一个 fsp 文件或者运行一个脚本文件,会将工作目录设置到文件打开的目彔。 |
13、pwd
返回当前工作目录。
语法 | 描述 |
out = pwd; | 以字符串格式返回当前工作目录。 |
14、cp
拷贝文件。
语法 | 描述 |
cp("file1","file2"); | 文件 file1 拷贝,得到文件为 file2。函数无返回值。 |
cp("path1\file1","path2\file2"); | 将目录path1中的文件file1 拷贝为目录path2中的文件file2。 |
15、mv
移动文件。
语法 | 描述 |
mv("file1","file2"); | 将文件 file1 移动到 file2。函数无返回值。 |
mv("path1\file1","path2\file2"); | 将目录path1中的文件file1 移动到目录path2中的文件file2。 |
16、exit
退出应用程序。
语法 | 描述 |
exit; | 退出应用程序,同 exit(1); 相同。无返回数据。 |
exit(option); | 退出应用程序,选项(option)可以是: 1: 如果已经有相同的文件存在时,给用户一个提示。 2: 强制结束,不向用户做任何提示。 默认选项(option)为 1。 |
17、system
允许用户指示操作系统执行一个命令,而不是由 Lumerical 脚本翻译器执行命令。系统命令不返回任何数据。
语法 | 描述 |
system("command"); | 在操作系统命令行提示运行"command"命令。 |
18、fileexists
查看一个文件是否存在。必须指定文件的扩展名。缺省时将查找全部路径。
语法 | 描述 |
out = fileexists("filename"); | 如果文件存在返回值为 1;文件不存在返回值为 0; |
out = fileexists("c:\temp\file.txt"); | 在指定目录查找文件。 |
19、currentfilename
获取当前文件和目录。
语法 | 描述 |
out = currentfilename; | 以字符串返回当前文件名。如果没有定义当前文件,返回空字符串 ""。 |
20、filebasename
获取当前文件和目录。
语法 | 描述 |
out = filebasename( "location/filename.ext" ); | 以字符串返回当前文件的基本名。 |
21、fileextension
从一个字符串获取文件扩展名。
语法 | 描述 |
out = fileextension( "name.ext"); | 以字符串返回当前文件的扩展名。 |
22、filedirectory
从一个字符串获取文件目录。
语法 | 描述 |
out = filedirectory( "location/filename.ext" ); | 以字符串返回当前文件目录。 |
23、Run script
通过输入脚本名字运行一个脚本。文件必须在当前目录。总是先从当前的目录开始寻找路径。不能向脚本文件传递变量,脚本文件也不返回变量。脚本访问的所有变量定义在当前的工作区。 最好不要用 Lumerical 脚本的函数名用作你的脚本文件名。如果脚本文件的名称和函数的名称相同,运行的是脚本文件(而不是函数)。这允许你可重定义有效函数,但在运行时则会出现料想不到的结果。
语法 | 描述 |
filename; | 如果当前路径中存在 filename.lsf 文件,便运行该文件。 没有返回类型的脚本。 |
24、getpath
获取当前路径。路径中默认的是当前工作目录和安装时的脚本子目录(例如, C:\Program Files \ Lumerical \ FDTD \ scripts)。
语法 | 描述 |
out = getpath; | 以字符串格式返回当前路径。 |
25、addpath
向路径添加目录。
语法 | 描述 |
addpath("directory"); | 将目录(directory)添加到路径,函数不返回任何数据。 |
26、which
返回指定文件全文件路径名。
当你向 Lumerical 的路径变量添加了多个目录并要查看正在访问的是哪一个文件时,这个函数 很有用。
语法 | 描述 |
out = which("filename"); | 以字符串格式返回文件"filename"的路径名。 |
27、pause
暂停程序运行。按空格键强制脚本继续运行,按 ESCAPE 键退出脚本运行。
语法 | 描述 |
pause(time); | 脚本暂停一定时间(time),暂停时间为秒。函数不返回任何数据。 |
28、break
停止脚本运行。
语法 | 描述 |
break; | 在脚本文件的对应行停止执行。函数不返回任何数据。 |
29、(退出键)Excape key
中断脚本或一长串块命令的执行。
语法 | 描述 |
ESCAPE key | 中断脚本文件的运行,或者一长串命令的执行。当多次按退出键、或者持续的按住退出键中断脚本时,将会出错警告。 |
30、format
两个格式命令使脚本解释器的输出在 2 个精度状态切换。显示命令:? 和 num2str() 命令应用 该状态来确定输出精度。
语法 | 描述 |
format long; | 将脚本解释器设置为 16 位精度 |
format short; | 将脚本解释器设置为 8 位精度 |
31、 loaddata
装载工作区变量或者 Lumerical 数据文件(ldf)中的 d-card 数据。如果当前变量同文件中的 变量同名,当前变量值将被覆盖。
语法 | 描述 |
loaddata("filename"); | 读脚本变量数据或将指定文件 d-card 数据。函数不返回任何数据。 |
32、savedata
将工作区变量保存到 Lumerical 数据文件(ldf)。将监视器(D-card)数据保存到 ldf 文件。
语法 | 描述 |
savedata("filename"); | 将所有变量保存到指定文件,函数不返回任何数据。 |
savedata("filename",var1,var2,...); | 仅将指定名称的变量保存到文件 |
33、savedcard
将 d-card 数据保存到 Lumerica 数据文件(ldf)。D-cards 通常用来储存监视器数据。 数据是以非归一化态保存的。
语法 | 描述 |
savedcard("filename"); | 将当前所有 d-cards(本地和全局)保存到指定文件,函数不返回任何数据。 |
savedcard("filename","name1","name2",...); | 仅保存指定名称"name1","name2"的 d-cards |
34、readdata
用读数据命令 readdata 可以输入文本文件中的数值。本命令可读取数据以行/列格式排列的文件。 数据必须正确排列以保证每行的列数是相同的。 Readdata 命令将被忽略以字母开头的行。
语法 | 描述 |
M=readdata("filename.txt"); | 将文本文件( filename)装载到矩阵 M,以字母开头的行将被忽略。 |
35、write
将字符串变量写到文本文件或者标准输出。
一般情况下 write 命令用来将数据输出到文本文件。如果指定的文件不存在,将创建该文件。如果文件存在,输出的字符串将附在文件尾部。writeis 命令在字符串的尾部添加换行字符 。
只有在 Linux 操作系统,如果没有指定文件,write 命令将会输出到标准输出(stdout)。
语法 | 描述 |
write(my_string); | 将字符串(my_string) 写到标准输出(stdout) (仅 Linux 操 作系统)。 |
write("testfile.txt",my_string); | 将字符串变量(my_string) 的内容写到文本文件(testfile.txt.)。 函数不返回任何数据。 |
36、asapexport
将期望的监视器输出到文件,以便同 BRO's ASAP 交互。这些文件称为 fld 文件。监视器必须 是频率功率或频率分布分布监视器。在 FDTD 和 MODE 中可用本命令。
语法 | 描述 |
asapexport( "monitorname"); | 根据监视器名称(monitorname)输出数据。缺省情况下,输出第一个频率点。函数不返回任何数据。 |
asapexport( "monitorname",f); | 输出由指标 f 指定的频率点。 |
asapexport( "monitorname",f,"filename"); | 不用打开文件浏览器,输出到指定的 "filename" 文件。 |
37、asapload
装载来自 BRO's ASAP 的 fld 文件的数据。asapload 创建一个称为"fld_data"的 d-card 结构, 结构包含了文件中的所有数据。如果存在"fld_data",则称其为"fld_data_2"。当用 asapload 命令 装载一个 asapfile 后,你就可以提取任何需要的数据,可以是:
● Ex, Ey, Ez, Hx, Hy, Hz, x, y, z
● 功率、频率、波长、反射率
在 FDTD 和 MODE 中可用本命令。
语法 | 描述 |
asapload; | 用文件浏览器选择文件装载。函数不返回任何数据。 |
asapload("filename"); | 不打开文件浏览器,从称为"filename"的文件装载数据。 |
38、asapimport
将 ASAP fld 文件导入到一个 ASAP 光源。这等于编辑导入光源的属性,以及单击导入光源按钮。 仅在 FDTD 可用 。
语法 | 描述 |
asapimport( "sourcename"); | 将 fld 文件导入到 "sourcename" 的光源,要打开文件浏览器选择文件。函数不返回任何数据。 |
asapimport( "sourcename","filename"); | 指定要打开的文件 |
39、gdsimport
从 GDSII 文件导入层到设计环境。等同于通过 FILE->IMPORT 菜单完成导入一个 GDSII。
在 INTERCONNECT 本命令丌可用。
语法 | 描述 |
n = gdsimport("filename", "cellname", layer); | 从指定文件的指定单元格将指定的层导入到当前的模拟环境。 创建的多个实体对象有一个材料被定义为绝缘体的对象。3D, 2D 几何体的数据将会被拉伸成 Z 向的缺省值。所选的返回值 n,是从 gds 文件导入的实体对象的个数。 |
n = gdsimport("filename", "cellname", layer,"material"); | 有些像上述的命令,但导入对象的材料将设定为指定值。 |
n = gdsimport("filename","cellname", layer, "material", zmin, zmax); | 本命令格式仅允许出现在 3D 模型设计中。行为同上述命令一 样,但结构将会在 z 向拉伸为指定的 z 最小和 z 最大值。 |
参数 | 类型 | 描述 |
filename | 字符串 | 导入 GDSII 文件 的名称。可以包含文件的完全路径、或者相对于目前工作目录的路径。 |
cellname | 字符串 | 从 GDSII 文件导入的格子名称。 |
layer | 数字或字符串 | 从 GDSII 文件导入层数。如果仅需要和一定数据类型相匹配的元素,可以用一个字符串形式规定: "6:2" 其中需要的层为 6,要求的数据类型为 2。 |
material | 字符串 | 当前设计环境材料的有效名称。材料的部分名称可以同字符串的开始部分匹配,例如, "Al (3" 将同 "Al (300nm)" 匹配。 |
z min | 数字 | 将 2D GDSII 数据拉伸为 3D 实体时最小 z 值。 |
z max | 数字 | 将 2D GDSII 数据拉伸为 3D 实体时最大 z 值。 |
40、matlabsave
将工作区数据保存到 Matlab .mat 数据文件。
语法 | 描述 |
matlabsave(""); | 将工作区的所有变量保存到一个 .mat 文件,文件名称同模拟文件相同。函数不返回任何数据。 |
matlabsave("filename"); | 将工作区的所有变量保存到一个指定的 .mat 文件。 |
matlabsave("filename",var1, ..., varN); | 将工作区指定数据保存到指定的 .mat 文件。 |
41、matlabload
将 Matlab .mat 数据装载到工作区。
语法 | 描述 |
matlabload("filename"); | 将指定的 .mat 文件装载为工作区数据。 |
42、matlabsavelegacy
将工作区的数据保存为 Matlab 7.2 或早起版本文件格式的 Matlab .mat 数据。该文件格式不 支持大于 2GB 的 矩阵。命令语法同标准 matlabsave 命令系统,详见 matlabsave。
43、matlab
在 Lumerical 脚本提示执行 MATLAB 命令。可以从 Lumerical 脚本环境访问扩展的数学和可 视化功能。如果脚本集成不能启用,函数会返回一个错误。
开始调用一个 MATLAB 函数(matlab, matlabget 或 matlabput),将开始一个 MATLAB 对话并同 Lumerical 脚本环境建立连接。一旦完成连接,可以用 matlab 函数执行 MATLAB 的命 令。必须清楚 MATLAB 和 Lumerical 脚本变量工作区是完全分离和独立的,这一点非常重要。一 个 MATLAB 命令不能作用 lumerical 工作区中定义的变量,反之亦然。要采用 matlabget 和 matlabput 函数在两个工作区传递变量。当在测试 MATLAB 工作区、或者同 MATLAB 环境交互 时,在 MATLAB 的脚本提示写入命令。
MATLAB 命令的输出结果显示在 Lumerical 脚本提示。matlab 函数的一个限制是不向 Lumerical 脚本提示以及 MATLAB 提示提供错误报告。在 Lumerical 脚本调用 MATLAB 命令前,可在 MATLAB 提示直接写入 MATLAB 命令进行测试。输出缓冲区的长度大约为 1e5 个字符。 其它输出会被截断。
当有一长串 MATLAB 命令时,你可以发现将其保存到一个 MATLAB m-文件后会方便许多,只要一个命令就可以简单地调用 m-文件。
语法 | 描述 |
matlab("command"); | command:包含一个或多个有效 MATLAB 命令的字符串。 |
matlab("command_1 command_2"); | 可以在脚本文件中使用多行字符串,其中包含许多 MATLAB 命令。脚本命令提示不支持多行字符串。 |
44、matlabget
从 MATLAB 工作区拷贝一个变量到脚本变量工作区。拷贝的变量名称同 MATLAB 的变量名称相同,并覆盖已有的同名变量。如果 MATLAB 没有该变量,命令返回一个错误。
语法 | 描述 |
matlabget(var1,var2,...varN); | 命令的参数是 MATLAB 工作区一个或多个变量的名称。 函数不返回任何数据。 |
45、matlabput
从 FDTD/MODE Solutions 拷贝一个变量到 MATLAB 工作区。拷贝到 MATLAB 工作区变量 同 FDTD/MODE Solutions 中的变量名称相同,并覆盖已有的同名变量。如果 Lumerical 工作区没 有该变量,命令返回一个错误。
语法 | 描述 |
matlabput(var1,var2,...varN); | 命令的参数是 Lumerical 变量工作区已有的一个或多个变量的名称。 函数不返回任何数据。 |
46、debug
打开调试工具窗口,本命令仅在 FDTD 可用。
语法 | 描述 |
debug; | 打开调试工具窗口。 |
47、vtksave
脚本命令 vtksave 将 Lumerical 数据集保存为 VTK 格式。仅保存线性和非结构数据集。对于 线性数据集文件名后附 .vtr,对于非结构数据集文件名后附.vtu 。
语法 | 描述 |
vtksave(“filename”, dataset); | 将数据集保存到指定的 .vtk 文件。 |
48、lookupread
从包含设计和提取参数查找表的文件中寻找最近的提取值。
语法 | 描述 |
out = lookupread (filename, table,design,extracted); | 从包含设计和提取参数查找表的文件中寻找最近的提取值。 参数: table 是文件中查找表的名称,design 是一个包含要寻找的定义设计参数的多个结果的单元, extracted 是要提取参数的名称。返回最接近设计参数处的值。 |
49、lookupopen
打开文件写查找表。
语法 | 描述 |
lookupopen(filename,table); | 打开一个文件写查找表。在调用 lookupwrite 前需要本命令 |
50、lookupclose
关闭以前用 lookupopen 命令创建的文件。
语法 | 描述 |
lookupclose (filename); | 关闭以前用 lookupopen 命令创建的文件。要关闭用 lookupopen 创建的任何文件,必须使用本命令。 |
51、lookupwrite
向一个查找表写入一对设计和提取参数。
语法 | 描述 |
out = lookupwrite (filename, , design, extracted); | 向一个查找表写入一对设计和提取参数。设计和提取参数是包含多个结构的单元, 允许在多个设计和提取参数之间映射。可以多次调用本函数,对于每次调用,设计和提取参数会附在当前文件的后部。在调用 lookupopen 函数之后和调用 lookupclose 函数 之前调用本函数。 |