功能:
打开指定的 ZBF 文件,并将电场和光束属性数据放置在两个用户自定义的数组变量中。
语法:
ZBFREAD filename, beamname, propertyname
详述:
此关键字需要提供 ZBF 文件名,和之前调用 DECLARE 所定义的两个数组名称。beamname 必须是一 个 三 维 数 组 , 非 偏 振 光 束 的 最 小 尺 寸 为(nx, ny, 2), 偏 振 光 束 的 最 小 尺 寸 为 (nx, ny, 4)。 propertyname 数组必须是最小尺寸为 14 的一维数组。在执行 ZBFREAD 函数后,以下光束数据存储 在指定 propertyname 数组中 :nx、ny、dx、dy、waist_x、waist_y、position_x、position_y、rayleigh_x、rayleigh_y、 波 长 ( 以 镜 头 单 位 表 示 )、 总 功 率 、 峰 值 照 度 ( 单 位 面 积 的 能 量 )、 is_polarized 标记(0 表示否,1 表示是)、介质折射率;光束数据分别存储于矢量位置 1 到 15。电 场数据将存储于 beamname 数组中。beamname 数组的第三维为 1 表示 Ex 实部, 2 表示 Ex 虚部,如果光束偏振, 3 表示 Ey 实部, 4 表示 Ey 虚部。关于所有 ZBF 关键字的注解说明,请参阅[用途](Purpose)。另请参阅 ZBFWRITE。
示例:
!First get the beam size ZBFPROPERTIES "TEST1.ZBF", 1 nx = vec1(1) ny = vec1(2) ip = vec1(14) !The "is polarized" flag !Allocate enough memory to hold the beam IF (ip == 0) THEN DECLARE B, DOUBLE, 3, nx, ny, 2 IF (ip == 1) THEN DECLARE B, DOUBLE, 3, nx, ny, 4 DECLARE P, DOUBLE, 1, 20 ZBFREAD "test1.zbf", B, P FOR j, 1, ny, 1 FOR i, 1, nx, 1 FORMAT 4.0 PRINT i, j, FORMAT 12.6 IF (ip == 1) PRINT B(i, j, 1), PRINT B(i, j, 2), PRINT B(i, j, 3), PRINT B(i, j, 4) ELSE PRINT B(i, j, 1), PRINT B(i, j, 2) ENDIF NEXT NEXT ! save the beam ZBFWRITE "TEST2.ZBF", B, P ! release the allocated memory RELEASE B RELEASE P
该文档由光学课堂(www.optkt.cn)生成
最后更新时间:2020/3/7 12:39:11
0条评论