GLAD對于系統(tǒng)的模擬一般可以分為以下幾個步驟:
(1)環(huán)境初始化,內(nèi)存和CPU的分配,變量類型的聲明,以及是否寫屏(即:命令語句在執(zhí)行過程中是否顯示在屏幕上)等;
(2)光束初始化,主要是定義采樣陣列大小、采樣點(diǎn)間隔,系統(tǒng)工作波長以及光束的初始分布等;
(3)建立系統(tǒng)的物理模型,通常采用宏結(jié)構(gòu),相當(dāng)于子程序。以諧振腔分析為例,這一步驟主要是指創(chuàng)建一個宏命令來表征光束在諧振腔內(nèi)一個往返傳輸過程。
(4)運(yùn)行系統(tǒng)的物理模型,通常指運(yùn)行多次宏結(jié)構(gòu)。
(5)對運(yùn)行結(jié)果進(jìn)行分析,可以將其在GLAD中以各種形式的圖表示出來,也可以將需要的數(shù)據(jù)保存起來供其他程序調(diào)用處理。
以下以無源諧振腔的分析為例,具體審查一下以上所說的幾個步驟,諧振腔結(jié)構(gòu)如圖所示:
(1)環(huán)境初始化
variab/dec/int pass #設(shè)置變量類型
(2)系統(tǒng)模型建立,以宏的方式體現(xiàn)
macro/def reson/o #宏名稱定義
pass = pass + 1 # increment pass counter 往返次數(shù)自加
prop 45 # propagate 45 cm. 傳輸45cm
mirror/sph 1 -50 # mirror of 50 cm. Radius 到達(dá)球面鏡
clap/c/n 1 .14 # .14 cm. radius aperture 設(shè)置球面鏡的大小
prop 45 # propagate 45 cm. along beam 光束經(jīng)反射后繼續(xù)傳輸45cm
mirror/flat 1 # flat mirror 遇到平面反射鏡
variab/set Energy 1 energy # set variable to energy value 將光束的能量存在變量Energy中
Energy = Energy - 1 # calculate energy difference 計算光束能量的變化量,以便下面用作收斂與否的判斷依據(jù)
udata/set pass pass Energy # store energy differences 儲存光束能量的變化量
energy/norm 1 1 # renormalize energy 光束能量進(jìn)行歸一化
plot/l 1 xrad=.15 # make a plot at each pass 每一程對光束的分布作圖
macro/end #宏定義結(jié)束
(3)光束初始化
array/set 1 64 # set array size 設(shè)置采樣矩陣大小
wavelength 0 1.064 # set wavelengths 設(shè)置波長
units 1 .005 # set .005 cm sample spacing 設(shè)置采樣間隔
resonator/name reson # set name of resonator macro 設(shè)置諧振腔名字
resonator/eigen/test 1 # find resonator properties 尋找本征值
resonator/eigen/set 1 # set surrogate beam to eigen mode 將擬合光束設(shè)置為本征模
clear 1 0 # clear the array 光束初始化為0
noise 1 1 # start from noise 從噪聲開始
energy/norm 1 1 # normalize energy 能量歸一化
pass = 0 # initialize pass counter 往返次數(shù)初始化為0
(4)運(yùn)行物理模型
reson/run 100 # run resonator 100 times 宏運(yùn)行100次
(5)數(shù)據(jù)分析以及處理
title Energy loss per pass #設(shè)置圖形的標(biāo)題
plot/watch plot1.plt # set plot name 設(shè)置圖形窗口的名稱
plot/udata min=-.05 max=.0 # plot summary of eigenvalues 設(shè)置橫坐標(biāo)范圍
title diffraction mode shape #設(shè)置圖形的標(biāo)題
set/density 32 # set plot grid to 32 x 32 設(shè)置網(wǎng)格密度
set/window/abs -.05 .05 -.05 .05 # set plot window設(shè)置圖形窗口大小
plot/watch plot2.plt # set plot name設(shè)置圖形窗口的名稱
plot/iso 1 # make an isometric plot 作圖 |