Lumerical脚本语言-系统(System)

系统命令包括同操作系统文件系统交互的命令、以及运行脚本文件的命令等。

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 函数 之前调用本函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薰衣草2333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值