GLAD對於系統的模擬一般可以分為以下幾個步驟:
(1)環境初始化,內存和CPU的分配,變量類型的聲明,以及是否寫屏(即:命令語句在執行過程中是否顯示在屏幕上)等;
(2)光束初始化,主要是定義采樣陣列大小、采樣點間隔,系統工作波長以及光束的初始分布等;
(3)建立系統的物理模型,通常采用宏結構,相當於子程序。以諧振腔分析為例,這一步驟主要是指創建一個宏命令來表征光束在諧振腔內一個往返傳輸過程。
(4)運行系統的物理模型,通常指運行多次宏結構。
(5)對運行結果進行分析,可以將其在GLAD中以各種形式的圖表示出來,也可以將需要的數據保存起來供其他程序調用處理。
以下以無源諧振腔的分析為例,具體審查一下以上所說的幾個步驟,諧振腔結構如圖所示:

(1)環境初始化
variab/dec/int pass #設置變量類型
(2)系統模型建立,以宏的方式體現
macro/def reson/o #宏名稱定義
pass = pass + 1 # increment pass counter 往返次數自加
prop 45 # propagate 45 cm. 傳輸45cm
mirror/sph 1 -50 # mirror of 50 cm. Radius 到達球面鏡
clap/c/n 1 .14 # .14 cm. radius aperture 設置球面鏡的大小
prop 45 # propagate 45 cm. along beam 光束經反射後繼續傳輸45cm
mirror/flat 1 # flat mirror 遇到平面反射鏡
variab/set Energy 1 energy # set variable to energy value 將光束的能量存在變量Energy中
Energy = Energy - 1 # calculate energy difference 計算光束能量的變化量,以便下面用作收斂與否的判斷依據
udata/set pass pass Energy # store energy differences 儲存光束能量的變化量
energy/norm 1 1 # renormalize energy 光束能量進行歸一化
plot/l 1 xrad=.15 # make a plot at each pass 每一程對光束的分布作圖
macro/end #宏定義結束
(3)光束初始化
array/set 1 64 # set array size 設置采樣矩陣大小
wavelength 0 1.064 # set wavelengths 設置波長
units 1 .005 # set .005 cm sample spacing 設置采樣間隔
resonator/name reson # set name of resonator macro 設置諧振腔名字
resonator/eigen/test 1 # find resonator properties 尋找本征值
resonator/eigen/set 1 # set surrogate beam to eigen mode 將擬合光束設置為本征模
clear 1 0 # clear the array 光束初始化為0
noise 1 1 # start from noise 從噪聲開始
energy/norm 1 1 # normalize energy 能量歸一化
pass = 0 # initialize pass counter 往返次數初始化為0
(4)運行物理模型
reson/run 100 # run resonator 100 times 宏運行100次
(5)數據分析以及處理
title Energy loss per pass #設置圖形的標題
plot/watch plot1.plt # set plot name 設置圖形窗口的名稱
plot/udata min=-.05 max=.0 # plot summary of eigenvalues 設置橫坐標範圍
title diffraction mode shape #設置圖形的標題
set/density 32 # set plot grid to 32 x 32 設置網格密度
set/window/abs -.05 .05 -.05 .05 # set plot window設置圖形窗口大小
plot/watch plot2.plt # set plot name設置圖形窗口的名稱
plot/iso 1 # make an isometric plot 作圖 |